當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python sklearn RFE用法及代碼示例


本文簡要介紹python語言中 sklearn.feature_selection.RFE 的用法。

用法:

class sklearn.feature_selection.RFE(estimator, *, n_features_to_select=None, step=1, verbose=0, importance_getter='auto')

具有遞歸特征消除的特征排名。

給定一個為特征分配權重的外部估計器(例如,線性模型的係數),遞歸特征消除(RFE)的目標是通過遞歸地考慮越來越小的特征集來選擇特征。首先,估計器在初始特征集上進行訓練,每個特征的重要性通過任何特定屬性或可調用獲得。然後,從當前的特征集中剪除最不重要的特征。該過程在修剪後的集合上遞歸重複,直到最終達到要選擇的所需特征數量。

在用戶指南中閱讀更多信息。

參數

estimatorEstimator 實例

具有 fit 方法的監督學習估計器,可提供有關特征重要性的信息(例如 coef_feature_importances_ )。

n_features_to_selectint 或浮點數,默認=無

要選擇的特征數。如果 None ,則選擇一半的特征。如果是整數,則參數是要選擇的特征的絕對數量。如果在 0 和 1 之間浮點數,則它是要選擇的特征的一部分。

stepint 或浮點數,默認=1

如果大於或等於 1,則 step 對應於每次迭代時要移除的特征的(整數)個數。如果在 (0.0, 1.0) 範圍內,則 step 對應於每次迭代中要刪除的特征的百分比(向下舍入)。

verbose整數,默認=0

控製輸出的詳細程度。

importance_getterstr 或可調用,默認='auto'

如果‘auto’,通過估計器的coef_feature_importances_ 屬性使用特征重要性。

還接受一個字符串,該字符串指定用於提取特征重要性的屬性名稱/路徑(使用 attrgetter 實現)。例如,在 TransformedTargetRegressor 的情況下給出 regressor_.coef_ 或在 class: ~sklearn.pipeline.Pipeline 的情況下給出 named_steps.clf.feature_importances_ ,最後一步命名為 clf

如果 callable ,覆蓋默認的特征重要性獲取器。可調用對象與擬合的估計器一起傳遞,它應該返回每個特征的重要性。

屬性

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])

相關用法


注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.feature_selection.RFE。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。