付 悅,夏小娜,2,3
(1.曲阜師范大學 統計學院,山東 曲阜 273165;2.曲阜師范大學 信息科學與工程學院,山東 日照 276826;3.曲阜師范大學 中國教育大數據研究院,山東 曲阜 273165)
近年來,使用機器學習進行數據挖掘的研究越來越豐富[1-2]。在使用機器學習進行數據挖掘的各種算法中,數據分類算法的研究具有重要意義。分類算法能夠提取并刻畫數據中的各個類別,基于這些不同的類別分析研究數據可以更加全面地理解數據與解決問題。
在基于機器學習的分類算法興起之前,研究人員多使用傳統的分類方法如邏輯回歸或者判別分析對數據進行分類[3-4],這些分類方法有很大的局限性,比如邏輯回歸多適用于二分類的情況,而判別分析多應用于數據的線性分類,正是由于傳統分類方法的一些局限性,很多專家和學者在數據分類方面的研究不斷向機器學習的分類算法靠近[5]。
基于機器學習的分類算法有很多,比較常用的有決策樹、隨機森林和支持向量機。在數據的分類問題上,目前對于分類器的研究多集中在模型的構建以及優化方面,很少有研究將傳統分類方法與機器學習分類方法進行對比。本研究以判別分析、決策樹、隨機森林和支持向量機為例,以北京市2018年1月到11月每小時的空氣質量狀況為樣本,對以上幾種算法進行實證分析并比較它們在處理空氣質量狀況問題中的應用效果及存在的差別。
傳統的分類方法有很多,比如邏輯回歸、判別分析等,基于本次研究是對空氣質量狀況進行分類,使用判別分析的分類方法進行實驗最為合適,因此主要介紹和使用判別分析方法。使用判別分析分類的關鍵在于利用當前樣本信息,選擇合適方法建立相關判別規則,新樣本便可以根據判別規則判斷其所屬類別[6]。
根據判別規則的不同,判別分析主要分為距離判別、貝葉斯判別、Fisher判別和逐步判別,相關概念和思想可查閱相關文獻[7]。根據本研究所使用的數據集特點和對已有文獻的分析論證,Fisher判別對空氣質量狀況的分類更加有效可行。
Fisher判別的基本思想是借助投影使數據降維。該方法首先選擇一個適當的投影軸,使所有的樣本點都投影到該軸上,使用Fisher判別投影的關鍵是使每一類的類內離差盡可能小,而不同類之間的類間離差盡可能大[8]。
Fisher判別構造的線性判別函數表示為:
C(Y)=C1Y1+C2Y2+…+CPYP
(1)
其中,Y為判別類別,C為判別函數的系數。判別函數系數的估計表示為:
C=(∑1+∑2)-1(μ1+μ2)
(2)
其中,μ,Σ是變量X的均值與方差。
1.2.1 支持向量機
支持向量機(SVM)是機器學習中常用的分類算法之一,該模型的關鍵是盡量擴大不同類別之間的分類間隔,分類間隔越大得到的分類模型會越準確,詳細解釋可見參考文獻[9]。
以一個二分類問題為例,使用支持向量機構建分類器就是在該數據空間中使用一個合適的超平面將原始數據分為兩類。對于該超平面的尋找方法是通過尋找最大化邊緣超平面進行。尋找最大化邊緣超平面意味著將不同類別的數據以充分大的間隔進行分類即在使用支持向量機分類時,不僅考慮將正負樣本分開,對于處在類別邊緣的樣本也要盡最大可能地正確分類,這便是使用支持向量機分類的關鍵所在[10]。
核函數是使用支持向量機建模的重點所在,它可以對一些復雜非線性數據建模,核函數的關鍵原理是空間映射,維度的變化使復雜數據的分類變得簡單。常用的核函數有高斯核函數、多項式核函數與字符串核函數,關于核函數的具體思想可查閱文獻[11]。由于高斯核函數較為簡單,適用范圍較廣,因此文中對空氣質量狀況的分類主要使用高斯核函數。
高斯核函數如式(3):
K(x,z)=exp(-‖x-z‖2/2σ2)
(3)
其中,樣本x,z∈χ(χ為歐氏空間的子集或者集合),σ2為數據方差。
1.2.2 決策樹
決策樹算法的關鍵是遍歷所有節點,并在每一個節點處分類,直至遍歷結束輸出最終的數據分類結果[12]。決策樹的分類過程主要包括決策樹的構建和優化。
首先需要從原始數據的所有特征中選取一個作為初始分類節點,然后遍歷數據所有特征,直至數據不可再分;其次進行模型優化即剪枝操作。這樣生成的初始決策樹可能會存在節點過多的現象即出現過擬合,容易使決策樹過于膨脹,為此需要對決策樹進行剪枝,以此縮小樹的規模與結構[13]。
決策樹分類的準確性與每個節點特征的劃分規則相關,規則通常為信息增益準則、信息增益比準則與Gini指數準則這三種,分別對應三種決策樹算法[14]。在三種決策樹算法中,使用Gini指數作為劃分準則的CART算法是前兩種算法的改進,這里主要介紹CART算法[15]。
由于CART算法使用Gini指數作為劃分準則,首先需要定義樣本X的Gini值,計算公式表示為:
(4)
其中,c為特征總數,ck即屬于第k類的樣本本身。
設M為樣本特征,m是它可能的取值,X1和X2是樣本集X分割的兩部分,具體表示為:
(5)
此時,X的Gini指數可表示為:
(6)
1.2.3 隨機森林
隨機森林是決策樹的拓展算法,它的主要思想是集成學習,基本單位是決策樹。與決策樹算法不同的是,隨機森林是由數個決策樹構成,處在森林中的每個決策樹會生成一個分類結果,隨機森林利用集成學習方法分析所有決策樹的分類結果,投票數最多的分類作為最終結果,即Bagging算法[16]。
(1)Bagging算法。
Bagging算法需要在原始數據集中進行多次隨機采樣,將每次采樣結果作為一個訓練樣本分類器直至所有樣本訓練結束,在多次訓練中選擇出現次數最多的分類作為最終分類器,再將測試樣本輸入最終分類器中預測分類結果,隨機森林是Bagging算法的典型應用[17]。
(2)隨機森林構建流程
首先從原始數據集中進行n次隨機采樣,根據采樣得到n個樣本集,利用n個樣本集訓練決策樹模型,每個決策樹分類器生成的分類結果是不同的,所有的決策樹組成隨機森林。在隨機森林中,選擇出現次數最多的決策樹模型作為最終的分類模型。具體構建流程可見參考文獻[18]。
基于北京市2018年1月至11月每小時的空氣質量監測數據進行實證研究,分別使用傳統分類方法與三種機器學習分類方法對北京市空氣質量進行分類,根據結果分析比較幾種方法的有效性與準確性。
空氣質量指數(air quality index,AQI)可用來衡量當前地區的空氣質量狀況。AQI的高低反映了空氣污染程度,空氣質量狀況通常可分為優、良、輕度污染、中度污染和重度污染五級[19]。AQI主要受空氣中污染物的影響,這些污染物主要包括PM2.5、PM10、CO、NO2、SO2與CO。根據空氣污染物濃度的高低,對當前空氣質量進行分類,借助分類結果研究主要污染物對空氣質量的影響。
在構造分類器之前,將北京市2018年1-11月每小時的空氣質量數據以4∶1的比例分為訓練集與測試集,訓練集用來對數據進行學習建模,測試集用來檢驗所建模型的優良性。
由于北京市空氣質量數據為線性分類數據,同時該數據為多分類情況,因此,在傳統的數據分類方法中,選擇線性判別方法。
使用訓練集構造線性判別分類器后,帶入測試數據進行判斷,測試結果如表1所示。

