以鳶尾花為例子來說明:
觀察上圖,判決鳶尾花的思考過程可以這麼來描述:花瓣的長度小於2.4cm的是setosa(圖中綠色的分類),長度大於2.4cm的呢?可以通過寬度來判別,寬度小於1.8cm的是versicolor(圖中紅色的分類),其餘的就是virginica(圖中黑色的分類)
用圖形來形象的展示上述思考過程便得到了下圖一棵決策樹:
這種從資料產生決策樹的機器學習技術叫做決策樹學習, 通俗點說就是決策樹,說白了,這是一種依託於分類、訓練上的**樹,根據已知**、歸類未來。
之前的k-近鄰演算法也可以完成很多分類任務,但是他的缺點就是含義不清,說不清資料的內在邏輯,而決策樹則很好地解決了這個問題,他十分好理解。從儲存的角度來說,決策樹解放了儲存訓練集的空間,畢竟與一棵樹的儲存空間相比,訓練集的儲存需求空間太大了。
構造基本步驟:
(1)生成樹階段。選取部分受訓資料建立決策樹,決策樹是按廣度優先建立直到每個葉節點包括相同的類標記為止。
(2)決策樹修剪階段。用剩餘資料檢驗決策樹,如果所建立的決策樹不能正確回答所研究的問題,我們要對決策樹進行修剪直到建立一棵正確的決策樹。這樣在決策樹每個內部節點處進行屬性值的比較,在葉節點得到結論。從根節點到葉節點的一條路徑就對應著一條規則,整棵決策樹就對應著一組表示式規則。
問題:我們如何確定起決定作用的劃分變數。
用鳶尾花的例子來說這個問題思考的必要性。使用不同的思考方式,我們不難發現下面的決策樹也是可以把鳶尾花分成3類的。
為了找到決定性特徵,劃分出最佳結果,我們必須認真評估每個特徵。id3演算法以資訊熵和資訊增益以衡量標準。其他劃分的辦法為資訊增益率和基尼不純指數,對應的演算法為c4.5和cart。
資訊熵(entropy)主要指資訊的混亂程度,變數的不確定性越大,熵的值也就越大,熵的公式可以表示為
資訊增益(information gain)指的是劃分前後熵的變化,可以用下面公式表示:
(1)建立根節點n;
(2) if t都屬於同一類c,則返回n為葉節點,標記為類c;
(3) if t_attributelist為空或t中所剩的樣本數少於某給定值則返回n為葉節點,標記為t中出現最多的類;
(4) for each t_attributelist中的屬性計算資訊增益率information gain ratio;
(5) n的測試屬性test_attribute=t_attributelist中具有最高資訊增益率的屬性;
(6) if測試屬性為連續型則找到該屬性的分割閥值;
(7) for each 由節點n長出的新葉節點
(8)計算每個節點的分類錯誤,進行樹剪枝。
以鳶尾花資料為例子,使用c4.5演算法得到的分類樹見下圖:
分類與回歸樹(cart——classification and regression tree)) ,二叉決策樹
cart演算法描述
(1)建立根節點n;
(2)為n分配類別;
(3) if t都屬於同一類別or t中只剩乙個樣本
則返回n為葉節點,為其分配類別;
(4) for each t_attributelist 中的屬性
執行該屬性上的乙個劃分,計算此次劃分的gini係數;
(5) n的測試屬性test_attribute=t_attributelist中具有最小gini係數的屬性;
(6)劃分t得t1、t2兩個子集;
(7)呼叫cartformtree(t1);
(8)呼叫cartformtree(t2);
R分類演算法 決策樹演算法
它通過對訓練樣本的學習,並建立分類規則,然後依據分類規則,對新樣本資料進行分類 屬於有監督學習。優點 決策樹有易於理解和實現 決策樹可處理數值型和非數值型資料 基於條件的決策樹在party包裡 install.packages party ctree formula,data predic資料 pr...
分類演算法 決策樹演算法
決策樹是一種對例項進行分類的樹形結構,也是一種基本的分類與回歸方法。決策樹由結點 node 和有向邊 directed edge 組成。結點又分為兩種型別 內部結點 internal node 和葉結點 leaf node 內部結點表示乙個特徵或屬性,葉結點表示乙個分類。如下圖所示為乙個決策樹模型 ...
分類 決策樹演算法
匯入sklearn的內嵌鳶尾花資料集 from sklearn.datasets import load iris 匯入決策樹分類器,同時匯入計算交叉驗證值的函式cross val score from sklearn.tree import decisiontreeclassifier from ...