kmeans聚类变换方法指定质心

时间:2016-08-01 23:08:12

标签: scikit-learn

在scikit-learn kmeans源代码中,有一个可以指定的可选参数ytransform(X[, y]));但是,当我检查transform的源代码时,似乎在指定它的情况下它无处处理y。这个可选参数的目的是什么(在文档中也不清楚)?

作为附录;我想知道是否有任何方法在变换函数中指定质心,如果它们之前已经计算过的话。 (或者如果在scikit-learn中有任何其他功能可以执行此操作)。

2 个答案:

答案 0 :(得分:2)

质心规范

您可以使用自己的质心覆盖kmeans_object.cluster_centers_。但是对这些中心使用init并进行一些迭代可能会更好。

请参阅docs中的可用属性。

答案 1 :(得分:0)

回答关于看似毫无意义的论证y的第一个问题。您是对的,在许多情况下,Scikit-Learn允许用户传递一个y参数,该参数实际上不会影响方法的结果。

正如他们documentation中所解释的那样:

  在无监督学习的情况下,可能会忽略 y。但是,要   可以使用估算器作为管道的一部分   混合有监督和无监督的变压器,甚至无人监督   估算器需要在第二个接受y = None关键字参数   估算器忽略的位置。出于同样的原因,   fit_predict,fit_transform,score和partial_fit方法需要   如果它们被实现,则在第二位接受y参数。

所以让代码更容易编写。想象一下,你有一个如下所示的管道:

步骤0:一些标准化
步骤1:K-意味着转换另一个空间中的数据
第2步:分类步骤

步骤1显然不需要y工作,但如果您必须编写代码以使管道应用所有这些步骤,则更容易简单地传递X, y进入所有变压器,而不必担心每个变压器是否需要y