目錄
上一篇:機器學習實戰-特徵選擇
上一篇文章裏面,我們主要介紹了特徵選擇的三種方法,這篇文章小編就來介紹過濾法。
考慮到很多同學剛開始學,這裏不會介紹算法公式,相比與高校或者實驗室裏面,很多同學應該都懂,但是沒接觸過的同學,又看不懂,所以小編直接不講,這裏只講怎麼用,以便同學可以更快上手,如果有興趣研究算法內容的同學,自行百度即可,都是公式的。
備註:算法中的數據,我會採用真實現網的中的部分數據來實現
本文章節
1、數據加載及展示
2、低方差特徵過濾
3、單變量特徵過濾
數據加載及展示
爲什麼會直接把這個東西放在這裏,有以下兩個原因
1、數據是取自生產上的數據,更接近真實性,目前網上的數據千篇一律,你看不出個所以然來。
2、數據我做了一次簡單的清洗,對於後面的分類有比較好的效果。
3、數據如圖1所示,目前主要是做分類,包含後面的特徵選擇也會針對分類來做,有13個特徵,1個標籤,這裏是二分類的做法。
圖1:數據
低方差特徵過濾
低方差特徵過濾算是最簡單的做法,怎麼去理解這個東西?
我模擬個場景,假定圖1的特徵3,裏面都是0,此時對於我們業務來說,是不是無用的?因爲無論怎麼做,這個數據還是不變的,對業務沒有任何影響,此時的做法是直接刪掉。
低方差特徵過濾的做法與這個類似,我們給定個標準,也加閾值,但是這裏有個地方需要注意一下:使用這種方法的時候,特徵值必須都是離散型變量纔可以,此時如果是連續型,那就需要先進行離散化,這算是一個需要注意的點。
其實這種方法在現實中不會很好用,因爲需要的條件太過於極端,基本很少出現,出現的時候基本上肉眼能看出來,就給業務方幹掉了,不過我們還是來實驗一下。實驗結果如圖2
圖2:低方差特徵過濾
這裏小編設定閾值爲0.8,但是經過計算啊計算啊計算啊,特徵沒變。
其實這個很正常,畢竟是生產上面的數據,經過業務方篩選得到的,基本上都是有價值的數據,所以大夥對這個結果不要太驚訝,平常心,正常的。
單變量特徵過濾
單變量特徵過濾這個又是啥?直接從字面上來理解,我們的圖1中有13個特徵,採用某一種算法,獨立來計算每一種特徵的指標,根據指標的值來判斷哪些指標重要?哪些指標不重要,然後刪除笑掉這些指標即可。
其中,在進行單變量特徵選擇的時候,我們有兩個問題需要注意採用不同算法
1、針對分類問題,目前我們的實驗就是分類問題,可以採用卡方檢驗、f_classif、 mutual_info_classif、互信息來進行特徵提取。
2、針對迴歸問題,可以採用皮爾森相關係數、f_regression、 mutual_info_regression、最大信息係數進行特徵提取
接下來,我們來做個實驗,採用卡方檢驗、f_classif、 mutual_info_classif來實驗,其他的可以自行官網查找即可,基本類似。
圖3:驗證
從這個實驗中,我們採用了三種不同方式來進行特徵提取,只留下10個特徵,展示一下第一條數據,數據上都是一樣的,雖然計算方式不一樣,但是本質是一樣的,那些不重要的數據,已經通通被幹掉了,算是一個意料中,滿意的結果。
--END--
作者:溪雲閣
原創作品,抄襲必究。
部分圖片來源網絡,如侵權請聯繫刪除,謝謝!