第1关:DBScan与Kmeans聚类的比较
任务描述
本关任务:编写一个DBScan与Kmeans聚类的小程序。
相关知识
为了完成本关任务,你需要掌握:
1.理解DBScan与Kmeans聚类的基础知识。
2.编写代码实现DBScan与Kmeans聚类。
聚类
俗话说:“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。所谓类,通俗地说,就是指相似元素的集合。
而对于分类问题,我们通常不会提供x与y这样的映射关系,对于这种用机器自动找出其中规律并进行分类的问题,我们称为聚类。
聚类在实际的应用中亦是非常广泛的,如:市场细分(Market segmentation)、社交圈分析(social network analysis)、集群计算(organize computing clusters)、天体数据分析(astronomical data analysis)。
Kmeans 算法
K-means算法是最常用的一种聚类算法。算法的输入为一个样本集(或者称为点集),通过该算法可以将样本进行聚类,具有相似特征的样本聚为一类。
针对每个点,计算这个点距离所有中心点最近的那个中心点,然后将这个点归为这个中心点代表的簇。一次迭代结束之后,针对每个簇类,重新计算中心点,然后针对每个点,重新寻找距离自己最近的中心点。如此循环,直到前后两次迭代的簇类没有变化。
下面通过一个简单的例子,说明K-means算法的过程。如下