版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
機器學習案例報告——基于隨機森林的收入預(yù)測姓名:李山雨【摘要】本文擬對kaggle上的一篇關(guān)于隨機森林模型的文章進行案例調(diào)研,對文章的各個環(huán)節(jié),包括案例描述、數(shù)據(jù)檢視、特征工程、模型訓練和模型優(yōu)化使用的方法進行梳理并對文章的亮點與不足做出相應(yīng)的反思。該文章的任務(wù)是基于隨機森林模型,結(jié)合人的15項特征來預(yù)測該人年收入是否超過5萬美元。數(shù)據(jù)源是美國人口普查局1994年的普查數(shù)據(jù),調(diào)查對象數(shù)量為32561。這篇文章的亮點有:1.特征工程使用了簡單而且容易理解的方法;2.進行充分的數(shù)據(jù)檢視,對后續(xù)數(shù)據(jù)處理有了啟示性作用;3、通過計算特征重要度過濾不重要的特征,展現(xiàn)了模型可以不斷優(yōu)化的可能性。主要不足有:1、沒有解決高基數(shù)問題;2.并沒有優(yōu)化模型參數(shù);3.沒有處理離群值?!娟P(guān)鍵詞】隨機森林、收入、預(yù)測、探索性數(shù)據(jù)分析
案例描述案例鏈接:/prashant111/random-forest-classifier-feature-importance作者:PrashantBanerjee隨著中國人均收入的不斷增長,人們之間的收入差異變得越來越大,形成了不同的收入群體。收入水平在很大程度上決定了消費結(jié)構(gòu),因此消費者的收入與購買能力直接相關(guān)。對于眾多電商企業(yè)而言,針對不同收入消費者群體采取針對性的營銷策略很重要。但是由于收入信息涉及到個人隱私,消費者的收入水平往往難以直接獲取。如果電商企業(yè)能通過其他指標來間接預(yù)測消費者的收入層次,那么它將有助于制定其營銷策略。本次機器學習案例的意義也是與上述內(nèi)容一脈相承。本案例基于隨機森林利用人的各項特征來預(yù)測人的收入層次。該案例利用成人人口普查數(shù)據(jù)集,是從1994年美國人口普查局數(shù)據(jù)庫中提取的數(shù)據(jù)。數(shù)據(jù)集一共有32561行數(shù)據(jù),每行數(shù)據(jù)代表一個人,包含該人的15項特征。特征包括年齡(age)、雇傭形式(workclass)、個人權(quán)重(fnlwgt)、最終學歷(education)、受教育時間(education_num)、婚姻狀況(marital_status)、職業(yè)(occupation)、家庭內(nèi)的關(guān)系(relationship)、種族(race)、性別(sex)、資本收益(capital_gain)、資本損失(capital_loss)、每周工作時間(hours_per_week)、祖國(native_coutry)、收入(income),如圖1。其中fnlwgt是人口普查局賦予每個人的個人權(quán)重,是一個大于零的數(shù)值。圖SEQ圖\*ARABIC1收入(income)是一個定類變量,取值為“超過5萬美元”和“不超過5萬美元”兩類。這個案例的目標是利用人的各項特征來預(yù)測某人的年收入是否超過圖SEQ圖\*ARABIC1
數(shù)據(jù)檢視檢視定類變量圖圖SEQ圖\*ARABIC2如圖2,分類變量有九種,分別是雇傭形式、職業(yè)、家庭內(nèi)的關(guān)系、種族、性別、祖國和收入。圖3展示了雇傭形式(workclass)變量在各個取值上的頻率??梢园l(fā)現(xiàn)這個數(shù)據(jù)集是使用“?”來表示缺失值的。因此用問號表示的缺失值需要編碼成python程序可以識別的缺失值,如NaN。圖SEQ圖\*ARABIC3圖SEQ圖\*ARABIC3圖SEQ圖\*ARABIC4圖SEQ圖\*ARABIC4這張圖展示了收入的餅狀圖和條形圖??梢钥吹侥晔杖氤^5萬美元的人占被調(diào)查人口中的24%。性別與收入圖SEQ圖\*ARABIC5圖SEQ圖\*ARABIC5性別與收入圖SEQ圖\*ARABIC6從這張圖可以看到,白人的占比在收入超過5萬美元的群體中更高,說明數(shù)據(jù)集當中白人更有可能年收入超過5圖SEQ圖\*ARABIC6雇傭形式與收入圖SEQ圖\*ARABIC圖SEQ圖\*ARABIC7這張圖描述的是不同雇傭形式在收入上的差異。在幾乎所有的雇傭形式類別中,年收入低于五萬美元的比例很高,而且這種趨勢在個人(private)類別當中更加明顯。還有一些反例,比如在有限責任公司(self-emp-inc)類別當中,收入超過5萬的人比低于5萬的人更多。圖SEQ圖\*ARABIC8圖SEQ圖\*ARABIC8圖8描述不同職業(yè)與祖國的頻數(shù)分布。從職業(yè)分布圖(左圖)中可以發(fā)現(xiàn),不同職業(yè)類型之間的分布是比較均勻的。但是私人住宅服務(wù)(priv-hous-serv)和軍隊(armed-forcer)類職業(yè)的頻數(shù)很低,與頻數(shù)最高的職業(yè)有相當大的差異。祖國變量的分布(右圖)則更加極端。幾乎所有被調(diào)查者的祖國均是美國。在42個國家中,實際上很難發(fā)現(xiàn)以美國以外的國家為祖國的人。作者在這里提到了高基數(shù)(highcardinality)的問題?;鶖?shù)(cardinality)是每個定類變量的不同類別個數(shù)。如果基數(shù)太高(如大于100)那么它就會影響機器學習模型的效果。祖國變量的基數(shù)為42,屬于較高水平,而且類別的分布非常不均衡,如果對它直接進行One-hot編碼,則會產(chǎn)生m*42(m為行數(shù))的稀疏矩陣,很有可能對模型的效果產(chǎn)生不良影響。探索定比變量圖SEQ圖\*ARABIC9圖SEQ圖\*ARABIC9定比變量有6種,分別為年齡、個人權(quán)重、受教育時間、資本收益、資本損失、周工作時間。在這個數(shù)據(jù)集中,定比變量是不存在缺失值的,如圖10所示。下面將探索定比變量的分布及定比變量之間的關(guān)系。圖SEQ圖\*ARABIC10圖SEQ圖\*ARABIC10圖SEQ圖\*ARABIC11圖SEQ圖\*ARABIC12圖SEQ圖\*ARABIC11圖SEQ圖\*ARABIC12圖11是年齡的直方圖,在上面還畫出了用核密度函數(shù)估計的概率密度函數(shù)??梢钥闯?,年齡分布較為右偏,調(diào)查對象均為成人,其中年輕的人較多。圖12是描述不同收入群體當中年齡分布的箱線圖。在收入低于5萬以下的人群中,大約有一半的人的年齡集中在25歲和45歲之間,而且四分位差較大。而在收入超過5萬的人群中,大約有一半的人的年齡集中在35歲和55歲之間,而且四分位差較小。這表明收入高于5萬的調(diào)查對象的年齡比較高,而且收入高的人群集中在相對小的年齡范圍內(nèi)。定比變量的相關(guān)性矩陣從圖SEQ圖\*ARABIC13數(shù)值型變量之間的相關(guān)性矩陣可以看出,兩兩變量之間沒有強相關(guān)關(guān)系。但是還有一些值得關(guān)注的弱相關(guān)關(guān)系,例如受教育時間(education_num)越多,資本收益(capital_gain)越高(0.1226),受教育時間越高,每周工作時間(hours_per_week)圖SEQ圖\*ARABIC13兩兩數(shù)值型變量之間的關(guān)系,可以被散點圖矩陣更形象地展示出來,如圖14所示。圖SEQ圖\*ARABIC14圖SEQ圖\*ARABIC14根據(jù)模型對數(shù)據(jù)的要求和提升模型效果的考慮,原始數(shù)據(jù)必須經(jīng)過特征工程再輸入模型。以下內(nèi)容闡述了各方面的數(shù)據(jù)預(yù)處理與特征工程。缺失值處理這個數(shù)據(jù)集只有定類變量才有缺失值,具體來說包含缺失值的變量只有雇傭形式、職業(yè)、祖國。原始數(shù)據(jù)的缺失值用問號表示,因此作者首先把“?”轉(zhuǎn)換為Nan,其次用頻數(shù)最高的類別填充了該缺失值。這是一種常用而簡單的定類變量缺失值填補方法。數(shù)據(jù)編碼作者對多分類定類變量做了獨熱編碼(one-hotencoding)。獨熱編碼將多分類變量中的每個類別拆成單獨的二進制啞變量,如果某樣本屬于該類別則取值為1,否則為0。獨熱編碼要求定類變量的每個類別之間是相互獨立的關(guān)系,如果類別之間有順序關(guān)系(定序變量),則在獨熱編碼的過程中順序的信息將會被丟失掉。本案例的定類變量中,沒有一個定類變量包含順序的信息,所以不會產(chǎn)生遺漏順序信息的情況。如果不進行獨熱編碼,機器學習模型可能把定類變量誤解為一個數(shù)值型變量,對類別之間的關(guān)系產(chǎn)生不正確的理解。比如說我們把白人、黑人、黃種人分別編碼為1,2,3,這可能導(dǎo)致計算機認為白人(1)+黑人(2)=黃種人(3)這個顯然不正確。圖SEQ圖\*ARABIC15雇傭形式(workclass)原來有8中類別,它經(jīng)過獨熱編碼后被拆成了8個啞變量,如圖15所示。進行獨熱編碼后每行數(shù)據(jù)的特征數(shù)量由15增加到了105圖SEQ圖\*ARABIC15歸一化處理在訓練模型之前,我們需要對每個特征變量做歸一化處理。歸一化的目的就是消除每個變量的量綱單位,從而保證變量之間的可比性。常用的歸一化方法有一下5種。1.StandardScaler:即將變量的均值與方差分別置為0和1,讓數(shù)據(jù)符合標準正太分布。該方法要求數(shù)據(jù)分布近似服從高斯分布。適用于需要計算距離或者相似性的場景2.RobustScaler:將變量的中位數(shù)置為0,IQR(上四分位數(shù)、下四分位數(shù))置為1。這么做的效果是受離群值的影響小。3.MinMaxScaler(a,b):將變量的最小值置為a,最大值置為b。如果最小最大值不穩(wěn)定,有可能影響后續(xù)使用效果也不穩(wěn)定,在實際應(yīng)用當中可以選取其他的常量來替代最小值和最大值。4.MaxAbsScaler:把變量值的絕對值限定在[0,1]區(qū)間內(nèi)。如果變量值不小于零,則它的效果等于MinMaxScaler5.Normalizer:前面四種方法是對數(shù)據(jù)的每一列進行的歸一化。而這個方法對數(shù)據(jù)的每一行做歸一化,使得每一行向量的歐氏距離變成1。作者在本案例中使用了RobustScaler。其可能的原因是他省略了離群值處理階段,因此歸一化方法使用受離群值影響較小的RobustScaler。而且數(shù)據(jù)集中很多數(shù)值型變量都不服從高斯分布,所以不太符合使用standardScaler的要求。模型訓練本案例要解決的是二分類問題,作者重點采用了隨機森林算法。下面將介紹隨機森林的基本原理與隨機森林在sklearn軟件包中的實現(xiàn)方法。隨機森林概述隨機森林是多個決策樹集成的分類器。隨機森林可以理解為Bagging方法的擴展變體。它在Bagging方法的基礎(chǔ)上引入了隨機屬性選擇。即,在訓練集中有放回地抽取樣本集,然后在所有特征中無放回地選取若干個特征來構(gòu)造一個決策樹。按照這個流程構(gòu)造多個決策樹后,再根據(jù)投票原則預(yù)測目標類型。隨機森林的思想雖然簡單,但它實際上實現(xiàn)了一個有效提升模型泛化能力的方法。森林中的每顆決策樹代表看待數(shù)據(jù)集的不同視角,都對分類方法有一定程度的偏見。在投票決定的過程中,每棵樹的決策偏見能夠得到折中,從而提高模型的泛化能力。決策樹的數(shù)量越多越好,但同時多個決策樹會對計算機性能提出更高的要求。圖16展示了采用隨機森林后的分類邊界,可以看到隨機森林的分類界限比單一決策樹更能區(qū)分兩類數(shù)據(jù)。圖SEQ圖\*ARABIC16圖SEQ圖\*ARABIC16在sklearn包實現(xiàn)隨機森林sklearn包提供隨機森林對象sklearn.ensemble.RandomforestClassifier。生成隨機森林對象以后,我們可以對它進行訓練,同時可以使用多種函數(shù)功能,如計算每個特征的重要度等。在生成RandomforestClassifier對象的時候,設(shè)置好它的參數(shù)對模型效果起到關(guān)鍵作用,以下幾項介紹了它的幾個重要參數(shù)。Criterion:“gini”或“entropy”(defualt=”gini”)n_estimators:決策樹的數(shù)量(default=100)max_features:節(jié)點分裂時參與判斷的特征數(shù)(default=“auto”)If“auto”,thenmax_features=sqrt(n_features).bootstrap:是否用bootstrap抽取樣本(default=False)該對象還提供有關(guān)決策樹剪枝策略的多種參數(shù),有助于使模型避免過擬合。max_depth:最大深度(default=None)min_samples_split:分裂所需的最小樣本數(shù)(default=2)min_samples_leaf:葉節(jié)點最小樣本數(shù)(default=1)min_impurity_decrease:最小不純度減少量(default=0.0)可以看到,在默認情況下,決策樹不采取剪枝策略,會劃分到最細,葉節(jié)點只有包含相同的類別時才會停止劃分。訓練結(jié)果作者生成了兩個RandomforestClassifier對象,分別具有10個決策樹和100個決策樹,其他參數(shù)的設(shè)置均置為默認值,包括不采取剪枝策略。結(jié)果表明,10個決策樹的森林的正確度(accuracy)為0.8446,而100個決策樹的森林的正確度為0.8521,比10個決策樹有了小幅提升。圖SEQ圖\*ARABIC17采用100個決策樹的模型,其檢準率、召回率、F值分別為0.928、0.885、0.906。圖SEQ圖\*ARABIC17圖17展示了它的混淆矩陣。模型優(yōu)化本案例中,模型在特征選擇方面進行了優(yōu)化,主要是過濾不重要的變量后重新訓練模型。RandomForestClassifier對象具有一個屬性叫feature_importances_,它返回包含每個特征的正要程度的列表。重要度的計算方法是Gini重要度,即對于某個屬性M統(tǒng)計在每棵樹中由M形成的分支節(jié)點帶來的Gini指數(shù)下降程度。某特征帶來的Gini指數(shù)下降程度越多,這個特征越重要。圖SEQ圖\*ARABIC18可以看到最重要的特征有fnlwht、age、capital_gain、hours_per_week和education_num,而相對不重要的特征是在獨熱編碼過程中生成的各個國家或職業(yè)所對應(yīng)的啞變量。作者去除最不重要的特征native_country_41后重新訓練了模型,發(fā)現(xiàn)模型的正確率由0.8521提升到0.8544??梢钥闯?,不考慮一些不重要的特征后,模型的整體效果會增大。在數(shù)據(jù)檢視過程中已經(jīng)了解到了“祖國”變量既有高基數(shù)問題也有分布極其不均衡的問題,因此我索性在讓祖國變量不參與訓練的條件下構(gòu)造了隨機森林,結(jié)果發(fā)現(xiàn)去除祖國變量后訓練模型反而能夠提升模型的正確率。圖SEQ圖\*ARABIC19從這張圖能發(fā)現(xiàn),前幾個特征才是最重要的特征,后面幾十個特征實際上并不重要,我們可以考慮去掉更多變量,而不僅僅是native_country_41。小結(jié)本案例基于隨機森林算法根據(jù)人的各項特征預(yù)測該人的年收入是否超過5萬美元。案例的作者在數(shù)據(jù)檢視、特征工程、訓練模型、模型評估和模型優(yōu)化方面都經(jīng)過了比較完整的流程。我認為本案例的亮點有以下方面:第一,在特征工程步驟使用的方法,如用最頻繁類別填充缺失值,用獨熱編碼處理定類變量,都是簡單而可理解的方法,對初學者掌握數(shù)據(jù)預(yù)處理的方法很有幫助。即便作者使用了簡單的預(yù)處理方法,模型也能表現(xiàn)出良好的效果(F1score超過0.9)。因此,在進行數(shù)據(jù)預(yù)處理與建模時,我們不應(yīng)該因方法簡單而不采用該方法,因為有時候簡單的方法反而更有效,而且具有更高的可解釋性。第二,在特征工程之前,作者事先做了比較充分的數(shù)據(jù)檢視。數(shù)據(jù)是事件發(fā)生結(jié)果的具體展現(xiàn)。我們看到的數(shù)據(jù),一定有這個數(shù)據(jù)背后的事件。數(shù)據(jù)科學家在分析數(shù)據(jù)時,必須理解數(shù)據(jù)背后的事件,否則他的模型得出的結(jié)論將誤導(dǎo)讀者。數(shù)據(jù)檢視步驟通過分析數(shù)據(jù)分布、變量之間
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度牧業(yè)產(chǎn)業(yè)扶貧項目承包合同范本3篇
- 2025版農(nóng)產(chǎn)品溯源與質(zhì)量認證服務(wù)合同3篇
- 遼寧省朝陽市北票市2024-2025學年七年級上學期1月期末道德與法治試題(含答案)
- 2025年度個人公司股權(quán)結(jié)構(gòu)調(diào)整合同4篇
- 二零二五年度某局勞務(wù)分包結(jié)算與數(shù)字化轉(zhuǎn)型戰(zhàn)略合同2篇
- 天然氣在科技創(chuàng)新中的地位考核試卷
- 家禽飼養(yǎng)業(yè)質(zhì)量品牌提升與市場競爭策略考核試卷
- 供應(yīng)鏈協(xié)同采購與供應(yīng)商管理考核試卷
- 儀器儀表制造業(yè)的持續(xù)創(chuàng)新能力考核試卷
- 2025版二零二五年度美發(fā)店房東租賃合同范本:租賃合作協(xié)議4篇
- 中醫(yī)診療方案腎病科
- 2025年安慶港華燃氣限公司招聘工作人員14人高頻重點提升(共500題)附帶答案詳解
- 人教版(2025新版)七年級下冊數(shù)學第七章 相交線與平行線 單元測試卷(含答案)
- GB/T 44351-2024退化林修復(fù)技術(shù)規(guī)程
- 從跨文化交際的角度解析中西方酒文化(合集5篇)xiexiebang.com
- 中藥飲片培訓課件
- 醫(yī)院護理培訓課件:《早產(chǎn)兒姿勢管理與擺位》
- 《論文的寫作技巧》課件
- 空氣自動站儀器運營維護項目操作說明以及簡單故障處理
- 2022年12月Python-一級等級考試真題(附答案-解析)
- T-CHSA 020-2023 上頜骨缺損手術(shù)功能修復(fù)重建的專家共識
評論
0/150
提交評論