【Python实例第29讲】递归的特征排除法

机器学习训练营——机器学习爱好者的自由交流空间(qq 群号:696721295

这是一个递归的特征排除例子,显示在一个数字分类的任务里像素的相关性。

给定一个外部的估计量,它给特征赋权,比如说线性模型里的回归系数。所谓递归的特征排除(recursive feature elimination, RFE), 它的目标是递归地选择越来越小的特征子集。首先,在初始的特征集上训练估计量,每一个特征的重要性,或者通过“系数”属性,或者通过“特征重要性”属性获得。然后,最不重要的特征被从当前的特征集里“修剪”掉。这个过程递归地在修剪过的特征集上重复,直到达到最终想要的特征数量。

导入必需的库

from sklearn.svm import SVC
from sklearn.datasets import load_digits
from sklearn.feature_selection import RFE
import matplotlib.pyplot as plt

加载手写数字数据集

# Load the digits dataset
digits = load_digits()
X = digits.images.reshape((len(digits.images), -1))
y = digits.target

特征排秩

在支持向量分类器上,使用递归的特征排除法产生RFE对象,并对每个特征像素排秩。

# Create the RFE object and rank each pixel
svc = SVC(kernel="linear", C=1)
rfe = RFE(estimator=svc, n_features_to_select=1, step=1)
rfe.fit(X, y)
ranking = rfe.ranking_.reshape(digits.images[0].shape)

像素秩图

# Plot pixel ranking
plt.matshow(ranking, cmap=plt.cm.Blues)
plt.colorbar()
plt.title("Ranking of pixels with RFE")
plt.show()

【Python实例第29讲】递归的特征排除法_第1张图片

阅读更多精彩内容,请关注微信公众号:统计学习与大数据

你可能感兴趣的:(python)