人工智慧之機器學習主要有三大類:1)分類;2)回歸;3)聚類。今天我們重點**一下cart演算法。
我們知道十大機器學習中決策樹演算法占有兩席位置,即c4.5演算法和cart演算法,可見cart演算法的重要性。下面重點介紹cart演算法。
不同於id3與c4.5,cart為一種二分決策樹,是滿二叉樹。cart演算法由breiman等人在2023年提出,它採用與傳統統計學完全不同的方式構建**準則,它是以二叉樹的形式給出,易於理解、使用和解釋。由cart模型構建的**樹在很多情況下比常用的統計方法構建的代數學**準則更加準確,且資料越複雜、變數越多,演算法的優越性就越顯著。
cart演算法既可用於分類也可用於回歸。cart演算法被稱為資料探勘領域內里程碑式的演算法。
cart演算法概念:
cart(classification andregression tree)分類回歸樹是一種決策樹構建演算法。cart是在給定輸入隨機變數x條件下輸出隨機變數y的條件概率分布的學習方法。cart假設決策樹是二叉樹,內部結點特徵的取值為「是」和「否」,左分支是取值為「是」的分支,右分支是取值為「否」的分支。這樣的決策樹等價於遞迴地二分每個特徵,將輸入空間即特徵空間劃分為有限個單元,並在這些單元上確定**的概率分布,也就是在輸入給定的條件下輸出的條件概率分布。
cart演算法既可以處理離散型問題,也可以處理連續型問題。這種演算法在處理連續型問題時,主要通過使用二元切分來處理連續型變數,即特徵值大於某個給定的值就走左子樹,或者就走右子樹。
cart演算法組成:
cart演算法組成如下:
1)決策樹生成:基於訓練資料集生成決策樹,生成的決策樹要盡量大;自上而下從根開始建立節點,在每個節點處要選擇乙個最好(不同演算法使用不同指標來定義"最好")的屬性來**,使得子節點中的訓練資料集盡量的純。
2)決策樹剪枝:用驗證資料集對已生成的樹進行剪枝並選擇最優子樹,這時損失函式最小作為剪枝的標準。這裡用代價複雜度剪枝ccp(cost-complexity pruning)。
決策樹的生成就是通過遞迴地構建二叉決策樹的過程,對回歸樹用平方誤差最小化準則,對分類樹用基尼指數最小化準則,進行特徵選擇,生成二叉樹。
cart決策樹生成:
1)回歸樹生成
回歸樹採用均方誤差作為損失函式,樹生成時會遞迴的按最優特徵與最優特徵下的最優取值對空間進行劃分,直到滿足停止條件為止,停止條件可以人為設定,比如當切分後的損失減小值小於給定的閾值ε,則停止切分,生成葉節點。對於生成的回歸樹,每個葉節點的類別為落到該葉節點資料的標籤的均值。
回歸樹為一棵二叉樹,每次都是按特徵下的某個取值進行劃分,每乙個內部節點都是做乙個對應特徵的判斷,直至走到葉節點得到其類別,構建這棵樹的難點在於如何選取最優的切分特徵與切分特徵對應的切分變數。
回歸樹與模型樹既可以處理連續特徵也可以處理離散特徵。
回歸樹生成演算法如下:
輸入:訓練資料集d={(x1,y1),(x2,y2),…,(xn,yn)}
輸出:回歸樹t
1)求解選擇切分特徵j與切分特徵取值s,j將訓練集d劃分為兩部分,r1與r2,依照(j,s)切分後如下:
r1(j,s)={xi|xji≤s}r2(j,s)={xi|xji>s}
c1=1n1∑xi∈r1yi c2=1n2∑xi∈r2yi
2)遍歷所有可能的解(j,s),找到最優的(j*,s*),最優的解使得對應損失最小,按照最優特徵(j*,s*)來切分即可。
min{∑(yi–c1)^2+∑(yi–c2)^2}
j,s xi∈r1 xi∈r2
3)遞迴呼叫1)和2),直到滿足停止條件。
4)返回決策樹t。
回歸樹主要採用了分治策略,對於無法用唯一的全域性線性回歸來優化的目標進行分而治之,進而取得比較準確的結果,但分段取均值並不是乙個明智的選擇,可以考慮將葉節點設定為乙個線性函式,這便是所謂的分段線性模型樹。實驗表明:模型樹效果比回歸樹的效果要好一些。模型樹只需在回歸樹的基礎上稍加修改即可,對於分到葉節點的資料,採用線性回歸的最小均方損失來計算該節點的損失。
2)分類樹生成
分類樹是cart中用來分類的,不同於id3與c4.5,cart分類樹採用基尼指數來選擇最優的切分特徵,而且每次都是二分。
基尼指數是乙個類似與熵的概念,對於乙個有k種狀態對應的概率為p1,p2,…,pk的隨機變數x,其基尼指數gini定義如下:
gini(x)=∑pk(1?pk)=1?∑kp2k
k k在已知特徵a條件下集合d的基尼指數:
gini(d,a)=(|d1|/|d|)*gini(d1)+(|d2|/|d|)*gini(d2)
gini(d,a)取值越大,樣本的不確定性也越大,這一點與熵類似,所以選擇特徵a的標準是gini(d,a)的取值越小越好。
人工智慧之機器學習
系統環境 win10,python3.7 pip install jupyter出現successfully installed jupyter 等表示安裝好啦 接下來執行一下吧 在命令提示符中輸入jupyter notebook,回車就可以了 這時就可以用jupyter notebook進行 編輯...
人工智慧機器學習
機器學習是從資料中自動分析獲得規律 模型 並利用規律對未知資料進行 資料處理 首先將所有資料放在一起,然後將其順序打亂。由於順序不是判斷酒水的依據,我們並不期望順序影響到模型學習到的內容。換言之,我們判斷一種酒是紅的還是啤的,並不需要知道前一種或是接下來有什麼酒出現。這時,可以著手繪出視覺化的資料分...
人工智慧之機器學習演算法體系彙總
參加完2017ccai,聽完各位專家的演講後受益匪淺。立志寫 人工智慧之機器學習 系列,此為開篇,主要梳理了機器學習演算法體系,人工智慧相關趨勢,python與機器學習,以及結尾的一點感想。github開源機器學習系列文章及演算法原始碼 1.人工智慧之機器學習體系彙總 直接上乾貨 此處梳理出面向人工...