表1 判別分析方法對空氣質量狀況的預測分類結果
表1為線性判別分析方法對北京市空氣質量狀況的分類結果。結果顯示,空氣質量狀況為“優”時有87.53%的數據分類正確,數據判錯類別“良”;空氣質量狀況為“良”時有77.83%的數據分類正確,判錯類別大多為“優”;空氣質量狀況為“輕度污染”時有69.32%的數據分類正確,判錯類別大多為“良”;空氣質量狀況為“中度污染”時有73.7%的數據分類正確,判錯類別大多為“輕度污染”;空氣質量狀況為“重度污染”時僅有50%的數據分類正確。線性判別分類器的成功率在78.25%左右,結果并非很理想。同時,成功分類比例顯示每一類的判錯概率或高或低,而處于兩個類別之間的數據使用線性判別方法并不容易判斷,這會導致分類不準確,錯誤率升高;對于數據量較小的類別如“重度污染”,使用該方法出錯率很高。
一般的支持向量機只能將數據分成兩類,由于空氣質量分為五級,需要使用多分類的分類器。在用R語言構造分類器之前,需要為分類設定合適的gamma和cost參數,它們分別表示支持向量的個數和懲罰系數。其中,gamma函數在0.001到100之間,cost在10到100之間。通過多次測試,最終得到最優參數為gamma=0.1,cost=100,以此為基礎所構建支持向量機分類器并完成測試數據的分類,結果如表2所示。
表2顯示,空氣質量狀況為“優”時有96.50%的數據分類正確,數據判錯類別大多為“良”;空氣質量狀況為“良”時有90.63%的數據分類正確,判錯類別為“優”和“輕度污染”;空氣質量狀況為“輕度污染”時有83.7%的數據分類正確,判錯類別大多為“良”;空氣質量狀況為“中度污染”時有96.5%的數據分類正確,判錯類別大多為“輕度污染”;空氣質量狀況為“重度污染”時有90.47%的數據分類正確,有兩個判為“中度污染”。支持向量機分類器的成功率在91.51%左右,結果較好。同時,成功分類比例顯示每一類的判錯概率或高或低,但大多在90%以上,沒有過低情況,這使得整體精度達到91.51%。

