k-means算法原理及实战

全文共684个字,1张图,预计阅读时间6分钟。

K-means原理

K-means算法是输入聚类个数k,以及包含 n个数据对象的数据库,输出满足方差最小标准k个聚类的一种算法。

基本流程:

步骤1:

从n个数据对象任意选择 k 个对象作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的

(聚类中心所代表的)聚类;

步骤2:

再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);

步骤3:

不断重复这一过程直到标准测度函数开始收敛为止。

一般都采用均方差作为标准测度函数. k个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。

算法的时间复杂度上界为O(n*k*t), 其中t是迭代次数。

k-means算法是一种基于样本间相似性度量的间接聚类方法,属于非监督学习方法。此算法以k为参数,把n 个对象分为k个簇,以使簇内具有较高的相似度,而且簇间的相似度较低。

我们使用sklearn库来实现k-means。

中心点的个数从3到80对应的误差值的曲线

10个簇的数据集的个数

10个类的tfidf标签结果

评分

说明

代码大部分来自这篇文章:K-means算法及文本聚类实践,只是没有数据集,然后自己手撕写了个36kr文章的爬虫的程序。φ(>ω

代码地址上传到github:text-cluster

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181027A1AYY400?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券