基于機(jī)器學(xué)習(xí)的收人預(yù)測研究
1研究背景
隨著我國的經(jīng)濟(jì)發(fā)展越來越快,居民收入水平逐漸成為社會關(guān)注的焦點。個人收入預(yù)測主要是對居民的基本信息進(jìn)行數(shù)據(jù)挖掘,預(yù)測居民的收入狀況。個人收入預(yù)測在實際應(yīng)用中有巨大的現(xiàn)實意義和參考價值,有利于社會研究和分析,可對經(jīng)濟(jì)發(fā)展進(jìn)行有針對性的規(guī)劃指導(dǎo)。
日常生活中大量的常見問題,都可以使用數(shù)據(jù)挖掘的方法來解決。數(shù)據(jù)分類被廣泛應(yīng)用于經(jīng)濟(jì)、生活、醫(yī)學(xué)等領(lǐng)域,例如客戶分析、生理指標(biāo)的處理等,數(shù)據(jù)分類對各項工作都提供了有力的參考及有效的幫助。
筆者在互聯(lián)網(wǎng)上下載了關(guān)于個人收入的數(shù)據(jù)集,涉及的特征包括性別、年齡、國籍、婚姻狀況、工作狀況、受教育程度等。本文選取了數(shù)據(jù)集中的一部分?jǐn)?shù)據(jù),通過多個機(jī)器學(xué)習(xí)模型進(jìn)行實驗,具體采用KNN、SVM、隨機(jī)森林模型:隨后通過實驗結(jié)果分析了各種因素對收入預(yù)測準(zhǔn)確性的影響,尋找、調(diào)整各個模型的最優(yōu)參數(shù),并比較了基于最優(yōu)參數(shù)的不同模型的實驗結(jié)果,最終得到了一個最優(yōu)預(yù)測模型。
2KNN、SVM、隨機(jī)森林模型介紹
支持向量機(jī)模型(SVM)最初是一種處理數(shù)據(jù)二分類的方法,它是基于結(jié)構(gòu)風(fēng)險最小化和VC理論建立的。SVM模型在訓(xùn)練過程中把低維不可分的數(shù)據(jù)轉(zhuǎn)化成高維可分的數(shù)據(jù),在轉(zhuǎn)化后的高維平面中,SVM旨在找到一個超平面,讓訓(xùn)練集樣本中的數(shù)據(jù)恰好分布在超平面兩側(cè),并使得超平面兩側(cè)的數(shù)據(jù)到超平面的距離達(dá)到最大。這些特點使得SVM算法能夠在有限數(shù)據(jù)集中得到最優(yōu)解,同時對未知樣本也具有較好的泛化能力。在圖像、文本、時序預(yù)測等領(lǐng)域,SVM都有著廣泛的應(yīng)用。但SVM算法也有著速度慢、算法復(fù)雜、測試階段運算量大等一系列缺點,這是應(yīng)用SVM模型時需要重點考慮的因素。
K近鄰模型(KNN)是一種無需訓(xùn)練的簡單預(yù)測方法[7]。KNN具有良好的移植性,可用于小范圍的數(shù)據(jù)統(tǒng)計,當(dāng)參數(shù)合適時,實驗精度較高。但KNN模型的限制較多,泛化能力弱,對參數(shù)有嚴(yán)格要求,對于大范圍的數(shù)據(jù)表現(xiàn)較差,且參數(shù)的選取一般較為主觀。KNN模型的核心是距離度量的方式,它首先獲得距離目標(biāo)點最近的K個點,之后根據(jù)分類決策規(guī)則,進(jìn)一步?jīng)Q定目標(biāo)點的類別。KNN模型有三個關(guān)鍵點:K值的選擇、距離度量和分類規(guī)則。K值的選擇很關(guān)鍵,如果K值過小,預(yù)測誤差會偏大:相反,如果K值過大,那么近似誤差會偏大。對于距離度量來說,常用的距離是余弦距離和歐氏距離。KNN模型的分類決策規(guī)則可以是常見的簡單多數(shù)規(guī)則,也就是在距離目標(biāo)點最近的K個點中,哪種類別的數(shù)據(jù)量最大,就把目標(biāo)點的類別歸于哪一類。
隨機(jī)森林算法是LeoBreiman于2001年提出的一種算法,Breiman把隨機(jī)子空間算法和集成學(xué)習(xí)算法相結(jié)合,得到了最終的隨機(jī)森林算法。該算法解決了決策樹過擬合的問題,對噪聲和異常值有較強(qiáng)的容忍度,并且不需要分類的先驗知識,是一種數(shù)據(jù)驅(qū)動的非參數(shù)分類方法。隨機(jī)森林算法把決策樹作為基本的分類器,訓(xùn)練時使用Bagging算法訓(xùn)練得到多個決策樹模型。分類時由包含的多個決策樹分別進(jìn)行類別預(yù)測,再通過投票法判斷輸入數(shù)據(jù)的類別。哪種類別所獲得的投票數(shù)最多,就把輸入數(shù)據(jù)歸于哪一類。隨機(jī)森林模型的應(yīng)用效果在理論和實踐中得到了大量證明,它有著出色的泛化能力,不易造成過擬合,預(yù)測誤差較小。隨機(jī)森林在實際應(yīng)用中的良好表現(xiàn)使得它被廣泛應(yīng)用于各大領(lǐng)域,例如文本分類、經(jīng)濟(jì)問題建模、醫(yī)學(xué)研究、生物信息分析等,并且都取得了不錯的成果。
3實驗分析
3.1實驗數(shù)據(jù)和工具
筆者在UC+數(shù)據(jù)倉庫網(wǎng)站上下載了關(guān)于個人收入預(yù)測的數(shù)據(jù)集,該數(shù)據(jù)集包含了l4個代表個人基本信息的特征,這些特征包括年齡、工作單位、性別、受教育程度、婚姻狀態(tài)、國籍等。每條數(shù)據(jù)包括一個類別標(biāo)簽,標(biāo)簽有兩種取值:l或者0,表明該公民的年收入是大于5萬美元還是小于5萬美元。本文下載的數(shù)據(jù)集包含訓(xùn)練集和測試集,訓(xùn)練集含有l(wèi)0000+條數(shù)據(jù),測試集含有5000+條數(shù)據(jù)??紤]到實驗機(jī)器的配置較低,為了提高效率,本文從10000+條訓(xùn)練集中抽取了5000條數(shù)據(jù)用于實驗。
本文使用Weka軟件進(jìn)行數(shù)據(jù)挖掘的實驗。Weka基于Java語言開發(fā),是一個數(shù)據(jù)挖掘的第三方工具平臺,該平臺集成了大量的機(jī)器學(xué)習(xí)模型和數(shù)據(jù)挖掘的相關(guān)算法,在機(jī)器學(xué)習(xí)領(lǐng)域被廣泛使用。本文在進(jìn)行實驗時,采用了五交叉驗證的方法。
3.2實驗結(jié)果
3.2.1KNN模型的實驗結(jié)果
本文首先使用KNN模型進(jìn)行實驗。實驗過程中首先調(diào)整KNN模型中K值的大小,設(shè)置K值分別為l、3、5、7、l0,實驗結(jié)果表1所示。
由表l可知,當(dāng)K值從1~7逐漸變大時,模型的準(zhǔn)確率逐步上升:7~l0時,模型的準(zhǔn)確率開始下降:KNN模型在K值為7時有著最高的準(zhǔn)確率。因此,本文的KNN模型中參數(shù)K的最優(yōu)值是7。另外,需要說明的是,KNN是一個較為特殊的模型,不需要訓(xùn)練過程,因此表1中模型的訓(xùn)練時間均為0s。
表2是K取值為7時KNN模型在正類和負(fù)類上的表現(xiàn),由表2可知模型在負(fù)類數(shù)據(jù)上的表現(xiàn)要優(yōu)于正類數(shù)據(jù)的表現(xiàn),無論是召回率、精確率還是F值,負(fù)類數(shù)據(jù)的預(yù)測值都要更高一些。經(jīng)過分析得知,這是由于數(shù)據(jù)分布不均衡導(dǎo)致的。在數(shù)據(jù)集中,負(fù)類數(shù)據(jù)共有3779條,大約占了整個數(shù)據(jù)集的76%,而相比之下,正類數(shù)據(jù)只有1221條,占整個數(shù)據(jù)集的24%左右。在這種正負(fù)類數(shù)據(jù)分布不均衡的情況下,模型對于數(shù)量大的數(shù)據(jù)集更加敏感,在預(yù)測時對數(shù)據(jù)較多的類別有更大的傾向性,容易將輸入數(shù)據(jù)判別為數(shù)據(jù)量更大的數(shù)據(jù)類別,正是這一原因造成了表2中正負(fù)類表現(xiàn)的差異。
3.2.2隨機(jī)森林模型的實驗結(jié)果
本文在實驗中使用隨機(jī)森林模型,為了找到隨機(jī)森林包含決策樹的最佳個數(shù),本文依次設(shè)置決策樹的個數(shù)為5、10、15、20、30,實驗結(jié)果如表3所示。由表3可知,隨著決策樹個數(shù)變多,隨機(jī)森林模型的預(yù)測準(zhǔn)確率逐漸變高,訓(xùn)練時間也逐漸變長。當(dāng)隨機(jī)森林含有30個決策樹時,模型的預(yù)測準(zhǔn)確率最高,預(yù)測效果最好。因此,本文中的隨機(jī)森林模型,含有30個決策樹時表現(xiàn)最優(yōu)。另外,由于隨機(jī)森林模型的訓(xùn)練時間較少,決策樹個數(shù)不同時,隨機(jī)森林模型的訓(xùn)練時間差別較小,因此本文忽略了訓(xùn)練時間這一因素。
表4是含有30個決策樹的隨機(jī)森林模型的實驗結(jié)果,由表4不難看出,和KNN類似,不論是精確率、召回率還是F值,隨機(jī)森林模型在負(fù)類數(shù)據(jù)的表現(xiàn)都優(yōu)于正類數(shù)據(jù)的表現(xiàn)。這同樣是由于數(shù)據(jù)集中數(shù)據(jù)分布不均衡的原因?qū)е碌?前文已有分析,這里不再贅述。
3.2.3SVM模型的實驗結(jié)果
本文在實驗中使用SVM模型,為了找到SVM模型的最佳核函數(shù),本文依次對不同核函數(shù)的SVM模型進(jìn)行實驗,實驗結(jié)果如表5所示,表5中的a、b、c、d依次代表線性核函數(shù)、多項式核函數(shù)、RBF核函數(shù)和sigmoid核函數(shù)。
由表5可知,基于核函數(shù)b的SVM模型預(yù)測精確率最低,并且消耗的訓(xùn)練時間最長,在4個核函數(shù)中表現(xiàn)最差。對于核函數(shù)a、c、d來說,三個核函數(shù)的預(yù)測準(zhǔn)確率相差不大,但是a消耗的訓(xùn)練時間最多,出于效率的考慮,核函數(shù)a的表現(xiàn)也比較差。核函數(shù)d的準(zhǔn)確率較高,且訓(xùn)練時間遠(yuǎn)小于其他三個核函數(shù),但基于d核函數(shù)的SVM模型,在正類數(shù)據(jù)的精確率、召回率、F值都為0,因此d核函數(shù)表現(xiàn)并不正常,因此本文中SVM模型的最佳核函數(shù)是c,也就是RBF核函數(shù)。
表6是基于RBF核函數(shù)的SVM模型的詳細(xì)實驗結(jié)果,由表6可知,SVM模型和上述KNN模型、隨機(jī)森林模型的情況類似,即負(fù)類數(shù)據(jù)的預(yù)測表現(xiàn)優(yōu)于正類數(shù)據(jù)的預(yù)測表現(xiàn)。這同樣是由于數(shù)據(jù)集數(shù)據(jù)分布不均衡導(dǎo)致的,由此也可以知道,不論何種模型,數(shù)據(jù)分布不均衡都會對實驗結(jié)果造成相似的影響。
3.2.4三種模型的比較
表7所示為三種分類模型的對比,其中KNN模型的K值為7,隨機(jī)森林含有30個決策樹,SVM的核函數(shù)是RBF核函數(shù)。由表7可知,三種模型中,隨機(jī)森林模型有著最高的預(yù)測準(zhǔn)確率,消耗的訓(xùn)練時間也較短,因此本文中的最佳模型是隨機(jī)森林模型。
4結(jié)語
本文主要研究機(jī)器學(xué)習(xí)在個人收入預(yù)測方面的應(yīng)用,使用了KNN、SVM、隨機(jī)森林模型進(jìn)行實驗。實驗結(jié)果表明,三種模型中,隨機(jī)森林模型有著最好的預(yù)測效果,預(yù)測準(zhǔn)確率高于SVM、KNN模型的預(yù)測準(zhǔn)確率。另外,數(shù)據(jù)集數(shù)據(jù)分布不均衡會造成實驗結(jié)果出現(xiàn)一定的偏差,實際實驗中要盡量保持?jǐn)?shù)據(jù)分布的平衡。