機器學習-分類簡介

一 分類概述

     分類在數據挖掘中是一項非常重要的任務。分類的目的是學會一個分類函數或分類模型(也常常稱作爲分類器),該模型能把數據庫中的數據項映射到給定類別中的某一個類別。
     
      分類屬於一種有指導的學習,模型的學習是在被告知每個訓練樣本屬於哪個類的“指導”下進行的,並隨機的從樣本羣選取。每個訓練樣本還有一個特定的類標籤與之對應,它不用於無指導的學習(聚類)。

 二 分類器
      分類器的構造方法有統計方法、機器方法、神經網絡方法等。
統計方法
       包括貝葉斯和非參數法。常見的臨近學習或基於事例的學習屬於非參數方法。對應的知識表示則爲判別函數和原型事例。
機器學習方法
      包括決策樹法和規則歸納法。前者對應的表示爲決策樹或判別樹,後者則有決策表和產生式規則等。
神經網絡方法
        主要是BP算法,它的模型表示是前向反饋神經網絡模型(由代表神經元的結點和代表聯接權值的邊組成的一種體系結構),BP算法本質上是一種非線性判別函數
       另外,許多技術,如粗糙集等,都可以用於分類器構造中。
       
       分類方法歸結爲四種類型:基於距離的分類方法(最臨近方法)、決策樹分類方法(ID3和C4.5算法)、貝葉斯分類方法(樸素貝葉斯算法和EM算法)和規則歸納(AQ算法、CN2算法和FOIL算法)等。

       要構造分類器,需要有一個訓練樣本數據作爲輸入。分類的目的是分析輸入數據,通過在訓練集中的數據表現出來的特性,爲每一個類找到一種準確的描述或者模型。
  
     一般地,數據分類分爲兩個步驟,建模和使用:
           1. 建立一個模型,描述預定的數據集或概念集
           2. 使用模型進行分類
注:使用模型前需要評估模型的預測準確率。保持(Holdout)方法是一種使用類標號樣本測試集的簡單方法。這些樣本隨機選取,並獨立於訓練樣本。模型在給定的測試集上的準確率是被模型正確分類的測試樣本的百分比。對於每個測試樣本,將已知的類標號與該樣本的學習模型類預測比較。如果模型的準確率根據訓練數據集進行評估,評估可能是樂觀的,因爲學習模型傾向於過分擬合數據。因此,使用交叉驗證來評估模型是比較合理的。

三  樸素貝葉斯分類

      貝葉斯分類是統計分類方法。基本思想:首先計算每個分類的先驗概率,然後在每種分類上計算待分類樣本的後驗概率,在哪個分類上的後驗概率大就屬於哪個分類
      貝葉斯分類器的分類是通過某對象的先驗概率,利用貝葉斯公式計算出其後驗概率,所謂的後驗概率也就是該對象屬於某一類的概率,然後選擇具有最大後驗概率的類作爲該對象所屬的類,即在哪個分類上的後驗概率大就屬於哪個分類。

      樸素貝葉斯分類器基於一個簡單的假定:給定目標值時屬性之間相互條件獨立
    
     每個數據樣本用一個n維特徵向量表示,分別描述對n個屬性A1,A2,A3,......,An樣本的n個度量。
      假定有m個類C1,C2,......,Cm,給定一個不知類別的數據樣本X,分類器將預測X屬於具有最高後驗概率(條件X下)的類。也就是說樸素貝葉斯分類將未知的樣本分配給類Ci(1<=i<=m)當且僅當P(Ci | X) > P(Cj | X),對任意的j=1,2,.....,m,j!=i.這樣最大化的P(Ci|X)對應的類Ci稱爲最大後驗假定,而P(Ci|X)可以根據下面的貝葉斯定理來確定:
                                                    
      由於P(X)對於所有類爲常數,只需要P(X|Ci)P(Ci)最大即可。如果Ci類的先驗概率未知,則通常假定這些類是等概率的,即P(C1)=P(C2)=.....=P(Cm),假設不是等概率,那麼類的先驗概率可以用P(Ci)=Si/S計算,其中Si是類Ci中的訓練樣本數,而S是訓練樣本總數。因此問題就轉化爲對P(X|Ci)的最大化。P(X|Ci)常被稱爲給定Ci時數據X的似然度,而使P(X|Ci)最大的假設Ci稱爲最大似然假設。
     給定具有許多屬性的數據集,計算P(X|Ci)的開銷是可能非常大。爲降低計算P(X|Ci)的開銷,可以做類條件獨立的樸素假定。給定樣本的類標號,假定屬性值相互條件獨立,即在屬性間不存在依賴關係。這樣:
                                             
  其中概率P(x1|Ci)、P(x2|C2)、P(x3|C3),.....,P(xn|Cn)可以由訓練樣本估值。
       如果Ak是離散屬性,則P(xk|Ci) = sik/si,其中sik是在屬性Ak上具有值xk的類Ci的訓練樣本數,而si是Ci的訓練樣本數。

         
