Decision Tree演算法(決策樹)

2021-09-24 22:06:22 字數 2685 閱讀 7728

1.定義

決策樹是一種十分常用的分類方法。

決策樹是乙個樹結構(可以是二叉樹或非二叉樹)。其每個非葉節點表示乙個特徵屬性上的測試,每個分支代表這個特徵屬性在某個值域上的輸出,而每個葉節點存放乙個類別。使用決策樹進行決策的過程就是從根節點開始,測試待分類項中相應的特徵屬性,並按照其值選擇輸出分支,直到到達葉子節點,將葉子節點存放的類別作為決策結果。 2.

主要思想

決策樹分類主要思想是通過

特徵選擇和剪枝

在已有的樣本資料上建立一棵決策樹。

常見的決策樹演算法包括 id3、c4.5、cart、隨機森林等。

2.1特徵選擇

即如何選擇最優劃分屬性。

隨著劃分過程不斷進行,我們希望決策樹的分支結點所包含的樣本盡可能屬於同一類別,即結點的「純度」越來越高。如何衡量乙個資料集純度,這裡就需要引入資料純度函式。下面將介紹兩種表示資料純度的函式。

2.1.1.

資訊增益

「資訊熵」是度量樣本集合純度最常用的一種指標,假定當前樣本集合d中第k類樣本所佔的比例為

的值越小,則d的純度越高。

假定離散屬性a有v個可能的取值

資訊增益越大,則意味著使用屬性a來進行劃分所獲得的「純度提公升」越大。

id3決策樹演算法就是以資訊增益為準則來選擇劃分屬性。

eg:用sns社群中不真實賬號檢測的例子說明如何使用id3演算法構造決策樹。

日誌密度的資訊增益為

用同樣方法得到好友密度和是否使用真實頭像的資訊增益分別為0.553和0.033。所以根節點的劃分屬性為好友密度。遞迴上述演算法後將得到整棵決策樹。

id3演算法存在乙個問題,就是偏向於多值屬性,例如,如果存在唯一標識屬性id,則id3會選擇它作為劃分屬性,這樣雖然使得劃分純度最大,但這種劃分對分類幾乎毫無用處。所以id3的後繼演算法

c4.5

決策樹演算法不直接使用資訊增益,而是使用「增益率」來選擇最優劃分屬性

,試圖克服這個偏倚。

增益率的定義為

因為增益率準則對可取值數目較少的屬性有所偏好,因此,c4.5演算法並不是直接選擇增益率最大的劃分屬性,而是使用了乙個啟發式:先從候選劃分屬性中找出資訊增益高於平均水平的屬性,再從中選擇增益率最高的。

2.1.2.

基尼指數

cart

決策樹使用「基尼指數」來選擇劃分屬性。

資料集d的純度可用基尼值來度量:

反映了從資料集d中隨機抽取兩個樣本,其類別標記不一致的概率,因此,gini(d)越小,則資料集d的純度越高。

屬性a的基尼指數定義為:

最終選擇那個使得劃分後基尼指數最小的屬性作為劃分屬性。

2.2剪枝處理

剪枝是決策樹演算法對付「過擬合」的主要手段。

決策樹剪枝的基本策略有「預剪枝」和「後剪枝」。預剪枝是指在決策樹生成過程中,對每個結點在劃分前先進行估計,若當前結點的劃分不能帶來決策樹泛化效能提公升,則停止劃分並將當前結點標記為葉結點;後剪枝則是先從訓練集生成一棵完整的決策樹,然後自底向上地對非葉節點進行考察,若將該結點對應的子樹替換為葉節點能帶來決策樹泛化效能提公升,則將該子樹替換為葉節點,

一般情況下,後剪枝決策樹的欠擬合風險很小,泛化效能往往優於預剪枝決策樹,但其訓練時間開銷比未剪枝決策樹和預剪枝決策樹都要大得多。

2.3隨機森林(random forest 簡稱rf)

隨機森林其實就是在決策樹的基礎上,進一步在決策樹的訓練過程中引入了隨機屬性選擇。

資料隨機選取:

首先,從原始的資料集中採取有放回的抽樣,構造子資料集,子資料集的資料量是和原始資料集相同的。不同子資料集的元素可以重複,同乙個子資料集中的元素也可以重複。第二,利用子資料集來構建子決策樹,將這個資料放到每個子決策樹中,每個子決策樹輸出乙個結果。最後,如果有了新的資料需要通過隨機森林得到分類結果,就可以通過對子決策樹的判斷結果的投票,得到隨機森林的輸出結果了。

屬性隨機選取:

傳統的決策樹在選擇劃分屬性時是在當前結點的屬性集合(假定有d個屬性)中選擇乙個最優屬性;而在隨機森林中,對子決策樹的每個結點,先從該結點的屬性集合中隨機選擇乙個包含k個屬性的子集,然後再從這個子集中選擇乙個最優屬性用於劃分。這裡的引數k控制了隨機性的引入程度:若令k=d,則子決策樹的構建與傳統決策樹相同,一般情況下,推薦值

k=log2d

決策樹(decision tree)分類演算法

2.1 決策樹 decision tree 分類演算法 決策樹是以例項為基礎的歸納學習演算法。它從一組無次序 無規則的元組中推理出決策樹表示形式的分類規則。它採用自頂向下的遞迴方式,在決策樹的內部結點進行屬性值 的比較,並根據不同的屬性值從該結點向下分支,葉結點是要學習劃分的類。從根到葉結點的一條路...

3 1 決策樹 decision tree 演算法

0.機器學習中分類和 演算法的評估 1.什麼是決策樹 判定樹 decision tree 判定樹是乙個類似於流程圖的樹結構 其中,每個內部結點表示在乙個屬性上的測試,每個分支代表乙個屬性輸出,而每個樹葉結點代表類或類分布。樹的最頂層是根結點。2.機器學習中分類方法中的乙個重要演算法 3.構造決策樹的...

分類演算法之決策樹 Decision tree

通俗來說,決策樹分類的思想類似於找物件。現想象乙個女孩的母親要給這個女孩介紹男朋友,於是有了下面的對話 女兒 多大年紀了?母親 26。女兒 長的帥不帥?母親 挺帥的。女兒 收入高不?母親 不算很高,中等情況。女兒 是公務員不?母親 是,在稅務局上班呢。女兒 那好,我去見見。這個女孩的決策過程就是典型...