【挖掘模型】:Python-层次聚类算法

【挖掘模型】:Python-层次聚类算法_第1张图片
层次聚类算法

层次聚类算法又称为树聚类算法,它根据数据之间的距离,透过一种层次架构方式,反复将数据进行聚合,创建一个层次以分解给定的数据集

# 使用层次聚类将1,3,5,6,9,10,13聚类
    # 计算出每个点之间的距离
    # 找出他们之间最近的距离
    # 一直压缩到底
# API
    # linkage = scipy.cluster.hierarchy.linkage(data_训练样本,method = 'single')
    # method 类计算公式
        # singele 两个类之间最短的点的距离
        # complete 两个类之间最长距离的点的距离
        # centroid 两个类所有点的中点的距离
    # scipy.cluster.hierarchy.fcluster(linkage_层次聚类的结果,n_要聚类的个数,criterion = 'maxclust'_划分方法)
import numpy
import pandas
from sklearn import datasets
import scipy.cluster.hierarchy as hcluster

iris = datasets.load_iris()

data = iris.data
target = iris.target

# Compute and plot first dendrogram.
linkage = hcluster.linkage(
   data, 
   method='centroid'
)

hcluster.dendrogram(
   linkage,    
   leaf_font_size=10.
)


hcluster.dendrogram(
   linkage,
   truncate_mode='lastp', 
   p=12,    
   leaf_font_size=12.
)

p = hcluster.fcluster(
   linkage, 
   3, 
   criterion='maxclust'
)

ct = pandas.DataFrame({
   'p': p, 
   't': target
}).pivot_table(
   index=['t'], 
   columns=['p'], 
   aggfunc=[numpy.size]
)

参考文献
作者A:ken

你可能感兴趣的:(【挖掘模型】:Python-层次聚类算法)