劃分資料集,使被劃分的特徵作為決策樹的節點。通常採用二叉樹(也可以採用非二叉樹)作為最終形成的決策樹形式,即將資料集按照某個特徵進行劃分成兩個子資料集,並對這些子資料集遞迴地進行劃分,直到無法劃分為止。
劃分資料集的偽**:
檢測資料集中的每個子項是否屬於同一分類
if true then return 類標籤
else
尋找劃分資料集的最好特徵
劃分資料集
建立分支節點
for 每個劃分的子集
遞迴執行此過程並將返回結果增加到分支節點中
return 分支節點
在劃分資料集之前之後資訊發生的變化稱為資訊增益。
集合資訊的度量方式稱為夏農熵或簡稱為熵。
概率和頻率
這裡我們採用頻率來計算概率。假設乙個隨機變數 \(x\) 可取 \(n\) 個不同的值\(x_1, x_2, ..., x_n\),其中值 \(x_i\)出現的次數記為\(|x_i|\),則 \(x_i\) 出現的概率可表示為$$p(x_i)=\frac^n}$$
資訊量上面我們計算出了隨機變數 \(x\) 取 \(x_i\) 時的概率 \(p(x_i)\),則此時的資訊量定義為 $$i(x_i) = -\log_2$$
資訊熵資訊熵定義為隨機變數 \(x\) 所包含的所有資訊量的數學期望,即 $$h(x) = -\sum_^np(x_i)\log_2$$ 它表示這個隨機變數所包含資訊的隨機程度。熵值越大,則資料的隨機程度越高,反之隨機程度越低,資料趨向於集中於某乙個值。
給定資料集
\[x = \begin
x_ & x_ & ... & x_ \\
x_ & x_ & ... & x_ \\
. & . & & . \\
. & . & & . \\
. & . & & . \\
x_ & x_ & ... & x_
\end\]
以及標籤集
\[y = \begin y_1 & y_2 & ... & y_n \end^t
\]首先我們計算原資料集的熵 \(h_\),然後針對每乙個特徵 \(\vec, \vec, ..., \vec\),對資料集做劃分。
之後分別計算劃分後資料集的熵 \(h_i\),並計算它們和 \(h_\) 的差值(即資訊增益) \(g_i = h_ - h_i\)
最後找出最大的差值 \(\max\),將產生該差值的特徵 \(x_i\) 作為此次劃分的最佳特徵,並將其作為決策樹的乙個節點。
對剩餘的資料集,重複上述步驟,將整個資料集劃分完畢,並將劃分特徵作為決策樹的節點,構造決策樹。
\[d = \begin
1 & 1 \\
1 & 1 \\
1 & 0 \\
0 & 1 \\
0 & 1
\end, y = \begin 1 \\ 1 \\ 0 \\ 0 \\ 0 \end\]
首先按照第一列進行劃分。可以看到資料集中只包含0和1兩個數,因此如果我們按照第一列進行劃分,則資料集可以分為
\[d_1 = \begin
1 \\ 1 \\ 0
\end, d_2 = \begin
1 \\ 1
\end\]
其對應的標註集劃分為
\[y_1 = \begin
1 \\ 1 \\ 0
\end, y_2 = \begin
0 \\ 0
\end\]
分別計算 \(d_1\) 和 \(d_2\)的資訊熵,可以得到
\]由於原資料集被劃分成了兩個,所以用它們對應的標註在原資料集中的比例作為權重計算它們熵的和。
\[h_1=0.6\times0.918 + 0.4 \times 0 = 0.5508
\]資訊增益$$g_1 = h_ - h_1 = 0.971 - 0.5508 = 0.4202$$
同樣的,我們按第二列進行劃分
\[d'_1 = \begin
1 \\ 1 \\ 0 \\ 0
\end, d'_2 = \begin
1\end\]
對應的標註集劃分為
\[y'_1 = \begin
1 \\ 1 \\ 0 \\ 0
\end, y'_2 = \begin
0\end\]
則它們的資訊熵
\[h(d'_1) = 1, h(d'_2)=0
\]\[h_2 = 0.8 * 1 + 0.2 * 0 = 0.8
\]\[g_2 = h_ - h_2 = 0.971 - 0.8 = 0.171
\]由於 \(g_1 > g_2\),因此我們認為第一列的特徵更可以用於劃分。
因此我們先以第一列特徵作為樹根,構造一棵二叉決策樹
同理我們可以對剩下的部分進行劃分,由於過程很簡單,我們不再贅述過程。因此得到最後的決策樹
機器學習筆記二 決策樹
一顆決策樹包含乙個根結點,若干內部結點 對應乙個測試屬性 和若干葉結點 對應決策結果 決策流程採用分而治之的整體思想,根結點包含樣本全集,對各個特徵進行判斷,直至所有葉結點均對應一種類別的樣本。決策樹的關鍵在於劃分屬性的選擇,隨著劃分不斷進行,分支結點所包含樣本應盡可能屬於同一類別,即純度越來越高,...
機器學習二 決策樹學習
決策樹學習 從今天開始,堅持每天學習乙個機器學習的新知識,加油!決策樹學習是應用最廣的歸納推理演算法之一,是一種逼近離散值目標函式的方法,在這種方法中學習到的函式被表示為一顆決策樹。決策樹通過把例項從根結點排列到某個葉子結點來分類例項,葉子結點即為例項所屬的分類。樹上的每乙個結點指定了對例項的某個屬...
機器學習筆記 決策樹學習
決策樹學習是一種逼近離散值目標函式的方法,在這樣的方法中學習到的函式被表示為一棵決策樹。表示法 把例項從根節點排列到某個葉子節點來分類例項,葉子節點即為例項所屬的分類。樹上的每個節點指定了對例項的某個屬性 attribute 的測試,而且該節點的每個字尾分支相應於該屬性的乙個可能值。分類例項的方法是...