featselector
featselector是一個基於統計分析和模型選擇的特徵選擇器.
Github: https://github.com/xiaorancs/feature-select
背景
特徵過多會導致如下後果:
- 引起維數災難,模型推廣能力差
- 特徵過於稀疏,模型效果不好
- 很多冗餘特徵和相關性高的特徵,降低模型精度
在機器學習任務中,有兩大難題:
- 特徵提取和選擇
- 模型選擇和優化
我們都會一個問題,特徵好提取,但是選擇很困難。我們很容易基於組合和時間提取出來很多特徵,但是這樣特徵中很多是無效的特徵,featselector就是來找到這些冗餘的無效的特徵.
featselector
featselector是一個基於統計分析和模型的特徵選擇器.
- StatFeatSelector(基於統計的特徵選擇)
- identify_missing(缺失值選擇)
如果特徵的缺失值比例大於閾值(0.9), 就刪除該特徵
- identify_single_unique(單一值選擇)
如果特徵中有一個值出現比例超過閾值(0.97),刪除該特徵
- identify_std(方差選擇)
實數特徵根據方差選擇, 如果方差過小, 小於閾值(0.05), 就刪除該特徵
- identify_corlinear(特徵之間相關性選擇)
刪除相關性大於閾值(0.96)的特徵中的一個,減少冗餘性
- identify_corlinearlabel(特徵和目標之間的選相關性選擇)
計算特徵和目標之間的相關性,刪除相關性小於閾值(0.001)的特徵
- identify_missing(缺失值選擇)
- ModelFeatSelector(基於樹模型的特徵選擇)
- identify_importance(刪除重要度低的特徵)
使用(gbdt,xgb,lgb)模型計算特徵的重要性,刪除重要性最低的k個特徵,或者重要性小於閾值(0.002)的特徵
- identify_importance(刪除重要度低的特徵)
Install
- git clone https://github.com/xiaorancs/feature-select.git
- python steup.py install
Usage
任何人都可以使用或者修改源碼,但請註明出處
Sample
- Kaggle房價預測特徵選擇
- 特徵選擇之前, score: 0.13296
- 特徵選擇之後, score: 0.13112
- Kaggle泰坦尼克號預測(undo)
Reference
注:生活如此,問題不大. 喵~