





【摘" 要】 隨著計(jì)算機(jī)硬件水平的不斷提高,集成學(xué)習(xí)技術(shù)在數(shù)據(jù)挖掘與分析中得到了廣泛的應(yīng)用,由于集成了大量的學(xué)習(xí)器,集成學(xué)習(xí)技術(shù)在實(shí)際應(yīng)用中往往能夠得到比單一學(xué)習(xí)器更好的結(jié)果。文章選用了來自芝加哥警察局的CLEAR(公民執(zhí)法分析和報(bào)告)系統(tǒng)記錄的數(shù)據(jù),首先清洗了原始數(shù)據(jù),然后使用隨機(jī)森林、GBDT和XGBoost等3種集成學(xué)習(xí)方法,對數(shù)據(jù)進(jìn)行建模分析,通過調(diào)參尋找最優(yōu)參數(shù)模型,挖掘了數(shù)據(jù)深層次的價(jià)值,以期對現(xiàn)實(shí)中的犯罪活動(dòng)有一定的預(yù)防作用。
【關(guān)鍵詞】 集成學(xué)習(xí);隨機(jī)森林;GBDT;XGBoost
一、數(shù)據(jù)預(yù)處理
從原始數(shù)據(jù)的特征來看,數(shù)據(jù)集共包含了22個(gè)特征,其中,12個(gè)數(shù)值型特征、10個(gè)名義型特征。
首先,可以直接刪除一些與數(shù)據(jù)分析目標(biāo)無關(guān)的特征,例如ID、FBI和Code等與目標(biāo)Primary Type無關(guān)系的特征。數(shù)據(jù)集的數(shù)值型特征如表1所示。數(shù)據(jù)集的名義型特征如表2所示。
其次,需要了解目標(biāo)變量Primary Type的分布情況,通過統(tǒng)計(jì)發(fā)現(xiàn),數(shù)據(jù)包含毆打、盜竊、人口販賣、販毒、賭博、詐騙和非法入侵等31種犯罪類型。通過統(tǒng)計(jì)分析數(shù)據(jù)可知,目標(biāo)分布存在嚴(yán)重的數(shù)據(jù)不均衡現(xiàn)象,對此可以刪除樣本過少的數(shù)據(jù)。由于樣本數(shù)據(jù)巨大,因此針對其他特征數(shù)據(jù)分布不均衡的情況,可以根據(jù)實(shí)際情況,采取欠采樣的方法進(jìn)行處理。
在數(shù)據(jù)的預(yù)處理階段,主要工作是清洗數(shù)據(jù)。首先檢查各個(gè)屬性的缺失值占比和方差特性,刪除缺失值占比過高(超過20%)和方差較低的屬性,通常認(rèn)為,方差較低的屬性包含的信息量過少,導(dǎo)致該屬性沒有訓(xùn)練價(jià)值。其次是處理異常值。異常值的處理一般采用箱線圖進(jìn)行分析,根據(jù)數(shù)據(jù)的實(shí)際情況,可以采取填充、刪除等方式處理缺失值和異常值。在本數(shù)據(jù)集中,數(shù)據(jù)量巨大,并且沒有發(fā)現(xiàn)缺失量較大的特征,可以直接刪除缺失值或異常值。
二、特征處理
在特征處理階段,可以通過特征選擇方法選取關(guān)鍵特征,剔除相關(guān)性差的特征,達(dá)到降維的目標(biāo)。
對于本數(shù)據(jù)集,本文首先采用相關(guān)系數(shù)法觀察特征之間的相關(guān)系數(shù),繪制相關(guān)系數(shù)的熱力矩陣,刪除相關(guān)性過高的特征(超過0.7)。通過相關(guān)系數(shù)的熱力圖分布可知,在熱力圖中存在著若干個(gè)相關(guān)性較高的特征,其中Y Coordinate、Latitude與Community Area的相關(guān)性為0.77,因此沒有必要全部保留,可以刪除Community Area的特征,進(jìn)而達(dá)到降低數(shù)據(jù)維度的目的。
其次對數(shù)據(jù)中的非數(shù)值型特征進(jìn)行編碼處理,根據(jù)每個(gè)特征數(shù)據(jù)種類的多少,確定采用哪種編碼方式。在本數(shù)據(jù)集中,由于特征較多,采用獨(dú)熱的編碼方式會(huì)擴(kuò)充數(shù)據(jù)的特征、造成數(shù)據(jù)維度的爆炸,因此本文采用pandas的factorize方式進(jìn)行編碼。factorize函數(shù)可以將字符串的類型數(shù)據(jù)映射為一組數(shù)字,相同的字符串類型映射為相同的數(shù)字。該函數(shù)會(huì)返回一個(gè)元組tuple,元組中包含兩個(gè)元素。第一個(gè)元素映射后面的數(shù)字;第二個(gè)元素是Index類型,其中的元素是所有字符串的類型元素,沒有重復(fù)。這里本文取了第一個(gè)元素[0],該函數(shù)的特點(diǎn)是不會(huì)擴(kuò)充數(shù)據(jù)集的維度,同時(shí)能夠達(dá)到字符串?dāng)?shù)值化的目的。
最后,根據(jù)數(shù)據(jù)的分布特點(diǎn),對數(shù)據(jù)進(jìn)行Min Max Scaler的歸一化處理。
三、數(shù)據(jù)建模分析
在數(shù)據(jù)建模前,首先劃分?jǐn)?shù)據(jù)集,使用了sklearn的train_test_split方法,設(shè)置測試集的比例為20%,同時(shí)設(shè)置random_state參數(shù),保證不同建模方法運(yùn)行結(jié)果的一致性。
(一)使用隨機(jī)森林方法建模
隨機(jī)森林(Random Forest,簡稱RF)作為一種具有高度靈敏性的機(jī)器學(xué)習(xí)算法[1],是有監(jiān)督的學(xué)習(xí)方法,屬于裝袋算法(Bootstrap aggregating,簡稱Bagging)。隨機(jī)森林算法通過Bagging學(xué)習(xí)方法,集成了多個(gè)決策樹,根據(jù)所有決策樹的投票,獲得最終結(jié)果[2]。傳統(tǒng)的決策樹算法在選擇分裂屬性的時(shí)候,是在當(dāng)前節(jié)點(diǎn)的屬性結(jié)合中選擇一個(gè)最優(yōu)屬性,這個(gè)最優(yōu)屬性的數(shù)學(xué)衡量指標(biāo)一般采用信息熵或基尼系數(shù)。在隨機(jī)森林中,對于基學(xué)習(xí)器的每個(gè)節(jié)點(diǎn)(決策樹),先從該節(jié)點(diǎn)的屬性集合中,隨機(jī)選擇一個(gè)包含了k個(gè)屬性的集合,然后從這個(gè)集合中選擇一個(gè)最優(yōu)屬性進(jìn)行劃分,這個(gè)參數(shù)k可以有效地控制隨機(jī)性的引入程度。假設(shè)k=d(假設(shè)有d個(gè)屬性),則基學(xué)習(xí)器與傳統(tǒng)的決策樹構(gòu)建相同;若k=1,則隨機(jī)地劃分與選擇屬性,任由每個(gè)決策樹自由生長,不會(huì)進(jìn)行剪枝處理。
此外,隨機(jī)森林訓(xùn)練可以實(shí)現(xiàn)高度的并行化,能夠有效地應(yīng)用于大數(shù)據(jù)集,處理具有高維特征的樣本,效果較好。本文首先使用了默認(rèn)參數(shù)進(jìn)行隨機(jī)森林建模,然后通過網(wǎng)格搜索方法搜索最佳超參數(shù),并使用了k-折交叉驗(yàn)證法(k=3),最后通過在測試集上的分類準(zhǔn)確度、精準(zhǔn)率、召回率以及F1-Score指標(biāo),衡量了模型的性能。隨機(jī)森林默認(rèn)參數(shù)下各項(xiàng)指標(biāo)如表3所示。隨機(jī)森林超參數(shù)調(diào)節(jié)如表4所示;隨機(jī)森林最優(yōu)模型評(píng)價(jià)指標(biāo)如表5所示。
(二)使用GBDT方法建模
梯度提升決策樹(簡稱GBDT)是一種應(yīng)用于回歸預(yù)測的機(jī)器學(xué)習(xí)方法,其基礎(chǔ)是以分類回歸樹(Classification tree,CART)作為基學(xué)習(xí)器的Boosting集成學(xué)習(xí)算法,通過迭代方式將較弱的學(xué)習(xí)器,組合成一個(gè)較強(qiáng)的學(xué)習(xí)器。在GBDT的每次迭代過程中,都在殘差減少的梯度方向,新建一棵CART決策樹,經(jīng)過多次迭代,使殘差趨近于0,最后累加所有決策樹的結(jié)果,獲得最終的預(yù)測結(jié)果。GBDT在大樣本數(shù)據(jù)的預(yù)測中具有很好的效果,能夠靈活地處理復(fù)雜的非線性關(guān)系,即使樣本數(shù)據(jù)的類型不同,也可以較好地處理。相對于文獻(xiàn)[3]采用的支持向量機(jī)算法,GBDT在處理數(shù)據(jù)時(shí),運(yùn)行速度較快、精度較高。
此外,GBDT的損失函數(shù)沿著負(fù)數(shù)梯度的方向下降,本文將損失函數(shù)的負(fù)梯度在當(dāng)前模型的值,作為在回歸提升樹算法中殘差的近似值,擬合回歸樹。GBDT在每一輪迭代的時(shí)候,都會(huì)擬合損失函數(shù)在當(dāng)前模型下的負(fù)梯度,因此在每輪訓(xùn)練時(shí),都會(huì)盡可能地減小損失函數(shù),能夠較快地達(dá)到全局最優(yōu)或局部最優(yōu),實(shí)現(xiàn)較快的收斂。文章利用了GBDT的這一特點(diǎn),有效地處理了數(shù)據(jù)特征之間的復(fù)雜函數(shù)關(guān)系,首先使用默認(rèn)參數(shù)進(jìn)行GBDT建模,然后對學(xué)習(xí)器的個(gè)數(shù)、最大深度等幾個(gè)重要的超參數(shù)進(jìn)行搜索、調(diào)參,尋找最優(yōu)的參數(shù)模型。GBDT超參數(shù)如表6表示。GBDT默認(rèn)參數(shù)下的指標(biāo)如表7所示;超參數(shù)調(diào)節(jié)范圍如表8所示。GBDT最優(yōu)模型評(píng)價(jià)指標(biāo)如表9所示。
(三)使用XGBoost方法建模
XGBoost全稱為Extreme Gradient Boosting,是基于Boosting集成學(xué)習(xí)算法的極端提升樹模型。XGBoost繼承了GBDT的邏輯,其模型也是CART,但不僅限于回歸樹,因此本研究還是沿用了加法模型,但是在目標(biāo)函數(shù)上有所區(qū)別。XGBoost的基本思想是通過不斷進(jìn)行特征變量,分裂生成樹,每生成一棵樹,都需要重新學(xué)習(xí)一個(gè)新函數(shù),擬合上次預(yù)測的殘差,從而不斷地提高學(xué)習(xí)質(zhì)量。XGBoost和GBDT在本質(zhì)上采用的基本模型都是CART樹,不同的是,XGBoost的目標(biāo)函數(shù)包含了兩個(gè)部分:損失項(xiàng)和正則項(xiàng)。正則項(xiàng)的引入,能夠使XGBoost有效地解決過擬合的問題,極大地提升了模型精度。
式中,■為損失項(xiàng), ■為正則項(xiàng)。此外,在XGBoost中,損失函數(shù)項(xiàng)可以采用二階求導(dǎo),并支持并行計(jì)算,因此XGBoost在提高了精度的同時(shí),計(jì)算速度也更快。
在本案例中,文章針對大量的數(shù)據(jù)集以及特征間復(fù)雜的關(guān)系,使用了XGBoost方法緩解過擬合和計(jì)算時(shí)間的問題,首先使用了默認(rèn)參數(shù)進(jìn)行XGBoost建模,然后針對主要的幾個(gè)超參數(shù)進(jìn)行網(wǎng)格搜索、調(diào)參,尋找了最優(yōu)模型。
XGBoost超參數(shù)調(diào)節(jié)如表10所示。XGBoost默認(rèn)參數(shù)下的指標(biāo)如表11所示。XGBoost最優(yōu)模型評(píng)價(jià)指標(biāo)如表12所示。
四、結(jié)語
本研究使用了隨機(jī)森林、GBDT和XGBoost等3種集成學(xué)習(xí)算法,研究和分析犯罪類型的預(yù)測問題。數(shù)據(jù)集具有數(shù)據(jù)量巨大、特征復(fù)雜的特點(diǎn),傳統(tǒng)單一的學(xué)習(xí)器在這種類型問題中往往表現(xiàn)較差,因此適合使用集成學(xué)習(xí)方法,并進(jìn)行研究。從實(shí)驗(yàn)結(jié)果來看,XGBoost和GBDT的模型精度以及各項(xiàng)評(píng)價(jià)指標(biāo)相當(dāng),隨機(jī)森林方法的模型精度等各項(xiàng)指標(biāo)相對較差,但是XGBoost相對于GBDT大大節(jié)省了訓(xùn)練時(shí)間,其訓(xùn)練時(shí)間和隨機(jī)森林相當(dāng),這得益于XGBoost方法并行計(jì)算的特點(diǎn)。因此在大數(shù)據(jù)量、特征復(fù)雜情形下的數(shù)據(jù)挖掘問題,XGBoost方法的綜合性能更優(yōu),能夠同時(shí)兼顧模型精度和訓(xùn)練時(shí)間。
參考文獻(xiàn):
[1] 曹正鳳,謝邦昌,紀(jì)宏. 一種隨機(jī)森林的混合算法[J]. 統(tǒng)計(jì)與決策,2014(04):7-9.
[2] 林強(qiáng),鄔依林,倪君儀,等. 基于隨機(jī)森林的鋰電池電極缺陷粗細(xì)分類法[J]. 廣東技術(shù)師范大學(xué)學(xué)報(bào),2022,43(06):72-77.
[3] Ding C, Wang D G, Ma X L, et al. Predicting short term subway ridership and prioritizing its influential factors using gradient boosting decision trees[J]. Sustainability,2016,8(11):1-16.