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


Python sklearn RFECV用法及代碼示例


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

用法:

class sklearn.feature_selection.RFECV(estimator, *, step=1, min_features_to_select=1, cv=None, scoring=None, verbose=0, n_jobs=None, importance_getter='auto')

使用交叉驗證進行遞歸特征消除以選擇特征數量。

請參閱交叉驗證估計器的詞匯表條目。

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

參數

estimatorEstimator 實例

具有fit 方法的監督學習估計器,通過coef_ 屬性或feature_importances_ 屬性提供有關特征重要性的信息。

stepint 或浮點數,默認=1

如果大於或等於 1,則 step 對應於每次迭代時要移除的特征的(整數)個數。如果在 (0.0, 1.0) 範圍內,則 step 對應於每次迭代中要刪除的特征的百分比(向下舍入)。請注意,最後一次迭代可能會刪除少於 step 的特征以達到 min_features_to_select

min_features_to_select整數,默認=1

要選擇的最小特征數。即使原始特征計數和 min_features_to_select 之間的差異不能被 step 整除,也會始終對這個數量的特征進行評分。

cvint,交叉驗證生成器或可迭代的,默認=無

確定交叉驗證拆分策略。 cv 的可能輸入是:

  • 無,使用默認的 5 折交叉驗證,
  • 整數,指定折疊次數。
  • CV分配器,
  • 一個可迭代的 yield (train, test) 拆分為索引數組。

對於整數/無輸入,如果 y 是二進製或多類,則使用 StratifiedKFold 。如果估計器是分類器或者如果y 既不是二元也不是多類,則使用 KFold

有關可在此處使用的各種交叉驗證策略,請參閱用戶指南。

scoringstr,可調用或無,默認=無

一個字符串(參見模型評估文檔)或帶有簽名 scorer(estimator, X, y) 的記分器可調用對象/函數。

verbose整數,默認=0

控製輸出的詳細程度。

n_jobsint 或無,默認=無

在適合折疊時並行運行的內核數。 None 表示 1,除非在 joblib.parallel_backend 上下文中。 -1 表示使用所有處理器。有關詳細信息,請參閱詞匯表。

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

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

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

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

屬性

classes_ndarray 形狀 (n_classes,)

estimator 是分類器時可用的類標簽。

estimator_Estimator 實例

用於選擇特征的擬合估計器。

grid_scores_ndarray 形狀 (n_subsets_of_features,)

已棄用:grid_scores_ 屬性在 1.0 版中已棄用,取而代之的是 cv_results_,並將在 1.2 版中刪除。

cv_results_ndarrays的字典

帶鍵的字典:

拆分(k)_test_scorendarray 形狀 (n_features,)

第 (k) 倍的交叉驗證分數。

mean_test_scorendarray 形狀 (n_features,)

折疊的平均分數。

std_test_scorendarray 形狀 (n_features,)

折疊分數的標準差。

n_features_int

具有交叉驗證的選定特征的數量。

n_features_in_int

擬合期間看到的特征數。僅當基礎估計器在合適時公開此類屬性時才定義。

feature_names_in_ndarray 形狀(n_features_in_,)

擬合期間看到的特征名稱。僅當 X 具有全為字符串的函數名稱時才定義。

ranking_narray 形狀 (n_features,)

特征排名,使得ranking_[i]對應i-th特征的排名位置。選定的(即估計的最佳)特征被分配等級 1。

support_ndarray 形狀 (n_features,)

所選特征的掩碼。

注意

grid_scores_ 的大小等於 ceil((n_features - min_features_to_select) / step) + 1 ,其中 step 是每次迭代中移除的特征數。

如果基礎估計器也這樣做,則允許輸入中的 NaN/Inf。

參考

1

Guyon, I., Weston, J., Barnhill, S., & Vapnik, V.,“使用支持向量機進行癌症分類的基因選擇”,Mach。學習。, 46(1-3), 389-422, 2002。

例子

以下示例顯示了如何在 Friedman #1 數據集中檢索 a-priori 未知的 5 個信息特征。

>>> from sklearn.datasets import make_friedman1
>>> from sklearn.feature_selection import RFECV
>>> from sklearn.svm import SVR
>>> X, y = make_friedman1(n_samples=50, n_features=10, random_state=0)
>>> estimator = SVR(kernel="linear")
>>> selector = RFECV(estimator, step=1, cv=5)
>>> 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.RFECV。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。