三 決策樹分類

      從數據中生成分類器的一個特別有效的方法是生成一個決策樹(Decision Tree),決策樹表示方法是應用最廣泛的邏輯方法之一,它從一組無序、無規則的事例中推理出決策樹表示形式的分類規則。
      決策樹方法採用自頂向下的遞歸方式,在決策樹的內部結點進行屬性值的比較並根據不同的屬性值判斷從該結點向下的分支,在決策樹的葉節點得到結論。
      決策樹是一個類似於流程圖的樹結構,其中每個內部結點表示在一個屬性上的測試,每個分支代表一個測試輸出,而每個樹葉結點代表類或類分佈。樹的最頂層結點是根結點。一棵典型的決策樹如下圖所示。內部結點用矩形表示,而樹葉節點用橢圓表示。爲了對未知的樣本分類,樣本的屬性值在決策樹上測試。
      決策樹從根到葉結點的一條路徑就對應者一條合取規則,因此決策樹容易轉換成分類規則。
         

       多叉樹的內部結點是屬性,邊是該屬性的所有取值,有幾個取值,就有幾條邊。數據的葉子結點都是類別標記。
       決策樹是應用非常廣泛的分類方法,目前有多種決策樹方法,如ID3、CN2、SQIQ、SPRINT等。大多數已開發的決策樹是一種核心算法的變體。
      ID3算法是一種經典的決策樹學習算法,由Quinlan於1979年提出。ID3算法的基本思想是,以信息熵爲度量,用於決策樹節點的屬性選擇,每次優先選取信息量最多的屬性,亦即能使系統熵值變爲最小的屬性,以構造一顆熵值下降最快的決策樹,到葉子節點的熵值爲0,此時,每個葉子節點對應的實例屬於同一類。
       決策樹分類算法通常分爲兩個步驟,決策樹生成和決策樹修剪。

