【发布时间】:2018-06-01 13:23:20
【问题描述】:
我是机器学习的初学者。我正在根据 49 个特征进行二进制分类。前 7 个特征是 float64 类型。接下来的 18 个特征是多类类型,其余的是二进制类类型,即 0 或 1。我使用以下代码进行了特征选择
model = ExtraTreesClassifier()
model.fit(x_new, y)
print(model.feature_importances_)
上面的输出是
[ 1.20621145e-01 3.71627370e-02 1.82239903e-05 5.40071522e-03
1.77431957e-02 8.40569119e-02 1.74562937e-01 5.00468692e-02
7.60565780e-03 1.78975490e-01 4.30178009e-03 7.44005584e-03
3.46208406e-02 1.67869557e-03 2.94863800e-02 1.97333741e-02
2.53116233e-02 1.30663822e-02 1.14032351e-02 3.98503442e-02
3.48701630e-02 1.93366039e-02 5.89310510e-03 3.17052801e-02
1.47389909e-02 1.54041443e-02 4.94699885e-03 2.27428191e-03
1.27218776e-03 7.39305898e-04 3.84357333e-03 1.59161363e-04
1.31479740e-03 0.00000000e+00 5.24038196e-05 9.92543746e-05
2.27356615e-04 0.00000000e+00 1.29338508e-05 4.98412036e-06
2.97697346e-06 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 1.49018368e-05 0.00000000e+00 0.00000000e+00
0.00000000e+00]
由于它们都不重要,我在多类类型的 18 个特征的子集上进行了尝试,以下是输出
[ 0.06456545 0.01254671 0.32220959 0.00552464 0.02017919 0.07311639
0.00716867 0.06964389 0.04797752 0.06608452 0.02915153 0.02044009
0.05146265 0.05712569 0.09264365 0.01252251 0.01899865 0.02863864]
包含所有特征会降低每个特征在分类中的贡献,但不能消除任何一个。我应该消除分数相对较低的特征吗?以上结果的推论是什么?
将 Scikit-Learn 与 Python 3 结合使用。
【问题讨论】:
标签: python-3.x machine-learning scikit-learn classification data-science