sklearn.cluster.KMeans中n_init参数是什么意思

-柚子皮-
人工智能领域优质创作者
博客专家认证
2014-12-20 09:34:38
n_init解释为:
Number of time the k-means algorithm will be run with different centroid seeds. The
final results will be the best output of n_init consecutive runs in terms of inertia.
设置选择质心种子次数,默认为10次。返回质心最好的一次结果(好是指计算时长短)

这个到底是嘛意思?
...全文
1608 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
panghuhu250 2014-12-20
  • 打赏
  • 举报
回复 1
每一次算法运行时开始的centroid seeds是随机生成的, 这样得到的结果也可能有好有坏. 所以要运行算法n_init次, 取其中最好的.
#class sklearn.cluster.KMeans(n_clusters=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’) #参数: #(1)对于K均值聚类,我们需要给定类别的个数n_cluster,默认值为8; #(2)max_iter为迭代的次数,这里设置最大迭代次数为300; #(3)n_init设为10意味着进行10次随机初始化,选择效果最好的一种来作为模型; #(4)init=’k-means++’ 会由程序自动寻找合适的n_clusters; #(5)tol:float形,默认值= 1e-4,与inertia结合来确定收敛条件; #(6)n_jobs:指定计算所用的进程数; #(7)verbose 参数设定打印求解过程的程度,值越大,细节打印越多; #(8)copy_x:布尔型,默认值=True。当我们precomputing distances时,将数据心化会得到更准确的结果。如果把此参数值设为True,则原始数据不会被改变。如果是False,则会直接在原始数据上做修改并在函数返回值时将其还原。但是在计算过程由于有对数据均值的加减运算,所以数据返回后,原始数据和计算前可能会有细小差别。 #属性: #(1)cluster_centers_:向量,[n_clusters, n_features] # Coordinates of cluster centers (每个簇心的坐标??); #(2)Labels_:每个点的分类; #(3)inertia_:float,每个点到其簇的质心的距离之和。

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