id3使用資訊增益作為屬性選擇標準,c4.5使用資訊增益率作為屬性選擇標準。cart演算法使用gini係數來度量對某個屬性變數測試輸出的狼族取值的差異性,理想的分組應該盡量使兩組中樣本輸出變數的差異性總和達到最小,即「純度」最大,也就是是兩組輸出變數取值的差異性下降最快,「純度」增加最快。
設t為分類回歸樹中的某個節點,稱函式
為gini係數,k為當前屬性下測試輸出的類別數,p(j|t)為節點t中樣本測試輸出取類別j的概率。對節點t而言,g(t)越小,意味著該節點中所包含的樣本越集中在某一類上,即該節點越純,否則說明越不純,差異性就越大。當節點樣本的測試輸出均取同一類別值時,輸出變數取值的差異性最小,gini係數為0,而當各類別取概率值相等時,測試輸出取值的差異性最大,gini係數也最大,為1-(1/k),其中k為目標變數的類別數。
設t為乙個節點,§為該節點的乙個屬性分枝條件,該分支條件將該節點t中樣本分別到左分支sl和右分支sr中,則稱
為在分支條件下節點t的差異性損失,其中,g(t)為劃分前測試輸出的gini係數,|sr|和|sl|分辨表示劃分後的左右分支的樣本個數。為了使節點t盡可能的純,我們需要選擇某個屬性分支條件,使該節點的差異性宣誓盡可能大。
(2)對於分型別屬性,由於cart只能建立二叉樹,對於多個量值得屬性變數,需要將多類別合併成兩個類別,形成「超類」,然後計算兩「超類」,然後計算兩「超類」下樣本測試輸出取值的差異性。
對於數值型屬性,方法就是將資料按公升序排序,然後從小到大一次以相鄰數值的中間值作為分隔,將樣本分為兩組,並計算所得組中樣本測試輸出取值的差異性。
cart演算法的基本描述
函式名:cart(s,f)
輸入:樣本集資料s,屬性集合f
輸出:cart樹
(1) if 樣本s全部屬於同一類別c,then
(2) 建立乙個葉節點,並標記類標號c;
(3) return;
(4) else
(5) 計算屬性集合f中每乙個屬性劃分的差異性損失,假定差異性損失罪的大屬性為a建立節點,取屬性a為該節點的決策屬性;
(6) 以屬性a劃分s得到s1和s2兩個子集
(7) 遞迴呼叫cart(s1,f);
(8) 遞迴呼叫cart(s2,f);
例子
首先對資料集非類標號屬性分別計算他們的差異性損失,取差異性損失最大的屬性作為決策樹的根節點屬性。
根節點的gini係數
對於婚姻狀況屬性
屬性婚姻狀況有三個可能的取值,分別計算劃分後的超/,/,/的差異性損失
(1)當分組為/時,sl表示婚姻狀況取值為married的分組,sr表示婚姻狀況取值為single或者divorce的分組
(2)對於分組/
(3)對於/分組
根據計算結果,屬性婚姻狀況劃分根節點時取差異性最大的分組作為劃分結果
對於年收入屬性
對於年收入屬性為數值型屬性,首先需要對資料按公升序排序,然後從小到大一次以相鄰值的中間值作為分隔將樣本劃分為兩組
下面僅僅介紹中間值65作為分割點。sl作為年
收入小於65的樣本,sr表示年收入大於等於65的樣本
根據計算知道,三個屬性劃分根節點差異性損失最大的有2個:年收入屬性和婚姻狀況,他們的差異性損失都為0.12.此時,選取首先出現的屬性作為第一次劃分
第二遍採用同樣的方法,分別計算剩下屬性
根節點的gini係數為
6指的是single或者divorced的數目,3就是是否貸款的數目no和yes
對於是否有房屬性
對於年收入屬性
最後得出的cart樹
**實現
文字分類演算法之 貝葉斯文字分類演算法
文字分類過程 例如文件 good good study day day up 可以用乙個文字特徵向量來表示,x good,good,study,day,day up 在文字分類中,假設我們有乙個文件d x,類別 c又稱為標籤。我們把一堆打了標籤的文件集合 作為訓練樣本,x c 例如 對於這個只有一句...
分類演算法 七) 短文本分類
深入做文字分類的同學都知道,短文本分類相對來說比較難。因為較短的文字包含的資訊較少,有時候模型很難學到關鍵特徵。參考 指出 但是對於長文字直接用cnn就不行了,textcnn會比han模型泛化能力差很多。當然如果在textcnn前加一層lstm,這樣效果可以提公升很大。另外還有一點很重要的是,實際使...
貝葉斯文字分類原理
1 貝葉斯定理 貝葉斯條件概率公式的核心思想是利用容易知道的條件概率來推導出感興趣的條件概率,公式如下 p b a p a b p b p a 想要知道a發生後發生b的概率,可以用b發生後發生a的概率乘以b發生的概率再除a發生的概率。2 貝葉斯定理在文字分類中的具體使用原理 我們知道文字都是由乙個個...