您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

无需交叉验证的Scikit Learn GridSearchCV(无监督学习)

无需交叉验证的Scikit Learn GridSearchCV(无监督学习)

经过大量搜索,我能够找到此线程。如果使用以下方法,似乎可以摆脱gridsearchcv中的交叉验证:

cv=[(slice(None), slice(None))]

我已经对我自己的编码版本的网格搜索(没有交叉验证)进行了测试,并且两种方法都得到了相同的结果。我将这个答案发布到我自己的问题上,以防其他人有同样的问题。

编辑:在评论中回答jjrr的问题,这是一个示例用例:

from sklearn.metrics import silhouette_score as sc

def cv_silhouette_scorer(estimator, X):
    estimator.fit(X)
    cluster_labels = estimator.labels_
    num_labels = len(set(cluster_labels))
    num_samples = len(X.index)
    if num_labels == 1 or num_labels == num_samples:
        return -1
    else:
        return sc(X, cluster_labels)

cv = [(slice(None), slice(None))]
gs = gridsearchcv(estimator=sklearn.cluster.MeanShift(), param_grid=param_dict, 
                  scoring=cv_silhouette_scorer, cv=cv, n_jobs=-1)
gs.fit(df[cols_of_interest])
其他 2022/1/1 18:35:32 有219人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