基尼係數的直觀解釋

我們在使用分類算法訓練數據後,評價分類模型的優劣時,經常會遇到一個詞,“基尼係數”。
那麼,什麼是基尼係數呢?

本文將嘗試用最簡單的方式介紹什麼是“基尼係數”以及它的計算方法和意義。
希望能讓大家對基尼係數有個直觀的印象,而不僅僅是記住它枯燥的計算公式。

1. 從分類模型開始

首先,先假設有一個分類案例,包含2個種類的數據(紫色和藍色),每個分類的數據有10個
image.png
上圖中的3種不同顏色的直線,代表3種不同參數的分類模型。
從圖中可以看出:

  • 綠色的線分類效果最好,完美分割了2個種類的數據
  • 黃色次之,有3個藍色的數據分類錯誤
  • 紅色的分類效果最差,有8個紫色的數據分類錯誤

對於上面這種簡單的數據(只有2個維度10個數據)和簡單的分類模型(線性分類)來說,
我們通過作圖可以一眼看出哪個分類模型的效果最好。

而現實中的實際情況,往往是不僅數據量大,數據維度也很多,分類模型也不會僅僅是一條二維直線。
這時,無法像上面那樣繪製出二維圖形來,那麼該如何去定量的評估一個分類模型的好壞呢?

2. 基尼係數

基尼係數就是這樣一種指標,通過一個分類模型的基尼係數Gini),來幫助我們判斷分類模型的好壞。

2.1. 綠色模型

對於綠色的分類模型:
image.png

分類過程 分類結果 概率
選擇 紫色 數據,並且被分類爲 紫色 正確 50%
選擇 紫色 數據,並且被分類爲 藍色 錯誤 0%
選擇 藍色 數據,並且被分類爲 藍色 正確 50%
選擇 藍色 數據,並且被分類爲 紫色 錯誤 0%

概率計算方式說明:比如對於表格第一行,【選擇 紫色 數據,並且被分類爲 紫色】的概率。
首先,【選擇 紫色 數據】的概率爲50%,因爲總共20條數據,紫色數據有10條
其次,【並且被分類爲** 紫色**】的概率爲100%,因爲綠色的模型可以正確分類所有的數據。
所以,【選擇 紫色 數據,並且被分類爲 紫色】的概率爲 50% x 100% = 50%

其餘3行的概率同上一樣計算。

2.2. 黃色模型

對於黃色的模型:
image.png

分類過程 分類結果 概率
選擇 紫色 數據,並且被分類爲 紫色 正確 50%
選擇 紫色 數據,並且被分類爲 藍色 錯誤 0%
選擇 藍色 數據,並且被分類爲 藍色 正確 35%
選擇 藍色 數據,並且被分類爲 紫色 錯誤 15%

對於上面表格中的第三行,【選擇 藍色 數據,並且被分類爲 藍色】爲什麼是35%
首先,【選擇 藍色 數據】的概率爲50%,因爲總共20條數據,藍色數據有10條
其次,【並且被分類爲 藍色】的概率是70%,從圖中可以看出黃色的模型對於10條藍色數據,有7條分類正確,有3條被錯誤分類到紫色的那一類中了。
所以,【選擇 藍色 數據,並且被分類爲 藍色】的概率爲 50% x 70% = 35%

表格第四行的15%也是同樣方式計算出的。

2.3. 紅色模型

最後,看下紅色的模型:
image.png

分類過程 分類結果 概率
選擇 紫色 數據,並且被分類爲 紫色 正確 10%
選擇 紫色 數據,並且被分類爲 藍色 錯誤 40%
選擇 藍色 數據,並且被分類爲 藍色 正確 50%
選擇 藍色 數據,並且被分類爲 紫色 錯誤 0%

計算方式前面已經介紹,這裏不再贅述。

2.4. 計算公式

3種不同效果的分類模型的分類效果統計在上面的表格中。
根據這些概率,我們如何給模型打分,從而確定模型好壞呢?

答案就是基尼係數Gini),這時我們再來看看基尼係數的計算公式:
\(Gini = \sum_{i=1}^C p(i)\times (1-p(i))\)
其中,\(C\)是數據的總類別數量,本文的例子中有兩類數據,所以 \(C=2\)
\(p(i)\)是選擇某個類別\(i\)的數據的概率。

下面來看看本文中的3個模型的基尼係數分別是多少。
我們假設 \(p(1)\)代表選中紫色數據的概率;\(p(2)\)代表選中藍色數據的概率

那麼,對於綠色模型,
綠色線上部分的基尼係數:\(G_{up} = p(1)\times(1-p(1)) + p(2)(1-p(2))\)
綠色線上部分,全是紫色數據,所以 \(p(1) = 1,\quad p(2)=0\)
因此,\(G_{up} = 1\times(1-1)+0\times(1-0) = 0\)
對於綠色線下部分,同理可計算出\(G_{down}=0\)

又因爲綠色線上下部分的數據量都是10條,各佔總數據量的50%
所以最終綠色模型整體的基尼係數:\(G_{green}=50\% G_{up} + 50\% G_{down} = 0\)

對於黃色模型:
黃色線上部分,10個紫色數據,3個藍色數據,所以 \(p(1) = \frac{10}{13},\quad p(2)=\frac{3}{13}\)
因此,\(G_{up} = \frac{10}{13}\times(1-\frac{10}{13})+\frac{3}{13}\times(1-\frac{3}{13}) \approx 0.355\)
黃色線下部分,0個紫色數據,7個藍色數據,所以 \(p(1) = 0,\quad p(2)=1\),所以\(G_{down}=0\)

又因爲黃色線上下部分的數據量分別13條7條,各佔總數據量的\(\frac{13}{20},\quad \frac{7}{20}\)
所以最終黃色模型整體的基尼係數:\(G_{yellow}=\frac{13}{20} G_{up} + \frac{7}{20} G_{down} \approx 0.23\)

對於紅色模型:
和上面同理計算出:\(G_{up}=0\)\(G_{down} \approx 0.494\)
\(G_{red} = \frac{2}{20} \times G_{up} + \frac{18}{20}\times G_{down} \approx 0.444\)

基尼係數是介於0~1的數值,且越小表示效果越好,
因爲 \(G_{green}=0<G_{yellow}=0.23<G_{red}=0.444\)
所以 綠色模型 優於 黃色模型 優於 紅色模型。

3. 總結

通過比較不同模型的基尼係數的值,不僅可以一下看出分類模型的好壞,還可以根據數值的大小了解究竟好多少。

基尼係數也爲我們訓練分類模型時提供了一個優化的方向,
一方面,對於不同的分類模型,我們可以通過比較它們的基尼係數,確定哪種模型效果更好;

另一方面,對於同一個分類模型,我們可以通過觀察其中每個分類的基尼係數(比如上面的\(G_{up}\)\(G_{down}\)),
從而確定那個分類的效果比較差,那就是重點優化的方向。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章