主要的区别在于,当你说,ms.fit(X)
, X
是您的标记数据集/训练数据集。说ms.fit_predict(X')
, X'
是您的未标记/测试数据集。即,您正在预测未标记的数据集fit_predict
.
i.e, fit(X)
执行聚类,同时,fit_predict
,为您提供聚类标签。没有什么像,ms.predict(X)
, on sklearn.cluster.mean_shift_.MeanShift
目的。
也可以看看,dir(ms)
为此,如下。
>>> help(ms.fit)
Help on method fit in module sklearn.cluster.mean_shift_:
fit(self, X) method of sklearn.cluster.mean_shift_.MeanShift instance
Perform clustering.
Parameters
-----------
X : array-like, shape=[n_samples, n_features]
Samples to cluster.
>>> help(ms.fit_predict)
Help on method fit_predict in module sklearn.base:
fit_predict(self, X, y=None) method of sklearn.cluster.mean_shift_.MeanShift instance
Performs clustering on X and returns cluster labels.
Parameters
----------
X : ndarray, shape (n_samples, n_features)
Input data.
Returns
-------
y : ndarray, shape (n_samples,)
cluster labels
dir(ms)
['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_get_param_names', 'bandwidth', 'bin_seeding', 'cluster_all', 'fit', 'fit_predict', 'get_params', 'min_bin_freq', 'seeds', 'set_params']
With ms
具有属性为_labels
& _cluster_centers
, with X
数据,然后您可以使用标准的错误分类惩罚技术来估计模型的优点。你不能再估计了fit_predict
,因为你只会得到标签,而不是聚类中心。因此,实际上,您可以根据自己的优点标准来设计聚类中心。