发布网友 发布时间:2024-04-02 16:04
共1个回答
热心网友 时间:2024-07-20 21:22
通过物品特征来计算距离,并自动分类到不同的群集或组中。
对于层次聚类算法,我们不需要预先指定分类的数量,这个算方法会将每条数据都当作是一个分类,每次迭代的时候合并距离最近的两个分类,直到剩下一个分类为止。
聚类的结果: 顶层有一个大分类,这个分类下有两个子分类,每个子分类下又有两个子分类,依次内推,层级聚类也因此得名。
在单链聚类中,分类之间的距离由两个分类相距最近的两个元素决定。如上图中分类 A 和分类 B 的距离由 A1 和 B1 的距离决定,因为这个距离小于 A1 到 B2、A2 到 B1 的距离,这样一来我们会将 A 和 B 进行合并。
在全链聚类中,分类之间的距离由两个分类相距最远的两个元素决定。因此上图中分类 A 和 B 的距离是 A2 到 B2 的距离,最后会将分类 B 和 C 进行合并。
在平均链接聚类中,分类之间的距离由分类之间两两元素的平均距离决定。因此上图中会将分类 B 和 C 进行合并。
使用 k-means 算法时需要指定分类的数量,这也是算法名称中“k”的由来。
第一步:随机选取中心点
(1, 4) 作为分类 1 的中心点,(4, 2) 作为分类 2 的中心点;
第四步 重复第二、第三步,直到中心点不发生变化
得到分类 1 的中心点是( 1.2, 2.75 ),计算得分类 2 的中心点是( 4.5, 2.5 )
可以使用误差平方和(或称离散程度)来评判聚类结果的好坏,它的计算方法是:计算每个点到中心点的距离平方和。
k-means 是 50 年代发明的算法,它的实现并不复杂,但它有一个明显的缺点,在算法一开始需要随机选取 k 个起始点,有时选取的点产生最佳结果,而有时会让结果变得很差。k-means++ 则改进了起始点的选取,其余的和 k-means 一致。
第一个点还是随机的,但后续的点就会尽量选择离现有中心点更远的点。
将:
修改为:
参考原文原文 http://guidetodatamining.com/
参考译文来自 @egrcc 的 https://github.com/egrcc/guidetodatamining