SVM-RFE使用及換kernal及estimator
SVM-RFE與SVM-RFECV都是用於對特徵進行縮減,用於找到數目最優的特徵數。RFECV基於RFE基礎上,新增了交叉驗證,使得在每個step中,都可以對現有的特徵數目進行評估,以確定比較好的數目。RFE中需要指定n_features_to_select,而RFECV中需要指定min_features_to_select,二者雖然都要執行到指定挑選特徵數目時才停止篩選,但RFECV的每步交叉驗證得到特定數目特徵的acc,從而可以得到acc達到最大時的最少特徵個數。同時,RFECV提供ranking_陣列,可以挑選出被選中的特徵。
一般來說,RFECV中使用的評估器為SVC,以linear核作為SVC的核,考慮到linear核不如rbf核效率好,嘗試換rbf。但使用rbf核的SVC會報一下錯誤。
回到SVM-RFECV的原始碼中發現,它需要利用與特徵重要性有關的資訊:
此外,通過對estimator的註解可以看到,RFECV對estimato有如下要求:
所以,estimator中必須有一個fit方法,且包含於特徵重要有關的資訊——cofe_或者feature importances_。
回到SVC,原始碼中指出SVC類中有coef_屬性但沒有feature_importances_屬性,但是coef_屬性只對linear核有效,
所以使用SVC作為estimator,如果改用rbf核時不可行的。
那麼時不時只要estimator滿足要求,就可以使用RFECV進行特徵篩選呢?以RandowForest為例,
是可行的。
總結以上:
1. SVC中不能選用rbf核作為FRFECV的estimator;
2. 如果estimator滿足擁有fit函式,或者可以使用的coef_或feature_importances_屬性,那麼就能使用RFECV
3.基於2,因為RFECV自帶交叉驗證,對於滿足2條件的分類器,可以先用RFECV進行特徵篩選的同時,得到大致的準確率。
RFECV中的grid_scores_屬性會給出每個step的acc。(當然我只試了RF)
最後附上RFE的使用使用手冊:
相關文章
- 使用tf.estimator.Estimator訓練神經網路神經網路
- 益普索Ipsos:胰島素使用及轉換成本洞察
- Qt - 座標系及轉換QT
- 交換機基礎及stp
- 資料型別及轉換資料型別
- 交換機及路由基礎路由
- 如何使用TensorFlow中的高階API:Estimator、Experiment和DatasetAPI
- Docker使用及原理Docker
- harbor 搭建及使用
- Git及Github使用Github
- rollup配置及使用
- Thread類及使用thread
- godoc使用及配置Go
- @Inner使用及原理
- Git操作及使用Git
- LruCache 使用及原理
- MHA高可用配置及故障切換
- 【模型推理】Tengine 模型轉換及量化模型
- 【python介面自動化】- 使用json及jsonpath轉換和提取資料PythonJSON
- 使用pytz模組進行時區轉換及時間計算
- nvitop 安裝及使用
- vagrant介紹及使用
- 前端斷點及使用前端斷點
- Canal 介紹及使用
- Flask——配置格式及使用Flask
- Flutter Hooks 使用及原理FlutterHook
- Swagger介紹及使用Swagger
- openvas簡介及使用
- Paging Library使用及原理
- iOS Animation建立及使用iOS
- Sublime 安裝及使用
- expect安裝及使用
- Flyway簡介及使用
- 安裝及使用RSSHub
- Docker安裝及使用Docker
- YUM工作原理及使用
- nvm 安裝及使用
- svg製作及使用SVG