小孩都看得懂的基尼不純度

2021-10-21 15:36:58 字數 3459 閱讀 7265

全文共1343字,16幅圖,

預計閱讀時間8分鐘。

本文是「小孩都看得懂」系列的第十一篇,本系列的特點是極少公式沒有**只有圖畫只有故事。內容不長,碎片時間完全可以看完,但我背後付出的心血卻不少。喜歡就好!

小孩都看得懂的神經網路

小孩都看得懂的推薦系統

小孩都看得懂的逐步提公升

小孩都看得懂的聚類

小孩都看得懂的主成分分析

小孩都看得懂的迴圈神經網路

小孩都看得懂的 embedding

小孩都看得懂的熵、交叉熵和 kl 散度

小孩都看得懂的 p-value

小孩都看得懂的假設檢驗

小孩都看得懂的基尼不純度

0

定義

基尼不純度 (gini impurity) 用來度量資料集的多樣性 (diversity)。小孩肯定讀不懂這句話,那麼接著看下面。

如果你回答右圖更多樣,那麼你的直覺是對的。這個模糊的「多樣性」概念用精確的數學語言來定義就是基尼不純度。

基尼不純度是乙個數,當它數值越大,對應的資料集越多樣,即越不純。左右兩圖的基尼不純度分別為 0.42 和 0.7,右邊大些,因此資料多樣些。

不嚴謹舉例

接下來計算上面兩個 gini 數值。方法就是從資料集中任意選兩個資料 (組成一對) 然後看它們是否同異,

拿左圖舉例,選取 10 對,有 4 對中元素不同,那麼"gini" 數為 4/10 = 0.4。注意引號 「gini」 表示這不是精確的基尼不純度的數學定義,因為這只是一次實驗,但是這個 「gini」 可以用量化基尼不純度。

同理看右圖,選取 10 對,有 7 對中元素不同,那麼"gini" 數為 7/10 = 0.7。

右圖 「gini」 大,因此資料更多樣,符合直覺,因為右邊資料類別多,因此任選兩個而它們不同的概率當然大些。

下面來看看嚴謹計算。

4

嚴謹計算

拿右圖舉例,首先畫出所有對的 10 × 10 網格圖。

每對中元素一樣有下圖這麼多情況,16 + 9 + 4 + 1 = 30 中情況。

每對中元素不一樣有下圖這麼多情況,100 減去 30 等於 70 種情況。

那麼「不一樣的比例」就等於

70 / 100 = 0.7

整套計算流程總結於下圖,和上面唯一不同的是做了單位化,即把正方形網格的邊用 1 表示,而不是 10,那麼每對種含有藍色元素、紅色元素、綠色元素和黃色元素的概率為 0.4, 0.3, 0.2, 0.1。

複習

如果上面計算過程都看懂了,那麼拿左圖的例子再複習一邊。

推廣

機器學習注重推廣能力 (generalization),人類學習同樣注重,回想上面基尼不純度的具體計算過程,很輕易的就能寫出其通用數學公式,如下圖所示:

看到這裡,很多人會說,這個公式我在學決策樹時見過,就是

沒錯,就是上面這個公式。當時光看公式缺少直覺,帶著上面的影象聯想這個公司是不是覺得太自然了。

7

練習

趁熱打鐵做幾個練習,前兩個已經計算過。

如果資料集裡 10 個元素都一樣,那麼其基尼不純度為 0, 也就說該資料集純純的。

如果資料集裡 10 個元素都不一樣,那麼其基尼不純度為 0.9, 也就說該資料集雜雜的。

基尼不純度有可能為 1 麼?不可能,但當資料集中資料無限多而又都不一樣時,那麼基尼不純度接近 1。如下面公式,當 n 無限大,基尼不純度為 1。

8

應用

基尼不純度可用在決策樹做**的指標。當用樹來分類時,每次**越能分類資料越好,而越能分類資料這個能力就可以用基尼不純度來度量。

小孩們都懂了麼?

胖虎都看得懂的CSS入門

層疊樣式表 英語 cascading style sheets,簡寫css 又稱串樣式列表 級聯樣式表 串接樣式表 層疊樣式表 階層式樣式表,一種用來為結構化文件 如html文件或xml應用 新增樣式 字型 間距和顏色等 的計算機語言,由w3c定義和維護。目前最新版本是css2.1,為w3c的推薦標...

人人都看得懂的正規表示式教程

編寫驗證規則最流行和最簡單的方法就是正規表示式了,但唯一的乙個問題是正規表示式的語法太隱晦了,讓人蛋疼無比。很多開發者為了在專案中應用複雜的驗證,經常要使用一些小抄來記住正則式的複雜語法和各種常用命令。在這篇文章中,我將試圖讓大家明白什麼是正規表示式,以及如何更輕鬆地學習正規表示式。也許你是初學者,...

人人都看得懂的正規表示式教程

編寫驗證規則最流行和最簡單的方法就是正規表示式了,但唯一的乙個問題是正規表示式的語法太隱晦了,讓人蛋疼無比。很多開發者為了在專案中應用複雜的驗證,經常要使用一些小抄來記住正則式的複雜語法和各種常用命令。也許你是初學者,那以防萬一,我先來講講什麼是正規表示式吧 正規表示式可以幫助我們更好的描述複雜的文...