当前位置: 首页 > 面试题库 >

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

左丘边浩
2023-03-14
问题内容

是否可以在没有交叉验证的情况下使用GridSearchCV?我正在尝试通过网格搜索优化KMeans聚类中的聚类数量,因此我不需要或想要交叉验证。

该文档也使我感到困惑,因为在fit()方法下,它有一个用于非监督学习的选项(例如,将None用于非监督学习)。但是,如果您想进行无监督学习,则需要在没有交叉验证的情况下进行学习,而且似乎没有摆脱交叉验证的选择。


问题答案:

经过大量搜索,我能够找到此线程。如果使用以下方法,似乎可以摆脱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])


 类似资料:
  • 本文向大家介绍监督学习和无监督学习的区别相关面试题,主要包含被问及监督学习和无监督学习的区别时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 输入的数据有标签则为监督学习,输入数据无标签为非监督学习。

  • 2.1. 高斯混合模型 2.1.1. 高斯混合 2.1.1.1. 优缺点 GaussianMixture 2.1.1.1.1. 优点 2.1.1.1.2. 缺点 2.1.1.2. 选择经典高斯混合模型中分量的个数 2.1.1.3. 估计算法期望最大化(EM) 2.1.2. 变分贝叶斯高斯混合 2.1.2.1. 估计算法: 变分推断(variational inference) 2.1.2.1.1.

  • 聚类和降维:K-Means 聚类,层次聚类,主成分分析(PCA),奇异值分解(SVD)。 我们可以怎样发现一个数据集的底层结构?我们可以怎样最有用地对其进行归纳和分组?我们可以怎样以一种压缩格式有效地表征数据?这都是无监督学习的目标,之所以称之为「无监督」,是因为这是从无标签的数据开始学习的。 我们将在这里探索的两种无监督学习任务是:1)将数据按相似度聚类(clustering)成不同的分组;2)

  • 监督学习的目标是建立一个学习过程,将预测结果与“训练数据”(即输入数据)的实际结果进行比较,不断的调整预测模型,直到模型的预测结果达到一个预期的准确率,包括分类、回归等问题。而常用算法包括线性回归、决策树、贝叶斯分类、最小二乘回归、逻辑回归、支持向量机、神经网络等。 监督学习的整个训练流程如下图所示

  • 校验者: @片刻 翻译者: @X 聚类: 对样本数据进行分组 可以利用聚类解决的问题 对于 iris 数据集来说,我们知道所有样本有 3 种不同的类型,但是并不知道每一个样本是那种类型:此时我们可以尝试一个 clustering task(聚类任务) 聚类算法: 将样本进行分组,相似的样本被聚在一起,而不同组别之间的样本是有明显区别的,这样的分组方式就是 clusters(聚类) K-means

  • 概率图模型 规则学习 聚类 集成学习