簡單好用的特徵選擇器

featselector

featselector是一個基於統計分析和模型選擇的特徵選擇器.

Github: https://github.com/xiaorancs/feature-select

背景

特徵過多會導致如下後果:

  1. 引起維數災難,模型推廣能力差
  2. 特徵過於稀疏,模型效果不好
  3. 很多冗餘特徵和相關性高的特徵,降低模型精度

在機器學習任務中,有兩大難題:

  1. 特徵提取和選擇
  2. 模型選擇和優化
    我們都會一個問題,特徵好提取,但是選擇很困難。我們很容易基於組合和時間提取出來很多特徵,但是這樣特徵中很多是無效的特徵,featselector就是來找到這些冗餘的無效的特徵.

featselector

featselector是一個基於統計分析和模型的特徵選擇器.

  1. StatFeatSelector(基於統計的特徵選擇)
    • identify_missing(缺失值選擇)

      如果特徵的缺失值比例大於閾值(0.9), 就刪除該特徵

    • identify_single_unique(單一值選擇)

      如果特徵中有一個值出現比例超過閾值(0.97),刪除該特徵

    • identify_std(方差選擇)

      實數特徵根據方差選擇, 如果方差過小, 小於閾值(0.05), 就刪除該特徵

    • identify_corlinear(特徵之間相關性選擇)

      刪除相關性大於閾值(0.96)的特徵中的一個,減少冗餘性

    • identify_corlinearlabel(特徵和目標之間的選相關性選擇)

      計算特徵和目標之間的相關性,刪除相關性小於閾值(0.001)的特徵

  2. ModelFeatSelector(基於樹模型的特徵選擇)
    • identify_importance(刪除重要度低的特徵)

      使用(gbdt,xgb,lgb)模型計算特徵的重要性,刪除重要性最低的k個特徵,或者重要性小於閾值(0.002)的特徵

Install

  1. git clone https://github.com/xiaorancs/feature-select.git
  2. python steup.py install

Usage

任何人都可以使用或者修改源碼,但請註明出處

Sample

  1. Kaggle房價預測特徵選擇
    • 特徵選擇之前, score: 0.13296
    • 特徵選擇之後, score: 0.13112
  2. Kaggle泰坦尼克號預測(undo)

Reference

  1. https://github.com/duxuhao/Feature-Selection
  2. https://github.com/WillKoehrsen/feature-selector

注:生活如此,問題不大. 喵~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章