我使用scikitlearn的特性聚合来对特性而不是观察值使用层次聚类过程。在
这是我的代码:
from sklearn import cluster
import pandas as pd
#load the data
df = pd.read_csv('C:/Documents/data.csv')
agglo = cluster.FeatureAgglomeration(n_clusters=5)
agglo.fit(df)
df_reduced = agglo.transform(df)
我原来的df有形状(990,15),使用特征聚集后,df峎现在减少了(990,5)。在
现在如何找出最初的15个特性是如何聚集在一起的?换言之,df的5个新特性中的每一个都由df的哪些原始特性组成?在
在对cluster进行拟合之后,
agglo.labels_
包含一个列表,该列表告诉原始数据集中的每个特征属于哪个集群。在在转换过程中,每个簇中的特征如何组合的方式由执行层次聚类的方式来设置。简化后的特征集由n个簇的簇中心(即n个样本-维向量)组成。对于某些应用程序,您可能会认为计算中心使用不同的集群中心定义(即中值而不是平均值,以避免异常值的影响等)。在
不要忘记预先标准化这些特性(例如使用sklearn的scaler)。否则,您宁愿对数量的比例进行分组,而不是对类似行为进行聚类。 希望有帮助! 还没有测试代码。如果有问题请告诉我。在
相关问题 更多 >
编程相关推荐