A-无监督学习算法示例:层次聚类
⼀种针对小样本精确聚类的聚类算法:层次聚类法。所谓更更加精准,⼀方面是指该聚类方法在执行过程中全程保持透明,另⼀面则是在真实的应用场景中,针对数据量不大(数千行左右)的数据,层次聚类往会有一个⾮常好的聚类效果
其首先会计算所有数据中最邻近的点,将其归为一个簇,然后取其质心作为簇的代表,参与到下一次最邻近点的选取的过程当中,简单来说就是不断的两两合并直到合并为一个簇为止
In [2]:
import numpy as np import pandas as pd import matplotlib.pyplot as plt %matplotlib inline
In [4]:
from sklearn.datasets import load_iris iris = load_iris()
In [6]:
iris.data
In [7]:
iris.target
Out[7]:
In [8]:
from sklearn.cluster import AgglomerativeClustering agClustering = AgglomerativeClustering(n_clusters=3)
In [9]:
agClustering.fit(iris.data)
Out[9]:
In [12]:
agClustering.labels_
Out[12]:
In [15]:
from sklearn.metrics import accuracy_score
In [16]:
accuracy_score(iris.target,agClustering.labels_)
Out[16]: