博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
聚类分析之层次划分(Hierarchical、Birch)
阅读量:6082 次
发布时间:2019-06-20

本文共 1509 字,大约阅读时间需要 5 分钟。

       层次聚类算法使用数据的联結规则,对数据集合进行层次似的聚类。层次聚类可以分为两大类,自顶向下的分裂聚类和自顶而上的合并聚类。分裂聚类是将所有的对象看成一个聚类,然后将其不断分解直至满足终止条件。后者与前者相反,它先将每个对象各自作为一个原子聚类,然后对这些原子聚类逐层进行聚类,直至满足终止条件。代表算法有:CURE、CHAMELEON、ROCK、Hierarchical等

      对于层次聚类常用的距离度量方法主要有最大距离、最小距离、平均距离等。一个算法使用最大距离度量距离的时候,称为最远邻聚类算法。一个算法使用最小距离度量距离的时候,称为邻聚类算法。使用最小距离度量的聚合增长算法也称为最小生成树算法。当最近族的距离超过某个阀值时算法停止,称为全连接算法。平均距离是对最大最小距离度量的折中,可以有效克服噪音和奇异点的影响。

算法:(以合并算法为例)

 setp1:每个样本作为单独一类(c1,c2,...cn)

setp2:计算每2类的距离d

setp3:找出最小的d,合并这2类

setp4:判断剩余类数是否是达到预类数(可以自己设置),没有达到,返回setp2,达到,跳出循环,输出每层类别

优点:1,距离和规则的相似度容易定义,限制少;2,不需要预先制定聚类数;3,可以发现类的层次关系;4,可以聚类成其它形状5.适用于任意形状和任意属性的数据集;灵活控制不同层次的聚类粒度,强聚类能力

缺点:1,计算复杂度太高;2,奇异值也能产生很大影响;3,算法很可能聚类成链状4.大大延长了算法的执行时间,不能回溯处理;4.需要预设类别数

代码:hierarchical为例

from sklearn.cluster import AgglomerativeClustering

from sklearn import datasets
from dask.array.learn import predict
import numpy as np
iris = datasets.load_iris()
X = iris.data
y = iris.target
print(y)
clf=AgglomerativeClustering(n_clusters=3)
predicted=clf.fit_predict(X)
print(predicted)
k2y = np.array([1,0,2])
print(k2y[predicted])
print((k2y[predicted] == y).astype(int).mean())

这样的聚类精度为0.893

Biech算法

from sklearn.cluster import Birch

from sklearn import datasets
from dask.array.learn import predict
import numpy as np
iris = datasets.load_iris()
X = iris.data
y = iris.target
print(y)
clf=Birch(n_clusters=3)
predicted=clf.fit_predict(X)
print(predicted)
k2y = np.array([2,1,0])
print(k2y[predicted])
print((k2y[predicted] == y).astype(int).mean())

聚类精度为0.813

转载于:https://www.cnblogs.com/zhangtaosx/p/7390558.html

你可能感兴趣的文章
Go方法
查看>>
Dapper丶DapperExtention,以及AbpDapper之间的关系,
查看>>
搞IT的同学们,你们在哪个等级__那些年发过的帖子
查看>>
且谈语音搜索
查看>>
MySQL数据库导入导出常用命令
查看>>
低版本Samba无法挂载
查看>>
Telegraf+Influxdb+Grafana构建监控平台
查看>>
使用excel 展现数据库内容
查看>>
C#方法拓展
查看>>
MySql.Data.dll的版本
查看>>
Linux系统磁盘管理
查看>>
hdu 2191 (多重背包+二进制优化)
查看>>
home.php
查看>>
neo4j---删除关系和节点
查看>>
redis分布式锁redisson
查看>>
什么样的企业可以称之为初创企业?
查看>>
Python爬虫之BeautifulSoup
查看>>
《HTML 5与CSS 3权威指南(第3版·下册)》——第20章 使用选择器在页面中插入内容...
查看>>
如何判断自己适不适合做程序员?这几个特点了解一下
查看>>
newinstance()和new有什么区别
查看>>