孫乾智
(西南石油大學 計算機科學學院,四川 成都 610500)
屬性約簡是粗糙集和粒子計算中一項重要的應用,現實中很多數據集存在大量的冗余屬性,這些屬性不僅增加了分類訓練的計算量,而且還降低了分類性能,屬性約簡的目的就是消除冗余屬性。目前,學者們提出大量如下的屬性約簡方法。
何海琦等[1]運用鄰域粗糙集構造了屬性約簡算法。Dai等[2]基于信息系統信息粒化的熵理論提出了相應的屬性約簡。Lin等[3]運用鄰域粗糙集中的鄰域粒化構造了數值屬性約簡。Zhang等[4]基于模糊粗糙集模型提出了高效的屬性約簡。Ma等[5]運用決策粗糙集理論提出了保持決策區(qū)域的近似約簡。在增量式學習中,Jing等[6]提出了多種增量式屬性約簡方法。在并行計算領域中,Chen等[7]提出了相應的并行屬性約簡算法,這些算法的不斷提出,使得關于屬性約簡的研究不斷趨于完善。陳毅寧等[8]根據距離比值尺度,進行屬性約簡。
近年來,段詠程等[9]通過粗糙集理論確定數據集中每個屬性的重要性, 用隨機森林算法對重要程度低的屬性進行約簡, 刪除冗余屬性,雖然實驗結果在精度上有所提升,但在刪除冗余屬性時忽略了每個屬性的實際意義。例如:在葡萄酒數據研究中,酒精和葡萄酸等化合物是影響葡萄酒口感的直接屬性,雖然顏色對口感的影響很低,但是酒的顏色同樣是消費者關注的屬性,所以在做屬性約簡時如果直接忽略了顏色對酒的影響,雖然也能提升口感分類精度,但卻失去了現實消費意義,顏色單屬性所占精度如下:原花色度14%,顏色強度26%,色調18%。
與段詠程等[9]直接刪除冗余屬性不同,本文為尋找具有實際意義、低權重屬性之間的隱藏關系,提出一種改進的屬性約簡方法,通過隨機森林算法對屬性進行權重分析,再利用因子分析方法將權重低的屬性進行挖掘,從而找到和低屬性存在的隱含關系,再使用SVM算法將同類別權重低的屬性進行融合,將存在隱含關系的屬性分別提取出來。利用SVM算法能夠理解特征的相互作用,分別對每組提取出來的屬性進行分類訓練,得到一個新的分類結果,將這個結果定義為存在隱含關系屬性融合后的新屬性,最后將屬性融合后的數據集用隨機森林分類器進行分類訓練,本文方法實現了在考慮所有屬性權重和現實意義的前提下對數據進行分類訓練。
本文使用UCI公共數據集中的葡萄酒以及公園大火數據集進行訓練,駕駛行為數據集為四川某汽車公司所采集的真實數據。實驗結果表明,新的屬性約簡算法在保留屬性意義的同時,分類結果更精確。
屬性約簡是從屬性集合中挑選出所需要元素的過程,通過對數據集降維、刪除重復多余元素,選擇關鍵元素。由于數據來源不同、數據量龐大且數據類型多等特點,因此對大數據集進行降低數據維度、減少重復多余屬性、提取關鍵屬性成為屬性約簡的重要過程。當前屬性約簡的方法有主成分分析法、奇異值分解法和粗糙集等,其中使用最多的是粗糙集方法。粗糙集方法具有強大的學習能力和無需任何先驗知識,避免了部分重要信息的損失,且不會改變原始數據的決策信息。
隨機森林是指使用隨機的方式建立一個森林,森林里有很多決策樹,決策樹之間相互獨立,沒有關聯。隨機森林建成后,如果有一個新的樣本進入森林,森林里所有決策樹都會判斷這個新樣本屬于哪一類,判斷是哪一類被選擇得最多,也就是受影響的是哪一類。最后,就可以得到一個預測值,確定這個樣本是屬于哪一類的。隨機森林構造過程如圖1所示[10]。

