您的位置:首页 > 博客中心 > 数据库 >

初识聚类算法:K均值、凝聚层次聚类和DBSCAN

时间:2022-03-13 22:40

这里只是将比较重要的部分转一下

另外还有一篇关于层次聚类的 http://blog.csdn.net/jwh_bupt/article/details/7685809

聚类分析就仅根据在数据中发现的描述对象及其关系的信息,将数据对象分组(簇)。其目标是,组内的对象相互之间是相似的,而不同组中的对象是不同的。组内相似性越大,组间差别越大,聚类就越好。

先介绍下聚类的不同类型,通常有以下几种:

(1)层次的与划分的:如果允许簇具有子簇,则我们得到一个层次聚类。层次聚类是嵌套簇的集族,组织成一棵树。划分聚类简单地将数据对象划分成不重叠的子集(簇),使得每个数据对象恰在一个子集中。

(2)互斥的、重叠的与模糊的:互斥的指每个对象都指派到单个簇。重叠的或是模糊聚类用来反映一个对象同时属于多个组的事实。在模糊聚类中,每个数据对象以一个0和1之间的隶属权值属于每个簇。每个对象与各个簇的隶属权值之和往往是1。

(3)完全的与部分的:完全聚类将每个对象指派到一个簇中。部分聚类中,某些对象可能不属于任何组,比如一些噪音对象。

...

基本K均值

根据该算法,实现如下代码:

    

    或是 

凝聚层次聚类

根据该算法,实现如下代码。开始时计算每个点对的距离,并按距离降序依次合并。另外为了防止过度合并,定义的退出条件是90%的簇被合并,即当前簇数是初始簇数的10%:

    

    或是 

 DBSCAN

根据该算法,实现如下代码:

    

    或是     

 

初识聚类算法:K均值、凝聚层次聚类和DBSCAN,布布扣,bubuko.com

热门排行

今日推荐

热门手游