cart (classification and regression tree)分類與回歸樹演算法
前面說的決策樹就是分類樹,分類樹是一種對空間的劃分方法,將輸入空間(特徵空間)按照屬性的取值範圍劃分為若干個不相交的區域;
這裡的cart是一種二叉樹
還是三個步驟
1)屬性選擇
2)生成樹(劃分)
3)剪枝
先概述下:
這裡的三個步驟與前面說的兩種分類樹不同,對於第一點,id3與c4.5並沒有強調將每個屬性的範圍劃分為兩類,每個屬性有幾個離散的取值範圍,那麼就有幾個子節點,在cart中,執行的是遞迴的兩類劃分策略,當屬性的取值範圍超過兩類的時候,以其中的乙個取值作為中點,大於小於該值的各分一類,對於離散無法比較大小的取值,採取是否的策略;
因而在cart中可以很方便的處理屬性為連續取值的情況,但是相比於id3其除了需要解決選取哪個屬性作為決策節點的問題,還要解決在給定屬性的情況下,選取該屬性的哪個值作為劃分中點;
同時在id3與c4.5中樹的一層是乙個屬性,但是在cart中每次向下生長都會尋找所有屬性與取值中的最佳切分點,所以可能出現不同層次都是同乙個屬性的劃分;雖然cart是二分的方法,但是其不同層次的劃分屬性可以相同,具體取哪個屬性取決於需要劃分的集合;
在剪枝方面:
cart採取的是交叉驗證的方式,其使用驗證資料來剪枝,使得樹在正確率與複雜度方面有所權衡;
基尼指數:
基尼指數是個類似熵的東西,公式如下:
這是乙個可以度量集合中純度的公式,比如集合中集合中有三類,每類的概率分別為0.4,0.2,0.4
則gini(p)=1-(0.16+0.04+0.16)=0.64;gini指數在0-1之間;
當集合為的時候,該集合的gini指數為0,純度最大;即基尼指數越小,純度越高;愈大不確定性越大,跟熵類似;
當gini(d,a)越**明,該劃分使得劃分以後純度公升高,即有效的將不同種類從乙個集合中劃分開;在cart中就要尋找這樣的a(屬性)以及對應的劃分中心值;
我們依照gini(d,a)不斷的將樣本集合進行遞迴的劃分,直到集合中樣本小於某個值,或是gini(d,a)小於某個閾值;
對於每個屬性,我們通過gini(d,a)求出相應的屬性劃分值,遞迴的生成子樹;
以上說的是關於分類樹,下面說說回歸樹
回歸是輸入x,給出f(x);
但是在cart中我們不做任何假設,我們只是將輸入空間進行遞迴的劃分,使得劃分以後兩個輸出空間各自的方差之和最小;通過這樣的目標函式,我們決定以哪個屬性,以及在哪個取值處進行劃分;劃分以後的空間輸出值,即當有乙個新的輸入變數落入這個空間時,我們取這個空間的平均輸出作為新落入變數的**值;
所以本質上,回歸樹也是對輸入空間的劃分;如果當兩個輸入相近,但是輸出卻相距很遠,決策樹會自動的再次將兩個輸入分在兩個空間中;
推薦一篇部落格,講cart很好;
cart的剪枝是很複雜的過程,未完待續
白話機器學習演算法(二)KNN
knn是一種分類演算法,在現實生活中,我們看乙個人怎麼樣,可以看他的朋友怎麼樣,至少說這樣推斷的可信度比較高 knn就是這種思想。1 初始化輸入為有標籤樣本 2 當我們得到乙個新樣本的時候,我們就看這個新樣本的半徑為r的周圍,各種有標籤樣本的比例,哪種標籤佔的比例最高,我們就給這個新樣本打上這個標籤...
白話機器學習演算法(四)K means
k means演算法是一種無監督聚類演算法,還是打個比方吧 1 現在房間裡有一群人,各自隨機站在房間裡,這時候有個上帝,隨機挑選了房間裡k個人當k個小組的領導 2 選完領導,每個人開始站隊了,找離自己最近的那個領導,表示自己是那一隊的 3 站完隊,大家開始不滿了,要求重新選領導,選誰?選這一小組的中...
白話機器學習演算法(七)LDA
lda也是一種線性變換,其整個證明過程與pca非常相似,找到目標函式,利用特徵值,但是其跟pca的目標是不同的,pca目的是在新座標系中方差最大,lda則是在新座標系中,類內方差盡量小,類間距離盡量大,並以這兩個指標定義乙個目標函式,通過最大化這個目標函式然後得到相應的對映方法,即新座標系 這兩者本...