
數(shù)據(jù)挖掘- 分類算法比較
隨著計算能力、存儲、網(wǎng)絡的高速發(fā)展,人類積累的數(shù)據(jù)量正以指數(shù)速度增長。對于這些數(shù)據(jù),人們迫切希望從中提取出隱藏其中的有用信息,更需要發(fā)現(xiàn)更深層次的規(guī)律,對決策,商務應用提供更有效的支持。為了滿足這種需求,數(shù)據(jù)挖掘技術的得到了長足的發(fā)展,而分類在數(shù)據(jù)挖掘中是一項非常重要的任務,目前在商業(yè)上應用最多。本文主要側重數(shù)據(jù)挖掘中分類算法的效果的對比,通過簡單的實驗(采用開源的數(shù)據(jù)挖掘工具 -Weka)來驗證不同的分類算法的效果,幫助數(shù)據(jù)挖掘新手認識不同的分類算法的特點,并且掌握開源數(shù)據(jù)挖掘工具的使用。
分類算法是解決分類問題的方法,是數(shù)據(jù)挖掘、機器學習和模式識別中一個重要的研究領域。分類算法通過對已知類別訓練集的分析,從中發(fā)現(xiàn)分類規(guī)則,以此預測新數(shù)據(jù)的類別。分類算法的應用非常廣泛,銀行中風險評估、客戶類別分類、文本檢索和搜索引擎分類、安全領域中的入侵檢測以及軟件項目中的應用等等。
以下介紹典型的分類算法。
貝葉斯分類器的分類原理是通過某對象的先驗概率,利用貝葉斯公式計算出其后驗概率,即該對象屬于某一類的概率,選擇具有最大后驗概率的類作為該對象所屬的類。目前研究較多的貝葉斯分類器主要有四種,分別是:Naive Bayes、 TAN、BAN 和 GBN。
貝葉斯網(wǎng)絡(BayesNet)
貝葉斯網(wǎng)絡是一個帶有概率注釋的有向無環(huán)圖,圖中的每一個結點均表示一個隨機變量 , 圖中兩結點間若存在著一條弧,則表示這兩結點相對應的隨機變量是概率相依的,反之則說明這兩個隨機變量是條件獨立的。網(wǎng)絡中任意一個結點 X 均有一個相應的條件概率表 Conditional Probability Table,CPT) ,用以表示結點 X 在其父結點取各可能值時的條件概率。若結點 X 無父結點 , 則 X 的 CPT 為其先驗概率分布。貝葉斯網(wǎng)絡的結構及各結點的 CPT 定義了網(wǎng)絡中各變量的概率分布。應用貝葉斯網(wǎng)絡分類器進行分類主要分成兩階段。第一階段是貝葉斯網(wǎng)絡分類器的學習,即從樣本數(shù)據(jù)中構造分類器,包括結構學習和 CPT 學習;第二階段是貝葉斯網(wǎng)絡分類器的推理,即計算類結點的條件概率,對分類數(shù)據(jù)進行分類。這兩個階段的時間復雜性均取決于特征值間的依賴程度,甚至可以是 NP 完全問題,因而在實際應用中,往往需要對貝葉斯網(wǎng)絡分類器進行簡化。根據(jù)對特征值間不同關聯(lián)程度的假設,可以得出各種貝葉斯分類器。
樸素貝葉斯(NaiveBayes)
樸素貝葉斯模型(NBC)發(fā)源于古典數(shù)學理論,有著堅實的數(shù)學基礎,以及穩(wěn)定的分類效率。同時,NBC 模型所需估計的參數(shù)很少,對缺失數(shù)據(jù)不太敏感,算法也比較簡單。NBC 模型假設屬性之間相互獨立,這個假設在實際應用中往往是不成立的,這給 NBC 模型的正確分類帶來了一定影響。在屬性個數(shù)比較多或者屬性之間相關性較大時,NBC 模型的分類效率比不上決策樹模型。而在屬性相關性較小時,NBC 模型的性能最為良好。
相對其它的 Inductive Learning 的算法來說,Lazy Learning 的方法在訓練是僅僅是保存樣本集的信息,直到測試樣本到達時才進行分類決策。也就是說這個決策模型是在測試樣本到來以后才生成的。相對與其它的分類算法來說,這類的分類算法可以根據(jù)每個測試樣本的樣本信息來學習模型,這樣的學習模型可能更好的擬 合局部的樣本特性。kNN 算法的思路非常簡單直觀:如果一個樣本在特征空間中的 k 個最相似 ( 即特征空間中最鄰近 ) 的樣本中的大多數(shù)屬于某一個類別,則該樣本也屬于這個類別。其基本原理是在測試樣本到達的時候尋找到測試樣本的 k 臨近的樣本,然后選擇這些鄰居樣本的類別最集中的一種作為測試樣本的類別。在 weka 中關于 kNN 的算法有兩個,分別是 IB1,IBk。
IB1 即 1 近鄰
IB1 是通過它的一個鄰居來判斷測試樣本的類別
IBk 即 K 近鄰
IBk 是通過它周圍的 k 個鄰居來判斷測試樣本的類別
在樣本中有比較多的噪音點是(noisy points)時,通過一個鄰居的效果很顯然會差一些,因為出現(xiàn)誤差的情況會比較多。這種情況下,IBk 就成了一個較優(yōu)的選項了。這個時候有出現(xiàn)了一個問題,k 這個值如何確定,一般來說這個 k 是通過經驗來判斷的。
即決策樹算法,決策樹是對數(shù)據(jù)進行分類,以此達到預測的目的。該決策樹方法先根據(jù)訓練集數(shù)據(jù)形成決策樹,如果該樹不能對所有對象給出正確的分類,那么選擇一些例外加入到訓練集數(shù)據(jù)中,重復該過程一直到形成正確的決策集。決策樹代表著決策集的樹形結構。決策樹由決策結點、分支和葉子組成。決策樹中最上面 的結點為根結點,每個分支是一個新的決策結點,或者是樹的葉子。每個決策結點代表一個問題或決策,通常 對應于待分類對象的屬性。每一個葉子結點代表一種可能的分類結果。沿決策樹從上到下遍歷的過程中,在每個結點都會遇到一個測試,對每個結點上問題的不同的 測試輸出導致不同的分支,最后會到達一個葉子結點,這個過程就是利用決策樹進行分類的過程,利用若干個變量來判斷所屬的類別。
ID3 算法是由 Quinlan 首先提出的。該算法是以信息論為基礎,以信息熵和信息增益度為衡量標準,從而實現(xiàn)對數(shù)據(jù)的歸納分類。
以下是一些信息論的基本概念:
定義 1:若存在 n 個相同概率的消息,則每個消息的概率 p 是 1/n,一個消息傳遞的信息量為 Log2(n)
定義 2:若有 n 個消息,其給定概率分布為 P=(p1,p2 … pn),則由該分布傳遞的信息量稱為 P 的熵,記為
I (p) =-(i=1 to n 求和 ) piLog2(pi) 。
定義 3:若一個記錄集合 T 根據(jù)類別屬性的值被分成互相獨立的類 C1C2..Ck,則識別 T 的一個元素所屬哪個類所需要的信息量為 Info (T) =I (p) ,其中 P 為 C1C2 … Ck 的概率分布,即 P= (|C1|/|T| … |Ck|/|T|)
定義 4:若我們先根據(jù)非類別屬性 X 的值將 T 分成集合 T1,T2 … Tn,則確定 T 中一個元素類的信息量可通過確定 Ti 的加權平均值來得到,即 Info(Ti) 的加權平均值為:
Info(X, T) = (i=1 to n 求和 ) ((|Ti|/|T |) Info (Ti))
定義 5:信息增益度是兩個信息量之間的差值,其中一個信息量是需確定 T 的一個元素的信息量,另一個信息量是在已得到的屬性 X 的值后需確定的 T 一個元素的信息量,信息增益度公式為:
Gain(X, T) =Info (T)-Info(X, T)
J48 即決策樹 C4.5 算法
C4.5 算法一種分類決策樹算法 , 其核心算法是 ID3 算法。C4.5 算法繼承了 ID3 算法的優(yōu)點,并在以下幾方面對 ID3 算法進行了改進:用信息增益率來選擇屬性,克服了用信息增益選擇屬性時偏向選擇取值多的屬性的不足; 在樹構造過程中進行剪枝; 能夠完成對連續(xù)屬性的離散化處理; 能夠對不完整數(shù)據(jù)進行處理。 C4.5 算法有如下優(yōu)點:產生的分類規(guī)則易于理解,準確率較高。其缺點是:在構造樹的過程中,需要對數(shù)據(jù)集進行多次的順序掃描和排序,因而導致算法的低效。
Decision Table 即決策表
決策表 (Decision Table),是一中使用表的結構,精確而簡潔描述復雜邏輯的方式。
JRip 即 RIPPER 算法
規(guī)則歸納學習從分類實例出發(fā)能夠歸納出一般的概念描述。其中重要的算法為 IREP 算法和 RIPPER 算法。重復增量修枝(RIPPER)算法生成一條規(guī)則,隨機地將沒有覆蓋的實例分成生長集合和修剪集合,規(guī)定規(guī)則集合中的每個規(guī)則是有兩個規(guī)則來生成:替代規(guī)則和修訂規(guī)則。
AdaBoostM1 即 AdaBoosting 算法
Adaboost 是一種迭代算法,其核心思想是針對同一個訓練集訓練不同的分類器 ( 弱分類器 ) ,然后把這些弱分類器集合起來,構成一個更強的最終分類器 ( 強分類器 ) 。其算法本身是通過改變數(shù)據(jù)分布來實現(xiàn)的,它根據(jù)每次訓練集之中每個樣本的分類是否正確,以及上次的總體分類的準確率,來確定每個樣本的權值。將修改過權值的新數(shù)據(jù)集送給下層分類器進行訓練,最后將每次訓練得到的分類器最后融合起來,作為最后的決策分類器。
Bagging 即 Bagging 方法
Bootstrps bagging boosting 都屬于集成學習方法,將訓練的學習器集成在一起。原理來源于 PAC 學習模型(Probably Approximately CorrectK)。其中的 Bagging 是 bootstrap aggregating 的縮寫,是最早的 Ensemble 算法之一,它也是最直接容易實現(xiàn),又具有不錯的效果的算法之一。Bagging 中的多樣性是由有放回抽取訓練樣本來實現(xiàn)的,用這種方式隨機產生多個訓練數(shù)據(jù)的子集,在每一個訓練集的子集上訓練一個同種分類器,最終分類結果是由多個分類器的分類結果多數(shù)投票而產生的。
Correlation coefficient (= CC) : 相關系數(shù)
Root mean squared error (= RMSE) : 均方根誤差
Root relative squared error (= RRSE) : 相對平方根誤差
Mean absolute error (= MAE) : 平均絕對誤差
Root absolute error (= RAE) : 平均絕對誤差平方根
Combined: (1-abs (CC)) + RRSE + RAE: 結合的
Accuracy (= ACC) : 正確率
注意,Correction coefficient 只適用于連續(xù)值類別,Accuracy 只適用于離散類別
Kappa statistic:這個指標用于評判分類器的分類結果與隨機分類的差異度。
絕對差值(Mean absolute error):這個指標用于評判預測值與實際值之間的差異度。把多次測得值之間相互接近的程度稱為精密度,精密度用偏差表示,偏差指測得值與平均值之間的差值,偏差越小,精密度則越高。
中誤差(Root mean square error:RMSE):帶權殘差平方和的平均數(shù)的平方根,作為在一定條件下衡量測量精度的一種數(shù)值指標。中誤差是衡量觀測精度的一種數(shù)字標準,亦稱“標準差”或“均方根差”。在相同觀測條件下的一組真誤差平方中數(shù)的平方根。因真誤差不易求得 , 所 以通常用最小二乘法求得的觀測值改正數(shù)來代替真誤差。它是觀測值與真值偏差的平方和觀測次數(shù) n 比值的平方根。中誤差不等于真誤差,它僅是一組真誤差的代表值。中誤差的大小反映了該組觀測值精度的高低,因此,通常稱中誤差為觀測值的中誤差。
預測的準確率:這涉及到模型正確地預測新的或先前沒見過的數(shù)據(jù)的類 標號能力。
速度:涉及到產生和使用模型的計算花費。
強壯性:這涉及給定噪聲數(shù)據(jù)或具有空缺值的數(shù)據(jù),模型正確預測的能力。
可伸縮性:這涉及給定大量的數(shù)據(jù),有效的構造模型的能力。
可解釋性:這涉及學習模型提供的理解和洞察的層次。
以下主要采用兩種數(shù)據(jù)集(Monk's Problems 和 Satimage)來分別運行不同的分類算法,采用的是 Weka 數(shù)據(jù)挖掘工具。
1. 屬性全部為 nominal 類型
2. 訓練樣本較少
3. 訓練集數(shù)據(jù)的可視化圖,該圖根據(jù)直方圖上方一欄所選擇的 class 屬性(attr6)來著色。
各分類器不做參數(shù)調整,使用默認參數(shù)進行得到的結果。
表 1. 分類器初步結果比較 分類器比較
預測的準確率比較
采用基于懶惰學習的 IB1、IBk 的分類器的誤差率較低,采用基于概率統(tǒng)計的 BayesNet 分類器的誤差率較高,其他的基于決策樹和基于規(guī)則的分類器誤差居于前兩者之間,這是因為在樣本較少的情況下,采用 IB1 時,生成的決策模型是在測試樣本到來以后才生成,這樣的學習模型可能更好的擬合局部的樣本特性。采用統(tǒng)計學分類方法的 BayesNet 之所以準確度較低,可能是由于貝葉斯定理的成立本身需要很強的獨立性假設前提,而此假設在實際情況中經常是不成立的。但是一般地,統(tǒng)計分類算法趨于計算量大。
進一步比較分類結果的散點圖(其中正確分類的結果用叉表示,分錯的結果用方框表示),發(fā)現(xiàn) BayesNet 分類器針對屬性 6(attr6)的預測結果分錯的結果明顯比 IB1 的分錯結果要多些,而這些錯誤的散點中,又以屬性 6 的取值為 2 的散點中錯誤的數(shù)目較多。
分類速度比較
Adaboost 的分類花了 0.08 秒,Bagging 的分類花了 0.03 秒,相對于其他的分類器,這兩個分類器速度較慢。這是因為這兩個算法采用迭代,針對同一個訓練集,訓練多種分類器,然后把這些分類器集合起來,所以時間消耗較長。
IBK 調優(yōu)
【 KNN 】:6
擴大鄰近學習的節(jié)點范圍,降低異常點的干擾(距離較大的異常點)
? 【 DistanceWeighting 】:Weight by 1/distance
通過修改距離權重,進一步降低異常點的干擾(距離較大的異常點)
IBk 調優(yōu)結果
調優(yōu)后準確率從 60.65% 上升到 63.43%。
表 2. IBk 調優(yōu)結果 J48 調優(yōu)
【 binarySplits 】:True
采用 2 分法,生成決策樹。
J48 調優(yōu)結果
調優(yōu)后準確率從 59.72% 上升到 64.35%,但是分類模型建立時間從 0 延長到了 0.31 秒
表 3. J48 調優(yōu)結果
Salmage 數(shù)據(jù)集特點
1. 屬性為 numeric 類型 , 共 37 個屬性
2. 訓練數(shù)據(jù)各類不平衡,測試數(shù)據(jù)各類不平衡
圖 7. 訓練數(shù)據(jù)集可視化圖
各分類器初步分類效果分析
各分類器不做參數(shù)調整,使用默認參數(shù)得到的結果如下:
表 4. 分類器初步結果比較 分類器比較
預測的準確率比較
采用基于懶惰學習的 IB1、IBk 的分類器的準確率都較高,為 90.36%,采用 基于決策樁的 AdaBoostM 分類器的準確率較低,為 43.08%,貝葉斯分類器的準確 率較之前的數(shù)據(jù)集(Monk ’ s problem)有明顯的提高,從 49% 到了 80% 左右,這主 要是因為樣本空間的擴大,其他的分類器準確率也處于 80% 左右。
分類速度比較
DecisionTable 的分類花了 4.33 秒,Bagging 的分類花了 3.92 秒,J48 的分類模型建立花了 2.06 秒,相對于其他的分類器,這三個分類器速度較慢。
IBK 調優(yōu)
【 KNN 】:6
擴大鄰近學習的節(jié)點范圍,降低異常點的干擾(距離較大的異常點)
? 【 DistanceWeighting 】:Weight by 1/distance
通過修改距離權重,進一步降低異常點的干擾(距離較大的異常點)
IBK 調優(yōu)結果
調優(yōu)后準確率從 90.36% 上升到 90.98%, 準確度有略微提升,說明通過擴大鄰近學習的節(jié)點范圍不能明顯提高分類器的性能。
表 5. IBk 調優(yōu)結果
J48 調優(yōu)
【 binarySplits 】:True
采用 2 分法,生成決策樹。
J48 調優(yōu)結果
分類性能沒有提升。說明采用 2 分法對分類沒有影響。相反,時間比原來的算法有略微延長。
表 6. J48 調優(yōu)結果
改進和建議
本文給出的調優(yōu)方法只是一個簡單的示例,實際上根據(jù)合理的參數(shù)調整,這些分類算法的效果還能得到更大的提升。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關鍵? 在循環(huán)神經網(wǎng)絡(RNN)家族中,長短期記憶網(wǎng)絡(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準備指南? ? 在數(shù)據(jù)驅動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認 ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務的價值轉化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預測分析中的應用:從數(shù)據(jù)查詢到趨勢預判? ? 在數(shù)據(jù)驅動決策的時代,預測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經濟蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準 ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領域中,準確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認證作為國內權威的數(shù)據(jù)分析能力認證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應對策略? 長短期記憶網(wǎng)絡(LSTM)作為循環(huán)神經網(wǎng)絡(RNN)的一種變體,憑借獨特的門控機制,在 ...
2025-07-07統(tǒng)計學方法在市場調研數(shù)據(jù)中的深度應用? 市場調研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學方法則是市場調研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉日期:解鎖數(shù)據(jù)處理的關鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準確性的基礎 ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03