機器學習之過濾式特徵選擇
阿新 • • 發佈:2018-12-23
- 機器學習之過濾式特徵選擇
# -*- coding: utf-8 -*- """ Created on Sat Dec 8 16:58:09 2018 @author: muli """ from sklearn.feature_selection import VarianceThreshold,SelectKBest,f_classif,SelectPercentile def test_VarianceThreshold(): ''' 測試 VarianceThreshold 的用法 :return: None ''' X=[[100,1,2,3], [100,4,5,6], [100,7,8,9], [101,11,12,13]] selector=VarianceThreshold(1) selector.fit(X) print("Variances is %s"%selector.variances_) print("After transform is %s"%selector.transform(X)) print("The surport is %s"%selector.get_support(True)) print("After reverse transform is %s"% selector.inverse_transform(selector.transform(X))) def test_SelectKBest(): ''' 測試 SelectKBest 的用法,其中考察的特徵指標是 f_classif :return: None ''' X=[ [1,2,3,4,5], [5,4,3,2,1], [3,3,3,3,3,], [1,1,1,1,1] ] y=[0,1,0,1] print("before transform:\n",X) selector=SelectKBest(score_func=f_classif,k=3) selector.fit(X,y) print("scores_:",selector.scores_) print("pvalues_:",selector.pvalues_) print("selected index:",selector.get_support(True)) print("after transform:",selector.transform(X)) def test_SelectPercentile(): ''' 測試 SelectPercentile 的用法,其中考察的特徵指標是 f_classif :retu ''' X=[ [1,2,3,4,5], [5,4,3,2,1], [3,3,3,3,3,], [1,1,1,1,1] ] y=[0,1,0,1] print("before transform:\n",X) selector=SelectPercentile(score_func=f_classif,percentile=60) selector.fit(X,y) print("scores_:",selector.scores_) print("pvalues_:",selector.pvalues_) print("selected index:",selector.get_support(True)) print("after transform:",selector.transform(X)) if __name__=='__main__': # test_VarianceThreshold() # 呼叫 test_VarianceThreshold # test_SelectKBest() # 呼叫 test_SelectKBest test_SelectPercentile()