【发布时间】:2014-02-15 18:24:27
【问题描述】:
以下代码读入清理后的 Titanic 数据,打印出所有特征和分数
import csv
import numpy as np
data = np.genfromtxt('titanic.csv',dtype=float, delimiter=',', names=True)
feature_names = np.array(data.dtype.names)
feature_names = feature_names[[ 0,1,2,3,4]]
data = np.genfromtxt('plants.csv',dtype=float, delimiter=',', skip_header=1)
_X = data[:, [0,1,2,3,4]]
#Return a flattened array required by scikit-learn fit for 2nd argument
_y = np.ravel(data[:,[5]])
from sklearn import feature_selection
fs = feature_selection.SelectPercentile(feature_selection.chi2, percentile=20)
X_train_fs = fs.fit_transform(_X, _y)
print feature_names, '\n', fs.scores_
结果:
['A' 'B' 'C' 'D' 'E']
[ 4.7324711 89.1428574 70.23474577 7.02447375 52.42447817]
我想要做的是捕获前 20% 的特征,并将名称和分数存储在一个数组中,然后我可以按分数排序。这将帮助我减少更大的特征集维度。为什么我会获得所有 5 个功能,我该如何解决这个问题,以及如何存储和打印前 20% 的功能名称和分数?
【问题讨论】:
标签: python numpy scikit-learn