信息熵
  在信息論中,熵被用來衡量一個隨機變量出現的期望值,它是隨機變量的期望,用來度量信息的不確定程度。熵是整個系統的平均消息量。 一個系統越是有序,信息熵就越低;反之,一個系統越是混亂,信息熵就越高。所以,信息熵也可以說是系統有序化程度的一個度量。處理信息就是爲了把信息搞清楚,就是熵減少的過程。一個屬性的熵越大,它蘊含的不確定信息越大,越有利於數據的分類。這種信息理論方法使得對一個對象分類所需的期望測試數目達到最小,並儘量確保找到一棵簡單的樹來刻畫相關的信息。
       信息論中,事件ai信息量(又叫信息本體I(ai )可如下度量:      
                                                       
        其中p(ai)表示事件ai發生的概率。假設n個互不相容的事件a1,a2,a3,….,an,它們中有且僅有一個發生,則其平均的信息量(又叫先驗熵)可如下度量:
                     
     
      設S是s個數據樣本的集合。假設類標號屬性具有m個不同的值,定義m個不同類

Ci(i=1,2,....,m)。設si是Ci中樣本的個數。對一個給定的樣本分類所需的期望信息量有下面

公式給出:
                           

       其中pi是任意樣本屬於Ci的概率,一般可用si/s來估計。
    
      設屬性A具有v個不同的值{a1,a2,...,av}。可以用屬性A將S劃分爲v個子集{S1,S2,....Sv},其

中Sj包含S中這樣的一些樣本,它們在A上具有值aj。如果用A作爲測試屬性(即最好的分裂

屬性),則這些子集對應於包含集合S的結點生長出來的分支。
      
      設sij是集合Sj中類Ci的樣本數。根據由屬性A劃分子集的熵由下式給出:
                             
              
  當第j個子集的權,並且等於字集(即A值爲aj)中樣本個數除以S中樣本總數。熵值越小,子集劃分的純度越高,說明選擇屬性A作爲決策節點的效果 越好。
              
       由期望信息和熵值可以得到對應的信息增益值。對於在A上分支將獲得的信息增益可

以由下面的公式得到:
                       
          信息增益就是這兩個熵的差值。熵表示系統的不穩定程度,Gain(S,A)越大,系統熵減小的也就越快,表示條件A對於確定系統的貢獻越大,說明選擇測試屬性A作爲決策節點對分類提供的信息越多,系統趨於穩定的速度也更快。

      ID3根據信息增益,運用自頂向下的貪心策略建立決策樹。信息增益用於度量某個屬性對樣本集合分類的好壞程度。由於採用了信息增益,ID3算法建立的決策樹規模比較小,查詢速度快。


ID3算法缺點

       信息增益度度量存在一個內在偏置,它偏袒具有較多值的屬性,舉一個極端的例子,如果有一個屬性爲日期,那麼將有大量的值,太多的屬性值把訓練樣例分割成非成小的空間,單獨的日期就可能完全預測訓練數據的目標屬性,因此,這個屬性可能會有非常高的信息增益,該屬性可能會被選爲根結點的決策屬性並形成一棵深度爲一級但卻非常寬的樹,這棵樹可以理想的分類訓練數據。但是這個決策樹對於測試數據的分類性能可能會非常差,因爲它過分完美地分割了訓練數據,它不是一個好的分類器。

       除此之外,ID3算法增長樹的每一個分支深度,指導恰好能對訓練樣例完美的分類。然而整個策略並非行得通。事實上,當數據中有噪聲或訓練樣例的數量太少以至於不能產生目標函數的有代表性採樣時,這個策略便會遇到困難,導致過度擬合訓練集

     另外ID3算法只能處理離散類型的數據。

      ID3算法在搜索的過程中不能進行回溯,每當在樹的某一層次選擇了一個屬性進行測試,它不會再回溯重新考慮這個選擇。所以,它易受無回溯的爬山搜索中的常見風險影響:收斂到局部最優的答案,而不是全局最優。

      ID3算法在搜索的每一步都使用當前的所有訓練樣例,以統計爲基礎決定怎樣精化當前的假設。這與那些基於單獨的訓練樣例遞增作出決定的方法不同。使用所有樣例的統計屬性(例如:信息增益)的一個優點是大大降低了對個別訓練樣例錯誤的敏感性。因此,通過修改ID3算法的終止準則以接受不完全擬合訓練數據的假設,是可以很容易的擴展到處理含有噪聲的訓練數據。

剪枝
    有幾種途徑可被用來避免決策樹學習中的過度擬合,它們分爲兩類:
         1.預先剪枝 及早停止樹的增長,在ID3算法完美分類訓練數據之前就停止樹的增長。
         2.後剪枝     即允許樹過度擬合數據,然後對這個樹進行後修剪。
    
     儘管第一種方法可能看起來更直接,但是對過度擬合的樹進行後修剪的第二中方法在實踐中更成功。這是因爲在第一種方法中精確地估計何時停止樹增長是很困難的。
  
C4.5算法概述
     C4.5算法是從ID3算法演變而來,除了擁有ID3算法的功能外,C4.5算法引入了新的方法和增加了新的功能。例如:
      1.用信息增益比例的概念
                   
      這裏屬性A具有v個不同的值{a1,a2,...,av}。可以用屬性A將S劃分爲v個子集{S1,S2,....Sv},其
中Sj包含S中這樣的一些樣本,它們在A上具有值aj。
     
      2. 合併具有連續值的屬性
         ID3算法最初假定屬性離散值,但在實際環境中,很多屬性值是連續的。C4.5算法能夠處理具有連續的屬性值。
       
     3. 處理含有未知屬性值的訓練樣本
         C4.5處理的樣本可以含有未知屬性值,其處理方法是用最常用的值替代或者將最常用的值分在同一類中。具體採用概率的方法,依據屬性已知的值,對屬性和每一個值賦予一個概率,取得這些概率依賴於該屬性已知的值。

     4. 產生規則
        一旦樹被簡歷,就可以把樹轉換成if-then規則。


四 小結
      分類可用於預測,分類的目的是從歷史數據記錄中自動推導出對給定數據的趨勢描述,從而能對未來數據進行預測。統計學中常用的預測方式是迴歸。數據挖掘中的分類和統計學中的迴歸方法是一對聯繫又有區別的概念。一般地,分類的輸出是離散的類別值,而回歸的輸出則是連續數值。分類具有廣泛的應用,例如垃圾郵件識別、信用卡系統的信用分級、圖像的模式識別等。


發佈了111 篇原創文章 · 獲贊 27 · 訪問量 55萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章