官术网_书友最值得收藏!

4.6 用隨機(jī)森林評(píng)估特征的重要性

在前面的章節(jié)中,我們學(xué)習(xí)了如何通過(guò)邏輯回歸,用L1正則化來(lái)消除那些不相關(guān)的特征,用SBS算法做特征選擇,并將其應(yīng)用到KNN算法。另一個(gè)用來(lái)從數(shù)據(jù)集中選擇相關(guān)特征的有用方法是隨機(jī)森林,即在第3章中介紹過(guò)的集成技術(shù)。可以用隨機(jī)森林的方法計(jì)算所有決策樹(shù)的平均雜質(zhì)度衰減,來(lái)測(cè)量特征的重要性,而不必考慮數(shù)據(jù)是否線性可分。更加方便的是,scikit-learn中實(shí)現(xiàn)的隨機(jī)森林已經(jīng)為我們收集好了特征的重要性值,在完成RandomForestClassifier擬合后,我們可以通過(guò)訪問(wèn)feature_importances_屬性取得它們。下面的代碼將在葡萄酒數(shù)據(jù)集上訓(xùn)練擁有500棵樹(shù)的森林,并根據(jù)13個(gè)特征各自的重要性為其排序,還記得在第3章中討論過(guò)的基于樹(shù)的模型并不需要使用標(biāo)準(zhǔn)或歸一化的特征:

104-01
105-01

執(zhí)行代碼后我們可以畫出一張圖,把葡萄酒數(shù)據(jù)集中不同的特征按其相對(duì)重要性進(jìn)行排序。請(qǐng)注意,特征重要性值的總和為1,而且呈正態(tài)分布,如圖4-9所示。

105-02

圖 4-9

我們可以得出這樣的結(jié)論:脯氨酸和黃酮的含量、顏色強(qiáng)度、OD280/OD315衍射和酒精濃度是數(shù)據(jù)集中基于500棵決策樹(shù)根據(jù)平均雜質(zhì)度衰減而確定的最具差異性的特征。有趣的是,結(jié)果中排在前兩位的特征(乙醇濃度和稀釋葡萄酒的OD280/OD315)也包括在用上節(jié)實(shí)現(xiàn)的SBS算法得出的三特征子集中。

然而,就可解釋性而言,隨機(jī)森林是值得一提的重要技術(shù)。如果兩個(gè)或多個(gè)特征高度相關(guān),那么一個(gè)特征就可能排得很靠前,而其他特征的信息可能根本無(wú)法完全捕獲。另一方面,如果我們所關(guān)心的只是模型的預(yù)測(cè)性能,而不是對(duì)特征重要值的解釋,那就不需要關(guān)心這個(gè)問(wèn)題了。

總結(jié)特征的重要值和隨機(jī)森林,值得一提的是,scikit-learn也實(shí)現(xiàn)了SelectFromModel對(duì)象,我們可以在模型擬合后,根據(jù)用戶指定的閾值選擇特征,這對(duì)想用RandomForestClassifier作為特征選擇器以及scikit-learn的Pipeline對(duì)象的中間步驟很有用,它允許通過(guò)一個(gè)估計(jì)器連接不同的預(yù)處理步驟,在第6章中,我們將對(duì)此進(jìn)行詳細(xì)介紹。例如,我們可以在以下的代碼中,通過(guò)將threshhod設(shè)置為0.1把數(shù)據(jù)集減少到只包含五個(gè)最重要的特征:

106-01
主站蜘蛛池模板: 思茅市| 德江县| 团风县| 新化县| 肥乡县| 临高县| 台中县| 云霄县| 彭阳县| 扬州市| 德阳市| 潞城市| 阳东县| 红河县| 星子县| 徐闻县| 阳春市| 安陆市| 铜鼓县| 翁牛特旗| 巴彦县| 平武县| 扎囊县| 肃宁县| 平安县| 图木舒克市| 翁源县| 馆陶县| 手游| 筠连县| 通城县| 方山县| 武汉市| 新安县| 中方县| 文成县| 关岭| 阿拉善右旗| 临湘市| 泸西县| 精河县|