
数据表示与特征工程
|
183
In[41]:
from sklearn.linear_model import LogisticRegression
# 对测试数据进行变换
X_test_selected = select.transform(X_test)
lr = LogisticRegression()
lr.fit(X_train, y_train)
print("Score with all features: {:.3f}".format(lr.score(X_test, y_test)))
lr.fit(X_train_selected, y_train)
print("Score with only selected features: {:.3f}".format(
lr.score(X_test_selected, y_test)))
Out[41]:
Score with all features: 0.930
Score with only selected features: 0.940
在这个例子中,删除噪声特征可以提高性能,即使丢失了某些原始特征。这是一个非常简
单的假想示例,在真实数据上的结果要更加复杂。不过,如果特征量太大以至于无法构建
模型,或者你怀疑许多特征完全没有信息量,那么单变量特征选择还是非常有用的。
4.5.2
基于模型的特征选择
基于模型的特征选择使用一个监督机器学习模型来判断每个特征的重要性,并且仅保留最
重要的特征。用于特征选择的监督模型不需要与用于最终监督建模的模型相同。特征选择 ...