表2 支持向量機對空氣質量狀況的預測分類結果
最初構建的決策樹可能存在過擬合現象從而使決策樹較大,需要對決策樹進行剪枝。表3反映了交叉驗證誤差xerror與復雜度參數cp的關系,通過分析它們之間的關系確定最終決策樹的大小。表3顯示損失函數最小的節點為第10節點,此時最小交叉驗證誤差為0.129,由于標準誤差為0.006 09,因此最優樹為0.129±0.006 09,以此為基準進行剪枝。

表3 交叉驗證誤差與復雜度關系表
圖1為對決策樹進行剪枝操作后的結果。該圖顯示,對空氣質量狀況進行分類時決策樹所構造的根節點為“良”,意為空氣質量為“良”時所占比重相對較大,在根節點之下,根據不同的空氣污染物再次對數據分類,直至所有分類結束,共構建了五類空氣質量的葉節點。

圖1 決策樹分類器示意圖
使用圖1得到的決策樹數據分類器,帶入測試數據得到表4。

表4 決策樹對空氣質量狀況的預測分類結果
表4為決策樹分類器對測試數據的分類結果。空氣質量狀況為“優”時全部數據分類正確;空氣質量狀況為“良”時有95%的數據分類正確,判錯類別為“優”;空氣質量狀況為“輕度污染”時有86.6%的數據分類正確,判錯類別大多為“良”;空氣質量狀況為“中度污染”時有82.1%的數據分類正確,判錯類別大多為“輕度污染”;空氣質量狀況為“重度污染”時沒有數據分類正確。決策樹分類器的成功率在92.7%左右,結果比較好。但當空氣質量狀況為“重度污染”時數據全部分類錯誤,通過對數據分析可以得到在北京市的空氣質量狀況為“重度污染”時的數量非常少,僅占0.009 7%,同時由于“重度污染”的AQI與“中度污染”的AQI臨界值比較接近,導致“重度污染”的類別區分度很小,使空氣質量狀況為“重度污染”的類別全部分類錯誤。
使用隨機森林分類器對數據集分類,首先默認生成500棵決策樹即500個分類器,接下來借助分類器指標MeanDecreaseGini[20]分析分類變量的重要性。
圖2是使用訓練數據構建分類器得到的MeanDecreaseGini圖,PM2.5與PM10在六個變量中居于首要地位,而SO2的重要性相對來說是最低的,通過分析有關AQI影響因素的文獻及數據資料得知[21],最影響北京市空氣質量狀況的空氣污染物確實是PM2.5與PM10。

