我正在尝试使用children_提供的属性构建树形图AgglomerativeClustering,但到目前为止我运气不好.我无法使用,scipy.cluster因为提供的凝聚聚类scipy缺少一些对我很重要的选项(例如指定聚类数量的选项).我真的很感激那里的任何建议.
import sklearn.cluster
clstr = cluster.AgglomerativeClustering(n_clusters=2)
clusterer.children_
Run Code Online (Sandbox Code Playgroud) 当我check_array从模块导入函数时sklearn.utils.validation,它得到一个Import Error(ImportError: cannot import name check_array).该选项卡中完成了check_arrays,但我想知道只存在一个调用的函数check_array中validation.py(在Github上的源代码).此外,谱聚类算法实现scikit学习/ sklearn /组/ spectral.py也用from ..utils.validation import check_array,不check_arrays.我对此很困惑,我的scikit-learn版本是'0.15.0b1'.希望有人能给我一些线索.
import numpy as np
from sklearn.utils.validation import check_array
def my_fit_affinity(X, affinity_type, n_neighbors, **kernel_params):
""" Create an affinity matrix for X using the selected affinity type
"""
X = check_array(X, accept_sparse = ['csr', 'csc', 'coo'])
....
return affinity_matrix_
Run Code Online (Sandbox Code Playgroud) 我正在使用sklearn.cluster.AgglomerativeClustering. 它从每个数据点一个集群开始,并迭代地将两个“最接近”的集群合并在一起,从而形成一棵二叉树。什么构成集群之间的距离取决于链接参数。
了解每一步合并集群之间的距离会很有用。当下一个要合并的集群相距太远时,我们可以停止。唉,这似乎在AgglomerativeClustering.
我错过了什么吗?有没有办法恢复距离?