本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。