圖1 隨機森林構造過程
隨機森林算法的優(yōu)點:隨機森林算法可以處理高維度數據,不用特征選取;可以判斷特征的重要程度;可以判斷不同特征之間的相互影響;不容易過擬合;訓練速度比較快,容易做成并行方法;實現起來簡單;對于不平衡的數據而言,它可以平衡誤差;如果有很大一部分的特征遺失,仍可以維持準確度。
隨機森林算法的缺點:隨機森林算法已被證明,在噪聲較大的分類或回歸問題上會過擬合;對于不同取值的屬性數據,取值劃分較多的屬性會對隨機森林產生更大的影響,所以隨機森林在這種數據上產出的屬性權值不可信。
支持向量機(Support Vector Machine,SVM)算法一種基于統計學習理論(Statistical Learning Theory,SLT)的分類方法。基于統計學習理論中的結構風險最小化原理和維數理論,通過核函數將輸入樣本從原始空間映射到高維特征空間,并在高維特征空間中構造最優(yōu)分類超平面。它具有學習能力強、選擇參數少、泛化能力強、擬合精度高、訓練時間短、全局最優(yōu)等優(yōu)點,為解決小樣本、高維、非線性問題提供了一個有效的工具,并可推廣到其他機器學習問題,如函數擬合等。
SVM是基于模式識別方法和統計學習理論的一種全新分類技術,主要用于模式識別領域。1963年,ATE-T Bell實驗室研究小組在Vanpik的領導下,首次提出支持向量機理論方法。這種方法是從樣本集中選擇一種樣本,對整個樣本集的劃分可以等同于這組樣本的劃分,這組樣本子集被形象地稱為支持向量。但是當時,SVM在數學上并不能被明晰地表示,人們對模式識別問題的研究并不完善,因此SVM的研究沒有得到進一步的發(fā)展與重視。
1971年,Kimeldorf提出使用線性不等約束來重新構造SVM核空間,使得一些線性不可分的問題得到了解決。
20世紀90年代,形成了一個比較完善的理論體系——統計理論。此時,一些新的機器學習方法遇到了一些新的困難,如神經網絡的欠學習和過度學習,如何確定網絡結構。局部極小問題在求解中表現出許多獨特的優(yōu)勢,可以推廣到函數等其他機器學習問題上[11]。
SVM算法的優(yōu)點:SVM算法可解決大型空間特征的高維問題;能夠理解特征的相互作用;無需依賴整個數據;可以提高泛化能力。
SVM算法的缺點:當觀測樣本很多時,SVM算法效率并不高;對非線性問題,沒有通用的解決方案,有時很難找到一個合適的核函數;在噪聲過多的情況下,SVM很容易過擬合。
從量表的全部變量中提取一些公因子,各公因子代表量表的各個基本結構,分別與一群特定的變量表的結構進行關聯,這是因子分析的主要功能,也被認為是獲得觀察變量(Observed Variable)背后潛在變量(Latent Variable)的最典型方法和最有效的效度分析手段。
找出不可預測的潛在變量作為公共因子、用不可觀測的隨機變量來計算可觀測的隨機變量,是因子分析研究的主要目的。它的主要工作是分解,將可觀測的變量進行分解,即分解為特殊因子、公共因子和誤差3個部分[12]。
本文提出一種基于實際意義低權重屬性融合的屬性約簡方法,權重比界限根據多次實驗給定,在多次試驗中,單分類精度最低為70%,例如在葡萄酒口感分類實驗中,酒精在不同測試集與實驗集比例下,最低分類結果為71%,在駕駛行為分類實驗中速度在不同測試集與實驗集比例下,最低分類結果為73%,故選取70%為權重分類界限,具體流程如圖2所示。

圖2 算法流程
因為隨機森林算法在有很大特征遺失的情況下,仍可以維持準確度,所以,選擇隨機森林算法對所有屬性進行權重分析,可以得到每個屬性的單獨權重。
根據之前的分析,很多數據集都存在屬性權重占比低、但具有實際意義,卻被直接刪除這些屬性,使得分類結果存在誤差的問題。針對這一問題,本文提出一種尋找屬性之間隱含關系的方法,通過挖掘屬性之間存在的隱含關系來變相保留這些屬性的實際意義。
屬性之間的隱含關系往往不能夠直接被觀察出來,本文利用因子分析方法挖掘屬性之間的隱含關系,具體過程以人的受歡迎程度為例,長相是影響受歡迎程度的主要原因,這是一個二維數據,如表1所示。

表1 二維數據
但這樣的結論描述不夠詳細,需要加入更多的屬性,這里加入7條屬性來描述,如表2所示。

