四、AgglomerativeClustering
AgglomerativeClustering
是scikit-learn
提供的一种层次聚类模型。其原型为:class sklearn.cluster.AgglomerativeClustering(n_clusters=2, affinity='euclidean',
memory=Memory(cachedir=None), connectivity=None, n_components=None,
compute_full_tree='auto', linkage='ward', pooling_func=<function mean>)
n_clusters
:一个整数,指定簇的数量。connectivity
:一个数组或者可调用对象或者为None
,用于指定连接矩阵。它给出了每个样本的可连接样本。affinity
:一个字符串或者可调用对象,用于计算距离。可以为:'euclidean', 'l1', 'l2', 'manhattan', 'cosine', 'precomputed'
。如果
linkage='ward'
,则'affinity
必须是'euclidean'
memory
:用于缓存输出的结果,默认为不缓存。如果给定一个字符串,则表示缓存目录的路径。n_components
:将在scikit-learn v 0.18
中移除compute_full_tree
:通常当已经训练了n_clusters
之后,训练过程就停止。但是如果
compute_full_tree=True
,则会继续训练从而生成一颗完整的树。linkage
:一个字符串,用于指定链接算法。'ward'
:采用方差恶化距离variance incress distance
。'complete'
:全链接complete-linkage
算法,采用 。'average'
:均链接average-linkage
算法,采用 。'single'
:单链接single-linkage
算法,采用 。
pooling_func
:即将被废弃的接口。
属性:
labels_
:一个形状为[n_samples,]
的数组,给出了每个样本的簇标记。n_leaves_
:一个整数,给出了分层树的叶结点数量。n_components_
:一个整数,给除了连接图中的连通分量的估计值。children_
:一个形状为[n_samples-1,2]
数组,给出了每个非叶结点中的子节点数量。
方法:
fit(X[, y])
:训练模型。fit_predict(X[, y])
:训练模型并执行聚类,返回每个样本所属的簇标记。