圖2 MeanDecreaseGini
使用測試數據對隨機森林分類器進行檢驗,得到表5。空氣質量狀況為“優”時有98.92%的數據分類正確,判錯類別為“良”;空氣質量狀況為“良”時有96.31%的數據分類正確,判錯類別為“優”和“輕度污染”;空氣質量狀況為“輕度污染”時有92.04%的數據分類正確,判錯類別大多為“良”;空氣質量狀況為“中度污染”時有90.84%的數據分類正確,判錯類別大多為“輕度污染”;空氣質量狀況為“重度污染”時有95.28%的數據分類正確,判錯為一個“中度污染”。隨機森林分類器的成功率在94.98%左右,結果良好。表5的數據顯示,對于每一個類別的空氣質量狀況,判斷正確的概率比較均勻,均在90%以上,這使得整體判對概率達到94.98%,精確度比較高,分類比較準確。

表5 隨機森林對空氣質量狀況的預測分類結果
本研究將傳統的統計學分類方法和機器學習的三種分類方法運用于北京市2018年度空氣質量狀況的數據分析中,通過結果論證,其分類特點如表6所示:

表6 四種分類器優缺點對比分析
(1)傳統的統計學分類方法雖然不需要調整參數的優化權重問題,但是預測精度是最低的,而且對于每一類的預測精度都低。與三種機器學習的分類方法比較均處于劣勢位置。
(2)使用支持向量機對數據分類的結果較傳統統計學分類方法略好。支持向量是支持向量機分類器分類的關鍵,對于處于兩類別之間的數據的分類相對較好。但支持向量機的算法運行較為緩慢,多分類時會造成較大的誤差以及分類的低效率。
(3)使用決策樹分類器的結果優于支持向量機。能夠比較清晰地看到每個分類節點,利于分析空氣中不同污染物對于空氣質量的影響。缺點在于使用該方法構建分類器時一種類別的數據比重較小且在各節點處的分類不明顯,會導致刪除此類數據的分類,適合處理不同類別的數據分布理想的樣本。
(4)使用隨機森林分類器對數據分類的結果是機器學習分類方法中最優的,緣于隨機森林的評定結果建立在對所有決策樹結果的綜合分析基礎上,而且分類錯誤的情況比較少,準確率也最高。
因此,機器學習的分類算法明顯優于傳統統計學分類方法,同時,具有全部決策樹綜合分析能力的隨機森林分類器最穩定最有效。
通過對傳統統計學分類方法和機器學習的三種分類算法進行比較,得到以下結論:
傳統分類器有它獨特的優點,但是缺點也比較明顯,比如線性判別只能用于處理線性問題,而且在不同類別之間的數據邊界不清晰時分類結果并沒有那么準確。當數據類別之間的區分度不清晰時,機器學習算法更加具有優勢。
機器學習的三種分類算法各有優劣,適用情景有所差別。針對本研究的北京市空氣質量狀況數據集,隨機森林分類器的分類效率與分類精度明顯優于決策樹分類器和支持向量機分類器,分類結果更有統計學意義和參考價值。
分類節點比較多時可以優先考慮決策樹分類器,并且通過剪枝操作以減少分類模型的過擬合情況。但是在分類節點比較少或者每個節點均比較重要時慎用此類方法。
當數據集呈現二分類的情形時,支持向量機最為適用。但是在數據集的多分類情況下,應當減少支持向量機的使用。
本研究的方法優化和實證分析過程可為不定周期、存在多類別的數據集分析和統計提供支持,具有應用實踐意義,并提供有效且通用的建模方法和技術指導。