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

是否可以不使用交叉验证而使用GridSearchCV?我试图通过网格搜索优化KMeans聚类中的聚类数量,因此我不需要也不想要交叉验证。

文档也让我感到困惑,因为在fit()方法下,有一个用于无监督学习的选项(说对于无监督学习使用None)。但是,如果你想进行无监督学习,你需要在没有交叉验证的情况下进行,似乎没有选项可以去掉交叉验证。


回答:

经过大量搜索,我找到了这个讨论。看起来如果你使用以下代码,可以在GridSearchCV中去掉交叉验证:

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

我已经将此方法与我自己编写的无交叉验证网格搜索版本进行了测试,两种方法的结果相同。我发布这个答案是为了回答我自己的问题,以防其他人遇到同样的问题。

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

from sklearn.metrics import silhouette_score as scdef 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])

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注