0A04 无监督学习:聚类(2) 近邻算法(Affinity Propagation)

  AP算法,具有结果稳定可重现

  训练前不用制定K-means中K值,但是算法的时间复杂度比K-means高

import numpy as np
from sklearn.cluster import AffinityPropagation # 引入AP算法聚类

X = np.array([[1,2],[1,4],[0.7,0],[0.2,5],[0,4],[1.3,0],[0.1,2],[0,4],[0.4,0]]) # 训练数据
af = AffinityPropagation(preference=-5).fit(X) # preference结点参考度 =-5 聚类
print(af.labels_) # 查看聚类结果
af2 = AffinityPropagation(preference=-8).fit(X)
print(af2.labels_) # 查看聚类结果
print(af2.n_iter_) # 迭代进行了42轮
print(af2.cluster_centers_) # 两个质心的坐标


'''
一些重要的初始化参数:
damping: 阻尼因子,范围在0.5-1之间
converfence_iter: 聚类结果连续迭代 converfence_iter 次没有变化时,认为已经达到了稳定状态,算法完成
max_iter: 最大迭代次数
preference: 结点参考度,可以是一个数值或一个数组(每个样本有各自的参考度)
affinity: 相似度计算的方法
一些重要的聚类结果的属性:
cluster_centers_indices 质心样本在训练集中的索引号
cluster_centers_: 质心结点的特征向量数组
labels_: 训练样本的聚类结果
n_iter: 算法收敛所用的迭代次数
affinity_matrix: 近邻矩阵,也就是责任度矩阵和可用度矩阵的和
'''

上一篇:SharedPreferences类的使用


下一篇:python系列(2)- 列表和元组