學(xué)習(xí)自 Feat_select(corr,rfe,rfecv,PCA)Seaborn,RandForest
概述
特征選擇之前要先觀察特征和label之間、特征與特征之間的相關(guān)性汇跨,sklearn中也封裝有特征選擇的包供使用己单,但是使用時(shí)仍然有一些需要注意的事項(xiàng)长踊。
步驟
觀察數(shù)據(jù)
- 確定label棚潦,找到不太適合做特征的列儡率,如ID類和缺失值較多(15%)的列
- 大致觀察數(shù)據(jù)的分布,可直接在dataframe上調(diào)用describe()
- 對(duì)數(shù)據(jù)歸一化胖喳,為了特征選擇時(shí)方便觀察和對(duì)比
-
做出每一列的值與label的關(guān)系圖泡躯,可以用sns.violinplot(),可以觀察得到相關(guān)性較高的特征(變化趨勢(shì)相同)和label區(qū)分度較高的特征(不同label分布不同)
或者用sns.swarmplot()丽焊,可以更加直觀的觀察
-
可以用sns.jointplot()比較兩兩特征的相關(guān)性较剃,相關(guān)性高的(如高于80%)只留一個(gè),構(gòu)建多個(gè)特征的相關(guān)性矩陣會(huì)更直觀技健。
特征選擇
有多種選擇方法
利用相關(guān)性
特征間相關(guān)性較高的只保留其一單一特征選擇
比較特征與label之間的相關(guān)性重付,選擇最高的topk個(gè),可調(diào)用sklearn中的SelectKBest方法遞歸縮減特征
利用分類方法凫乖,會(huì)給每個(gè)特征指定一個(gè)權(quán)值,誰的權(quán)值絕對(duì)值最小弓颈,就將那個(gè)特征剔除帽芽,這樣遞歸直到縮減到設(shè)定的特征數(shù)∠杓剑可調(diào)用sklearn中的RFE-
帶交叉驗(yàn)證的遞歸縮減特征
可以在遞歸縮減特征的過程中得到最優(yōu)的特征個(gè)數(shù)导街。可調(diào)用sklearn中的FRECV
利用樹模型
gbdt纤子、xgb搬瑰、randomforeset都自帶有特征評(píng)價(jià)功能,但是用之前必須保證特征間相關(guān)性較低
特征提取
文章使用PCA做特征提取控硼,需要注意的是泽论,做之前必須歸一化,可繪圖得到最優(yōu)的維度卡乾,如下圖找到變化突然變慢的拐點(diǎn)
總結(jié)
- 觀察數(shù)據(jù)前對(duì)數(shù)據(jù)進(jìn)行歸一化翼悴,便于觀察和對(duì)比
- seaborn,可以用作數(shù)據(jù)可視化幔妨,非常直觀
- 特征選擇時(shí)鹦赎,特征間如果相關(guān)性較高,則只能保留一個(gè)误堡,尤其是利用樹模型找重要性的時(shí)候