我在Python中搜索了实现降维的方法,得到的结果是:http://scikit-learn.org/stable/modules/unsupervised_reduction.html。该网站展示的最后一种方法是特征聚合。我点击了该Python方法的文档链接,但仍不确定如何使用它。
如果有人之前使用过Python的特征聚合方法,能否解释一下它的工作原理(输入、输出等)?谢谢!
回答:
您可以使用numpy数组或pandas数据框作为sklearn.cluster.FeatureAgglomeration的输入
输出是一个numpy数组,其行数等于数据集的行数,列数等于FeatureAgglomeration中设置的n_clusters参数。
from sklearn.cluster import FeatureAgglomerationimport pandas as pdimport matplotlib.pyplot as plt#iris.data来自https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris=pd.read_csv('iris.data',sep=',',header=None)#存储标签label=iris[4]iris=iris.drop([4],1)#将n_clusters设置为2,输出将是聚合特征的两列(iris有4个特征)agglo=FeatureAgglomeration(n_clusters=2).fit_transform(iris)#绘图color=[]for i in label: if i=='Iris-setosa': color.append('g') if i=='Iris-versicolor': color.append('b') if i=='Iris-virginica': color.append('r')plt.scatter(agglo[:,0],agglo[:,1],c=color)plt.show()