表2 多維數據
隨著屬性的增加,可以描述得更加清晰,但是卻不能像之前那樣很容易地知道每個人受喜歡的程度,因此需要用到屬性約簡,來更加清楚地識別每個人的受歡迎程度。由于上面的每個屬性都是評價人的具有實際意義的屬于不能刪除的屬性,所以需要尋找屬性之間存在的隱含關系,通過因子分析方法得到屬性之間如下的隱含關系,如表3所示。

表3 屬性隱含關系
通過尋找變量之間的相關性,2個變量之間協同變化。通過這種方法,就可以找到屬性之間存在的隱含關系。
通過以上方法,找到了存在隱含關系的屬性。本文通過SVM算法,將這些屬性進行融合。融合后的新屬性,既可對數據集的屬性進行約簡,又可以保留數據集屬性的所有含義。
SVM算法的優(yōu)點是能夠理解特征的相互作用;無需依賴整個數據。這樣只需要幾個單獨的屬性就可以對數據集進行很全面的分類。將隱含關系的屬性分組,然后將每組屬性分別通過SVM算法進行分類訓練,這樣每組屬性都會得到一個新的值,這個值就是這組屬性融合后的新屬性,這樣既能對數據進行屬性約簡,降低維度,又可以保留屬性的意義。
根據上一節(jié)分析可以得知,{長相、五官、顏值}為一組,{脾氣、性格}為一組,{腿長、身高}為一組,將每組屬性通過SVM算法進行訓練會得到一個新的分類結果,得到的這個結果就是每個組的新屬性,如表4所示。
具體分類訓練步驟如下。
Step1 輸入數據;
Step2 通過隨機森林算法對每個屬性進行分類,得到每個屬性的精確度;
Step3 對屬性進行因子分析,找出同類型的屬性;
Step4 找出權重占比低且同類別的屬性;
Step5 通過SVM算法,將找出的屬性進行融合從而得到屬性約簡;
Step6 更新數據,得到新的數據集;
Step7 通過隨機森林算法對新的數據集進行分類;
Step8 得到新的分類結果。
本文實驗環(huán)境為Microsoft Windows 10,2.9 GHz Intel Core i5,8 G RAM,使用SVM算法、隨機森林算法以及因子分析方法,驗證數據集為UCI公共數據集中的葡萄酒數據集和公園大火數據集,實驗數據集為四川某汽車公司所記錄數據。將本文方法分別與傳統隨機森林算法、SVM算法以及段詠程等[9]基于RSAR的隨機森林屬性約簡方法進行對比。
(1)篩選樣本的過程中發(fā)現,有些車輛全程GPS速度都為0,本文研究駕駛行為特征的識別,這樣的樣本無法作為研究目標,所以刪除這樣的樣本。
(2)通過研究分析明確所需要的指標,基于準確、有效、易量化的原則對數據中的指標進行篩選。最終保留的指標為速度Sp、經度Lat、維度Lng、開始時間ST、結束時間ET、持續(xù)時間DT、事件類型Alarm。
駕駛行為數據是通過GPS收集來的數據,數據龐大且存在噪聲,表5為處理后的部分數據片段。{28-超速、30-空擋滑行、4-點火、27-怠速、7-急剎車、302-異常怠速、27-空擋滑行、301-緊急事件、5-熄火、6-轉速過高、41-急加速}[13-14]。

表5 駕駛行為數據片段
采用SVM算法、隨機森林算法、段詠程等[9]的方法以及本文提出的算法分別對駕駛行為數據集進行分類得到實驗結果如表6所示。

表6 駕駛行為結果
實驗結果表明,本文方法在考慮屬性實際意義的情況下,駕駛行為分類精度相較于傳統隨機森林算法和SVM算法分別提升了6%和8%,相較于段詠程等[9]的方法提升了2%。
為了進一步驗證本文算法的有效性, 從UCI數據集中選取了葡萄酒數據集和公園大火數據集,實驗結果如表7—8所示。

表7 葡萄酒結果

表8 公園大火結果
實驗結果表明,本文方法在考慮屬性實際意義的情況下,葡萄酒數據集和公園大火數據集分類精度相較于傳統隨機森林算法和SVM算法分別提升了4%和7%,相較于段詠程等[9]的方法提升了3%。
本文算法主要是考慮每個屬性的實際意義來進行屬性約簡,從而減少權重較低的屬性對分類結果的影響,得到更加精確的分類結果。通過對比,對屬性進行約簡得到的結果比約簡之前得到的結果更佳。與不考慮實際意義的屬性約簡算法相比,實驗結果有所提升,在保證分類精度的前提下更有實際意義。