sklearn.cluster.KMeans()与MiniBatchKMeans()参数解析

sklearn.cluster.KMeans(n_cluster=8,init='k-means++',n_init=10,max_iter=300,tol=0.0001,
precompute_distances='auto',verbose=0,random_state=None,copy_x=True,n_jobs=1,algorithm='auto')

n_cluster:类中心的个数,默认为8

init:参数为'k-means++','random'或一个numpy的矩阵,默认为'k-means++'
'k-means++':启发式选择一个初始聚类中心
'random':随机选择数据中的k行作为类中心,每一行代表一个数据的属性集合
传入ndarray需要是(n_clusters*n_features)维,并给定初始化中心

n_init:默认为10.k-means算法会选择不同的质心运行的次数,最终结果是n_init次中最好的模型.

max_iter:默认为30,每一次k-means算法迭代的最大次数

tol:默认为1e-4,相对于惯性收敛的容错率,小于该值停止迭代,认为达到收敛

precompute_distances:参数为'auto',True,False。预计算,会得到更高的收敛速度但会占用更多内存
'auto':n_samples*n_clusters>12时不进行预计算
True:始终预计算
False:永远不进行预计算

verbose:默认为0,冗余模式?文档也没有提供详细的解释,不过通常不对默认值进行修改,如果有大神知道请评论告知QAQ

random_state:参数为int,RandomState instance or None.用来设置生成随机数的方式
int:作为随机数生成器的种子
RandomState instance:作为随机数生成器
None:随机数生成器采用np.random

copy_x:默认为True,是个boolean变量
True:对输入训练数据x所做的任何操作都是对x.copy()进行的,不改变x的原值。
False:对x的操作会同步到x上,即传引用调用

n_jobs:int型变量,并行运行的个数。
-1:使用所有CPU. n_jobs<-1时,使用(n_cpus+1+n_jobs)个CPU.

algorithm:'auto','full' or 'elkan'.默认为'auto'
full:采用经典的EM算法
elkan:通过使用三角不等式从而更有效,但不支持稀疏数据
auto:数据稀疏选择full模式,数据稠密选择elkan模式
属性:

cluster_centers_: 一个n-clusters*n_features的矩阵,表示聚类中心的坐标

labels_: 每个点的标签

inertia: 每个点到所属的聚类中心的平方和
例子:
>>> 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)
>>> kmeans.labels_
array([0, 0, 0, 1, 1, 1], dtype=int32)
>>> kmeans.predict([[0, 0], [4, 4]])
array([0, 1], dtype=int32)
>>> kmeans.cluster_centers_
array([[ 1.,  2.],
       [ 4.,  2.]])
方法:
__init__:同上述构造函数KMeans

fit(x,y=None):对输入数据进行训练
x:训练数据,表示为(n_samples*n_features)的矩阵

fit_predict(x,y=None):(等于调用fit(x)后predict(x))
x:训练数据,表示为(n_samples*n_features)的矩阵
返回值为(n_samples*1)的矩阵表示每一个数据的标签类型

fit_transform(x,y=None):将x转化到聚类距离空间(方便计算距离),等价于fit(x).transform(x)但更高效
x:训练数据,表示为(n_samples*n_features)的矩阵
返回值为(n_samples*k)的矩阵,即将x映射到新的空间中

get_params(deep=True):返回模型的参数

predict(x):对x进行预测,返回距离最近的聚类中心所属的类别
x:训练数据,表示为(n_samples*n_features)的矩阵
返回值为(n_samples*1)的矩阵表示每一个数据的标签类型

score(x,y=None):
x中每一点到聚类中心的距离平方和的相反数.

set_params(**params):根据传入的params构造模型的参数

transform(x):
x:训练数据,表示为(n_samples*n_features)的矩阵
返回值为(n_samples*k)的矩阵,即将x映射到新的空间中

sklearn.cluster.MiniBatchKMeans(n_clusters=8,init='k-means++',max_iter=100,batch_size=100,verbose=0,
compute_labels=True,random_state=None,tol=0.0,max_no_improvement=10,init_size=None,n_init=3,reassignment_ratio=0.01)
每次使用一定数量(batch)的点进行迭代,加快收敛。适用于大量数据点的情况

batch_size:int 默认100,最小批的数量

compute_labels:boolean,默认为True
最小批优化收敛之后计算标签和误差距离

max_no_improvement:int 默认10
控制不产生性能提升的连续最小批的数量,设置为None时取消根据误差的收敛性检测

init_size:int 默认为3*batch_size
加速初始化随机选择的样本数

reassignment_ratio:float 默认0.01
占再聚类中心最大数量的比例。越高收敛越慢,但是效果越好

方法:
partial_fit(x,y=None):根据x更新k-means的参数
x是大小为(n_samples*n_features)的矩阵

引用:
https://coolshell.cn/articles/7779.html
 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值