from sklearn.cluster import KMeans
help(KMeans)
K-Means clustering
KMeans聚类
n_clusters: int类型,默认8。产生的聚类数。
init: { 'k-means++', 'random' or an ndarray}, 默认k-means++。初始选取聚类中心位置的方法。
'k-means++' :kmeans聚类法中一种选择初始聚类中心的方法,可以加速收敛。
'ransom' : 随机选择k个中心。
当使用nadarry形式时,其形状应该是(n_clusters, n_features) 给出聚类中心。
n_init: int类型,默认10。在不同的中心时运行kmeans的次数。
max_iter: int类型,默认300。kmeans算法单词运行中的最大迭代次数。
tol: float类型,默认1e-4。相对误差。
precompute_distances: {'auto', Ture, False}。预计算距离(更快,但占用更多内存)
‘auto’:当n_samples * n_clusters >12000000 时不预计算距离。
True:一直预计算距离
False:不预计算距离。
verbose:int类型,默认0。冗长模式。
random_state:随机种子。
copy_x:boolean类型,默认True。当预计算距离时,首先将数据居中会更加精确。如果copy_x是True,那么原始数据就不会被修 改。如果为False,则对原始数据进行修改,并将其放回函数返回之前,但是可以通过减去数据平均值,然后添加数据平均 值来引入很小的数值差异。
n_jobs:int类型。
algorithm: 'auto', 'full' or 'elkan', 默认'auto'。
cluster_centers_:array, [ n_clusters, n_features]。聚类簇的中心的坐标。
labels_:每个点的标签。
inertia_:float。每个样本点到距离最近的簇中心的距离之和。
from sklearn.cluster import KMeans
import numpy as np
X = np.array([[1,2], [1,4], [1,0], [4,2], [4,4], [4,0]])
kmeans = KMeans(n_clusters=2, random_state=0).fit(X)
print(kmeans.labels_)
print(kmeans.predict([[0,0], [4,4]])
print(kmeans.cluster_centers_)
结果:
kmeans.labels_: array([0,0,0,1,1,1])
kmeans.predict(): array([0,1], dtype=int32)
kmeans.cluster_centers_: array([[1., 2.],
[4., 2.]])