三、MeanShift
MeanShift
是scikit-learn
提供的一种密度聚类模型。其原型为:class sklearn.cluster.MeanShift(bandwidth=None, seeds=None, bin_seeding=False,
min_bin_freq=1, cluster_all=True, n_jobs=None)
bandwidth
:一个浮点数,指定带宽参数。如果未指定,则通过
sklearn.cluster.estimate_bandwith()
函数来自动计算。seeds
:一个形状为[n_samples,n_features]
的数组,用于初始化核函数。如果未指定,则通过
sklearn.cluster.get_bin_seeds()
函数来自动计算。bin_seeding
:一个布尔值。- 如果为
True
,则并不会使用所有的点来计算核函数,而是使用网格边界上的点(网格宽度为带宽)来计算。这会加速算法的执行,因为核函数的初始化需要的点大大降低。 - 如果为
False
,则使用所有的点来计算核函数。
- 如果为
min_bin_freq
:一个整数值,指定有效网格包含的数据点的最少数量。当
bin_seeding=True
时,仅仅接收那些网格内包含超过min_bin_freq
个数据点的网格。cluster_all
:一个布尔值,指定是否对所有数据点进行聚类。- 如果为
False
,则对离群点不聚类,将离群点的簇标记设置为-1
。 - 如果为
True
,则对离群点也聚类,将离群点划分到离它最近的簇中。
- 如果为
n_jobs
:一个整数,指定并行度。
属性:
claster_centers_
:一个形状为[n_clusters,n_features]
的数组,给出了每个簇中心的坐标。labels_
:一个形状为[n_samples,]
的数组,给出了每个样本所属的簇标记。如果
cluster_all=False
,则对于离群样本,其簇标记为 -1。
方法:
fit(X[, y])
:训练模型。fit_predict(X[, y])
:训练模型并执行聚类,返回每个样本所属的簇标记。predict(X)
:对每个样本预测其簇标记。每个样本距离最近的簇就是该样本所属的簇。