決策樹是通過一系列規則對資料進行分類的過程。它提供一種在什麼條件下會得到什麼值的類似規則的方法。決策樹分為分類樹和回歸樹兩種,分類樹對離散變數做決策樹,回歸樹對連續變數做決策樹。
cart和c4.5支援資料特徵為連續分布時的處理,主要通過使用二元切分來處理連續型變數,即求乙個特定的值-**值:特徵值大於**值就走左子樹,或者就走右子樹。這個**值的選取的原則是使得劃分後的子樹中的「混亂程度」降低,具體到c4.5和cart演算法則有不同的定義方式。
id3演算法由ross quinlan發明,建立在「奧卡姆剃刀」的基礎上:越是小型的決策樹越優於大的決策樹(be ******簡單理論)。id3演算法中根據資訊理論的資訊增益評估和選擇特徵,每次選擇資訊增益最大的特徵做判斷模組。id3演算法可用於劃分標稱型資料集,沒有剪枝的過程,為了去除過度資料匹配的問題,可通過裁剪合併相鄰的無法產生大量資訊增益的葉子節點(例如設定資訊增益閥值)。使用資訊增益的話其實是有乙個缺點,那就是它偏向於具有大量值的屬性--就是說在訓練集中,某個屬性所取的不同值的個數越多,那麼越有可能拿它來作為**屬性,而這樣做有時候是沒有意義的,另外id3不能處理連續分布的資料特徵,於是就有了c4.5演算法。cart演算法也支援連續分布的資料特徵。
c4.5是id3的乙個改進演算法,繼承了id3演算法的優點。c4.5演算法用資訊增益率來選擇屬性,克服了用資訊增益選擇屬性時偏向選擇取值多的屬性的不足在樹構造過程中進行剪枝;能夠完成對連續屬性的離散化處理;能夠對不完整資料進行處理。c4.5演算法產生的分類規則易於理解、準確率較高;但效率低,因樹構造過程中,需要對資料集進行多次的順序掃瞄和排序。也是因為必須多次資料集掃瞄,c4.5只適合於能夠駐留於記憶體的資料集。
cart演算法的全稱是classification and regression tree,採用的是gini指數(選gini指數最小的特徵s)作為**標準,同時它也是包含後剪枝操作。id3演算法和c4.5演算法雖然在對訓練樣本集的學習中可以盡可能多地挖掘資訊,但其生成的決策樹分支較大,規模較大。為了簡化決策樹的規模,提高生成決策樹的效率,就出現了根據gini係數來選擇測試屬性的決策樹演算法cart。
2、數學原理與演算法流程
通俗來講,決策樹的構建過程就是將資料根據其特徵分布劃分到不同的區域,使得同乙個區域的樣本有盡可能一致的類別標籤。在決策樹構建的過程中,我們需要乙個衡量標準來確定每次資料劃分所帶來的收益,這個標準就是資訊熵,以0-1二分類問題為例,衡量乙個節點的資訊熵公式如下:
熵越高,則混合的資料也越多,得到熵之後,就可以按照獲得最大增益的方式來劃分資料集。
然後根據標籤劃分資料集,計算每個資料集的不純度。
偽**如下:
if so return 類標籤:
else
尋找劃分資料集的最好特徵
劃分資料集
建立分支節點
for 每個劃分的子集
呼叫函式createbranch並增加返回結果到分支節點
return 分支節點
3、python呼叫及sklearn調參
- max_depth:樹的最大深度,也就是說當樹的深度到達max_depth的時候無論還有多少可以分支的特徵,決策樹都會停止運算.
- min_samples_split: **所需的最小數量的節點數.當葉節點的樣本數量小於該引數後,則不再生成分支.該分支的標籤分類以該分支下標籤最多的類別為準
- min_samples_leaf; 乙個分支所需要的最少樣本數,如果在分支之後,某乙個新增葉節點的特徵樣本數小於該超引數,則退回,不再進行剪枝.退回後的葉節點的標籤以該葉節點中最多的標籤你為準
- min_weight_fraction_leaf: 最小的權重係數
- max_leaf_nodes:最大葉節點數,none時無限制,取整數時,忽略max_depth
決策樹例項及原理
鐵達尼號 生死 import pandas as pd from sklearn.tree import decisiontreeclassifier 決策樹分類器。from sklearn.feature extraction import dictvectorizer 將特徵值對映列表轉換為向量...
決策樹演算法原理簡介
1,決策樹概念簡介 不同的演算法模型適合於不同型別的資料。首先,在了解樹模型之前,自然想到樹模型和線性模型有什麼區別呢?其中最重要的是,樹形模型是乙個乙個特徵進行處理,之前線性模型是所有特徵給予權重相加得到乙個新的值。決策樹與邏輯回歸的分類區別也在於此,邏輯回歸是將所有特徵變換為概率後,通過大於某一...
SSAS決策樹演算法原理
microsoft 決策樹演算法是由 microsoft sql server analysis services 提供的分類和回歸演算法,用於對離散和連續屬性進行 性建模。對於離散屬性,該演算法根據資料集中輸入列之間的關係進行 對於連續屬性,該演算法使用線性回歸確定決策樹的拆分位置。如果將多個列設...