全文共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的推薦標...
人人都看得懂的正規表示式教程
編寫驗證規則最流行和最簡單的方法就是正規表示式了,但唯一的乙個問題是正規表示式的語法太隱晦了,讓人蛋疼無比。很多開發者為了在專案中應用複雜的驗證,經常要使用一些小抄來記住正則式的複雜語法和各種常用命令。在這篇文章中,我將試圖讓大家明白什麼是正規表示式,以及如何更輕鬆地學習正規表示式。也許你是初學者,...
人人都看得懂的正規表示式教程
編寫驗證規則最流行和最簡單的方法就是正規表示式了,但唯一的乙個問題是正規表示式的語法太隱晦了,讓人蛋疼無比。很多開發者為了在專案中應用複雜的驗證,經常要使用一些小抄來記住正則式的複雜語法和各種常用命令。也許你是初學者,那以防萬一,我先來講講什麼是正規表示式吧 正規表示式可以幫助我們更好的描述複雜的文...