【问题标题】:How to use Python's feature agglomeration for dimensionality reduction? [closed]如何使用 Python 的特征聚合进行降维? [关闭]
【发布时间】:2017-08-11 00:22:00
【问题描述】:
【问题讨论】:
标签:
python
machine-learning
scikit-learn
feature-extraction
dimensionality-reduction
【解决方案1】:
您可以使用 numpy 数组或 pandas 数据框作为 sklearn.cluster.FeatureAgglomeration 的输入
输出是一个 numpy 数组,行数等于数据集中的行数,列数等于 FeatureAgglomeration 中设置的 n_clusters 参数。
from sklearn.cluster import FeatureAgglomeration
import pandas as pd
import matplotlib.pyplot as plt
#iris.data from https://archive.ics.uci.edu/ml/machine-learning-databases/iris/
iris=pd.read_csv('iris.data',sep=',',header=None)
#store labels
label=iris[4]
iris=iris.drop([4],1)
#set n_clusters to 2, the output will be two columns of agglomerated features ( iris has 4 features)
agglo=FeatureAgglomeration(n_clusters=2).fit_transform(iris)
#plotting
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()