本文简要介绍python语言中 sklearn.feature_selection.RFE
的用法。
用法:
class sklearn.feature_selection.RFE(estimator, *, n_features_to_select=None, step=1, verbose=0, importance_getter='auto')
具有递归特征消除的特征排名。
给定一个为特征分配权重的外部估计器(例如,线性模型的系数),递归特征消除(RFE)的目标是通过递归地考虑越来越小的特征集来选择特征。首先,估计器在初始特征集上进行训练,每个特征的重要性通过任何特定属性或可调用获得。然后,从当前的特征集中剪除最不重要的特征。该过程在修剪后的集合上递归重复,直到最终达到要选择的所需特征数量。
在用户指南中阅读更多信息。
- estimator:
Estimator
实例 具有
fit
方法的监督学习估计器,可提供有关特征重要性的信息(例如coef_
、feature_importances_
)。- n_features_to_select:int 或浮点数,默认=无
要选择的特征数。如果
None
,则选择一半的特征。如果是整数,则参数是要选择的特征的绝对数量。如果在 0 和 1 之间浮点数,则它是要选择的特征的一部分。- step:int 或浮点数,默认=1
如果大于或等于 1,则
step
对应于每次迭代时要移除的特征的(整数)个数。如果在 (0.0, 1.0) 范围内,则step
对应于每次迭代中要删除的特征的百分比(向下舍入)。- verbose:整数,默认=0
控制输出的详细程度。
- importance_getter:str 或可调用,默认='auto'
如果‘auto’,通过估计器的
coef_
或feature_importances_
属性使用特征重要性。还接受一个字符串,该字符串指定用于提取特征重要性的属性名称/路径(使用
attrgetter
实现)。例如,在TransformedTargetRegressor
的情况下给出regressor_.coef_
或在 class:~sklearn.pipeline.Pipeline
的情况下给出named_steps.clf.feature_importances_
,最后一步命名为clf
。如果
callable
,覆盖默认的特征重要性获取器。可调用对象与拟合的估计器一起传递,它应该返回每个特征的重要性。
- estimator:
classes_
ndarray 形状 (n_classes,)当
estimator
是分类器时可用的类标签。- estimator_:
Estimator
实例 用于选择特征的拟合估计器。
- n_features_:int
所选特征的数量。
- n_features_in_:int
拟合期间看到的特征数。仅当基础估计器在合适时公开此类属性时才定义。
- feature_names_in_:ndarray 形状(
n_features_in_
,) 拟合期间看到的特征名称。仅当
X
具有全为字符串的函数名称时才定义。- ranking_:ndarray 形状 (n_features,)
特征排名,使得
ranking_[i]
对应i-th特征的排名位置。选定的(即估计的最佳)特征被分配等级 1。- support_:ndarray 形状 (n_features,)
所选特征的掩码。
参数:
属性:
注意:
如果基础估计器也这样做,则允许输入中的 NaN/Inf。
参考:
- 1
Guyon, I., Weston, J., Barnhill, S., & Vapnik, V.,“使用支持向量机进行癌症分类的基因选择”,Mach。学习。, 46(1-3), 389-422, 2002。
例子:
以下示例展示了如何检索 Friedman #1 数据集中信息量最大的 5 个特征。
>>> from sklearn.datasets import make_friedman1 >>> from sklearn.feature_selection import RFE >>> from sklearn.svm import SVR >>> X, y = make_friedman1(n_samples=50, n_features=10, random_state=0) >>> estimator = SVR(kernel="linear") >>> selector = RFE(estimator, n_features_to_select=5, step=1) >>> selector = selector.fit(X, y) >>> selector.support_ array([ True, True, True, True, True, False, False, False, False, False]) >>> selector.ranking_ array([1, 1, 1, 1, 1, 6, 4, 3, 2, 5])
相关用法
- Python sklearn RFECV用法及代码示例
- Python sklearn RandomTreesEmbedding用法及代码示例
- Python sklearn RocCurveDisplay用法及代码示例
- Python sklearn RadiusNeighborsTransformer用法及代码示例
- Python sklearn RadiusNeighborsRegressor.radius_neighbors_graph用法及代码示例
- Python sklearn RandomizedSearchCV用法及代码示例
- Python sklearn RadiusNeighborsClassifier用法及代码示例
- Python sklearn RidgeCV用法及代码示例
- Python sklearn RegressorChain用法及代码示例
- Python sklearn RandomForestClassifier用法及代码示例
- Python sklearn RadiusNeighborsTransformer.radius_neighbors_graph用法及代码示例
- Python sklearn RANSACRegressor用法及代码示例
- Python sklearn RobustScaler用法及代码示例
- Python sklearn RandomForestRegressor用法及代码示例
- Python sklearn RepeatedStratifiedKFold用法及代码示例
- Python sklearn RocCurveDisplay.from_estimator用法及代码示例
- Python sklearn RadiusNeighborsRegressor用法及代码示例
- Python sklearn RBF用法及代码示例
- Python sklearn Ridge用法及代码示例
- Python sklearn RadiusNeighborsTransformer.radius_neighbors用法及代码示例
- Python sklearn RocCurveDisplay.from_predictions用法及代码示例
- Python sklearn RidgeClassifierCV用法及代码示例
- Python sklearn RadiusNeighborsRegressor.radius_neighbors用法及代码示例
- Python sklearn RepeatedKFold用法及代码示例
- Python sklearn RBFSampler用法及代码示例
注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.feature_selection.RFE。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。