正規化吉尼不純度怎麼算?
原題
某組資料共 10 項標籤如下:A, A, A, A, A, B, B, B, B, B 若該標籤僅有 A、B 兩種,請問這組資料的「正規化吉尼不純度(Normalized Gini impurity)」為何?
白話
有 10 筆資料,5 筆屬於 A 類、5 筆屬於 B 類,各占一半,比例完全平均。這道題要你計算這組資料的「正規化吉尼不純度」。
問你:A、B 各 5 筆的資料集,正規化吉尼不純度是多少?
先自己選一個答案,再看完整解析。
一句話總結
A、B 各 5 筆(各占 50%),分佈最「混亂」。吉尼不純度 = 0.5,正規化後(除以最大值 0.5)= 1,代表完全不純(兩類各半是最混亂的狀態)。
情境
先感受問題:袋子裡什麼顏色球最容易亂
想像一個袋子裡裝了 10 顆球,你隨機摸出一顆,猜它是什麼顏色。
情境 1:袋子裡 10 顆全是紅球。你一定猜對,因為只有一種顏色。
情境 2:袋子裡 5 顆紅、5 顆藍。你猜對的機率只有 50%,完全靠運氣。
吉尼不純度(Gini Impurity)就是在量化這個「猜的難度」:袋子越「純」(只有一種),不純度越低;越「混」(各種顏色各半),不純度越高。
決策樹(Decision Tree)在選擇分裂節點時,就是要找能讓「分裂後的子集不純度最低」的特徵,也就是分完之後最容易猜中的分割方式。
舊方法
不了解不純度概念時會踩哪些坑
- 把「純」和「不純」搞反:直覺上「吉尼不純度 = 1 = 最高」聽起來像是最好,但事實相反:不純度高代表資料最混亂、最難預測,是決策樹最希望透過分裂來改善的狀態。
- 混淆吉尼不純度和吉尼係數:經濟學的「吉尼係數(Gini Coefficient)」是衡量收入不平等的指標,範圍也是 0 到 1,但意義完全不同。機器學習的「吉尼不純度(Gini Impurity)」是決策樹的分裂準則。名字相似但領域不同,不要混淆。
- 不知道正規化的目的:原始吉尼不純度的最大值隨類別數不同而改變(2 類最大 0.5,3 類最大 0.667)。正規化是除以最大值,把所有情況都縮放到 [0, 1],方便比較。
- 算公式時忘記平方:吉尼不純度的公式是 1 - Σ(p_i²),要對每個類別的比例取平方再相加再用 1 減,不是直接加各類別比例。
- 誤以為吉尼不純度 = 0 代表最差:吉尼不純度 = 0 代表完全純(只有一種類別),是決策樹分裂的「終極目標」,是最好的狀態,不是最差。
新方法
一步步算出正規化吉尼不純度
資料:A 5 筆、B 5 筆,共 10 筆。
Step 1:算各類別比例
p_A = 5/10 = 0.5,p_B = 5/10 = 0.5
Step 2:套吉尼不純度公式
Gini = 1 - (p_A² + p_B²) = 1 - (0.5² + 0.5²) = 1 - (0.25 + 0.25) = 1 - 0.5 = 0.5
Step 3:算正規化
2 個類別時,吉尼不純度的最大值 = 0.5(各占一半時)。
正規化吉尼不純度 = Gini / Gini_max = 0.5 / 0.5 = 1
意義:這組資料的混亂程度已經達到最大值,A 和 B 各占一半,完全無法預判下一筆是哪一類。
這就是選項 D 講的:1。
中級考試大概率會考程式碼跟公式,所以這部分你還是要學。但如果現在學起來很痛苦,可以先跳過,等讀完其他題目回頭再來。
Step 1 純故事版(不出現公式)
想像你在玩賓果:如果一個桶子裡全是「O」,你每次摸出來都是「O」,猜中率 100%,桶子是「純」的。如果桶子裡「O」和「X」各一半,猜什麼都只有 50% 機率,桶子是「最不純的」。
吉尼不純度就是在量化這個「桶子的混亂程度」。決策樹每次分裂,就是要找一個分法,讓左邊桶子和右邊桶子都盡量「純」(只有一種球),這樣分完後每個桶子的答案就更容易猜到。
正規化是把「混亂程度」統一縮放到 0-1,讓不同類別數的資料可以比較:0 = 完全純,1 = 最混亂。
Step 2 中文 ↔ 公式對照
| 白話說法 | 公式 |
|---|---|
| 第 i 類的比例 | p_i = n_i / N |
| 吉尼不純度(原始) | Gini = 1 - Σ(p_i²) |
| 二分類最大吉尼值 | Gini_max = 1 - 2×(1/2)² = 0.5 |
| k 類最大吉尼值 | Gini_max = 1 - k×(1/k)² = 1 - 1/k |
| 正規化吉尼不純度 | Normalized_Gini = Gini / Gini_max |
Step 3 符號角色表
- p_i:第 i 個類別在資料集中的比例(0 ≤ p_i ≤ 1,所有 p_i 加總 = 1)
- Σ:對所有類別加總(這裡是 A 和 B 兩個類別)
- Gini:原始吉尼不純度,範圍是 [0, Gini_max]
- Gini_max:該類別數下的最大吉尼值(所有類別比例相等時達到)
- Normalized_Gini:正規化後的不純度,範圍固定在 [0, 1]
Step 4 完整公式計算
資料:A 5 筆、B 5 筆,共 10 筆
Step 1:各類別比例
p_A = 5/10 = 0.5
p_B = 5/10 = 0.5
Step 2:吉尼不純度
Gini = 1 - (p_A² + p_B²)
= 1 - (0.5² + 0.5²)
= 1 - (0.25 + 0.25)
= 1 - 0.5
= 0.5
Step 3:2 類最大吉尼值
Gini_max = 1 - 1/k = 1 - 1/2 = 0.5
Step 4:正規化
Normalized_Gini = Gini / Gini_max = 0.5 / 0.5 = 1
對照:如果 A 10 筆、B 0 筆(完全純)
Gini = 1 - (1² + 0²) = 1 - 1 = 0
Normalized_Gini = 0 / 0.5 = 0 ← 完全純,不純度最低Step 5 自我複述
- A 有 8 筆、B 有 2 筆,原始吉尼不純度是多少?
- 吉尼不純度最大值出現在什麼情況?最小值出現在什麼情況?
- 為什麼決策樹要最小化吉尼不純度,而不是最大化它?
- 三個類別各占 1/3,正規化吉尼不純度是多少?
- 吉尼不純度和資訊熵(Entropy)在決策樹中各有什麼用?
錯選項
為什麼其他選項是錯的
A0
字面在說什麼
正規化吉尼不純度等於 0,代表完全純。
為什麼不對
0 表示資料完全只有一種類別(例如 10 筆全是 A)。但題目是 A 和 B 各 5 筆,各占 50%,這是最混亂的狀態,完全不可能是 0。只有當資料集「純到底」(只有一種類別)才會是 0。
誰會選錯
把「不純度 = 0 = 最低 = 最純」的方向搞反的人,或者沒有仔細代入公式計算的人。
B0.42
字面在說什麼
正規化吉尼不純度等於 0.42。
為什麼不對
0.42 這個數字跟常見吉尼計算沒有對應關係。如果有人誤把正規化步驟省略,直接用原始 Gini = 0.5,或者算錯比例,可能會得到一個類似的中間值,但都不是 0.42。這個選項是用來混淆「以為要除以不同分母」的考生。
誰會選錯
對正規化步驟不確定、用錯誤的 Gini_max 計算的人,或者沒有仔細算完整步驟的人。
C0.84
字面在說什麼
正規化吉尼不純度等於 0.84。
為什麼不對
0.84 大約是 0.5 × 1.68,或 0.42 × 2。這個數字可能是有人把吉尼不純度公式算成 Gini = 1 - Σp_i(沒有平方,直接加),2 × 0.5 = 1,1 - (0.5 + 0.5) = 0,然後用某種錯誤方式得到。無論如何,都不符合正確公式的計算結果。
誰會選錯
公式記錯(忘記平方),或把 3 分類的計算結果搬到 2 分類的人。
變形題
同個考點下次怎麼變形
不均等的情況,吉尼不純度比各半時低。
答案
p_A = 0.8,p_B = 0.2。Gini = 1 - (0.8² + 0.2²) = 1 - (0.64 + 0.04) = 1 - 0.68 = 0.32。正規化後:0.32 / 0.5 = 0.64。比 A、B 各半的情況(= 1)更低,因為 A 佔多數時資料相對「較純」。
吉尼不純度只是個數字,決策樹怎麼用它來決定分裂?
答案
決策樹計算每個特徵分裂後的「加權吉尼不純度」:左子節點的吉尼 × 左側樣本比例 + 右子節點的吉尼 × 右側樣本比例。選擇讓加權不純度最小的特徵作為分裂點。不純度降低最多的特徵,代表它把資料分得最「乾淨」。
決策樹有時用 Entropy,有時用 Gini,哪個更好?
答案
兩者的結果通常很接近。Entropy(資訊熵)需要計算 log 函數,計算成本稍高;Gini 只需要平方和,計算更快。CART 演算法(sklearn 的 DecisionTreeClassifier 預設)用 Gini;ID3 和 C4.5 用 Entropy。實務上兩者建出的樹差異很小,選哪個主要看運算效率考量。
全部一樣的話,不純度應該是 0。
答案
p_A = 1,p_B = 0。Gini = 1 - (1² + 0²) = 1 - 1 = 0。正規化後:0 / 0.5 = 0。吉尼不純度 = 0 代表資料完全純,這是決策樹分裂達到「葉節點」的終止條件:節點裡只有一種類別,不需要再分裂了。
三類各占一樣多,應該也是最混亂,正規化後也是 1?
答案
是的。p_A = p_B = p_C = 1/3。Gini = 1 - 3×(1/3)² = 1 - 3×(1/9) = 1 - 1/3 = 2/3 ≈ 0.667。Gini_max(3 類)= 1 - 1/3 = 2/3。正規化後:(2/3) / (2/3) = 1。無論幾類,只要各類別比例完全相等,正規化吉尼不純度永遠都是 1,代表達到該類別數下的最高混亂程度。
延伸