一些前提的约定,还是沿用上篇文章的哈。先来致敬下男神。
一:聚类
就我个人而言,学到了这里,是让我非常激动的事情,因为 K-means 这个算法是我
学习到的第一个非监督学习算法,也是第一个聚类算法。
所谓的无监督学习,就是对于样本来说,我们不知道它的输出,或者不知道它的标签
是什么,我们唯一知道的就是样本空间内,各个样本的特征向量。所谓聚类,就是通过某
种算法,自动将在特征空间内相似的样本聚合在一起组成一个类簇(cluster),通过自动的
样本聚类,帮助人们发现样本之间的分布和类群特征。
比如在文章分类中,通过提取众多关键词,组合特征的样本向量,通过比较之间的相
似度和距离,自动将文章划分为不同不种类,比如新闻类,财经类,政治类,体育类等等。
再比如社交网络,通过给不同用户 “画像”,也就是给用户建立特征模型,通过聚类找
到相似的群体,有助于商业决策和内容推荐等活动。
二:K-means 算法
也就是有 K 个平均值点。啥意思呢?见我详细道来。先上菜,整起算法过程。
1)在所有点中随机选出 K 个点作为簇中点(μ
1
, μ
2
, μ
3
, μ
4
, μ
5….
, μ
k
),暂且将 K 个簇
编号为 1, 2, 3, 4, 5, ….. K,注意,大写的 K 是数量,小写的 k 是编号。
2)计算出所有样本点 x
(i)
到所有簇中点 μ
k
的距离 D(i, k)(可以是欧式距离,或者是
曼哈顿距离),再找到距离点 x
(i)
最近的 μ
k
,标记该样本的簇是 c
(i)
=k。
3)重新计算所有上一步骤得到的簇的中心点 μ
k
,
4)重复步骤 2 和 3。直到 μ
k
,不会再法还是能大的变化或不变为止,此时算法收敛
了。
三:具体演示
下面我会用一个具体的例子来展示这个过程。
评论0
最新资源