機(jī)器學(xué)習(xí)(Machine Learning) 介紹與決策樹(shù)(Decision Tree)
創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的蜀山網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
機(jī)器學(xué)習(xí)入門(mén)系列 是 個(gè)人學(xué)習(xí)過(guò)程中的一些記錄與心得。其主要以要點(diǎn)形式呈現(xiàn),簡(jiǎn)潔明了。
1.什么是機(jī)器學(xué)習(xí)?
一個(gè)比較概括的理解是: 根據(jù)現(xiàn)有的數(shù)據(jù),預(yù)測(cè)未來(lái)
2.核心思想 : Generalization
可以理解為,歸納、概括。就像是人的學(xué)習(xí)一樣,找出一件事物與與一件事物的聯(lián)系
3.歸納性的機(jī)器學(xué)習(xí)(Inductive machine learning)
其核心思想是使用訓(xùn)練數(shù)據(jù),并從其中摸索出一套適用于現(xiàn)實(shí)中的公式 f。然后用這個(gè)公式來(lái)預(yù)測(cè)現(xiàn)實(shí)中的結(jié)果
其分為四種類型
Regression 回歸類型: 主要適用于預(yù)測(cè)真實(shí)數(shù)據(jù)
Binary Classification : Yes 和 No 的分類問(wèn)題
Multiple Classification: 一對(duì)多的分類問(wèn)題
Ranking:相關(guān)性的排序問(wèn)題
4.第一個(gè)模型:決策樹(shù)
決策樹(shù)的核心思路:divide and conquer。 相信大家在學(xué)習(xí) 遞歸編程(recursion)的時(shí)候已經(jīng)很熟悉了這個(gè)概念了,那就是將問(wèn)題拆分到足夠簡(jiǎn)單,然后解決掉它。
為了將現(xiàn)實(shí)中的問(wèn)題轉(zhuǎn)化為我們可以使用的模型,在這里我們提出幾個(gè)概念
feature(特性):每次決策樹(shù)在做決定時(shí)要問(wèn)的問(wèn)題
feature value (特性值):簡(jiǎn)單理解為問(wèn)題的回答
training data: 訓(xùn)練數(shù)據(jù) > > 即有很多個(gè)例子的集合。每個(gè)例子 通常以 (x,y)形式形式出現(xiàn),x 是輸入數(shù)據(jù),y是實(shí)際的結(jié)果
5.決策樹(shù)的工作原理
例如下面的決策樹(shù)虛擬代碼取自《A Course in Machine Learning》(Hal)
其核心思路是,從剩余的feature 中選擇一個(gè)最有用的來(lái)提問(wèn),如果答案可以直接決定最終結(jié)果那么,跳出遞歸。如果沒(méi)有剩余的feature 來(lái)提問(wèn)那么返回默認(rèn)答案。否則將整個(gè)數(shù)據(jù)一分為二,分別是yes 組合 no 組,然后分成兩個(gè)分支繼續(xù)遞歸(16,17行)。
6.Loss Function,L(y , y*)
y 是真正的結(jié)果,y* 是機(jī)器預(yù)測(cè)的結(jié)果 L 代表 loss 函數(shù)。所以loss function 是用來(lái)量化錯(cuò)誤的。
根據(jù)不同類型可以分為:
Regression 回歸類:
Square loss: 平方損失: L(y , y*) = (y - y*)2
Absolute loss: 絕對(duì)損失: L(y , y*) = |y - y*|
Binary 是和否的問(wèn)題 以及多組分類問(wèn)題 :
L(y , y*) = 0 , if y = y* (零損失)
L(y , y*) = 1 , if y <> y*
7. 平均損失 Expected Loss
Expected loss = Sum(x,y)( D(x , y) * L(y , y*) )
D(x,y) 是 (x,y) 發(fā)生的概率分布,這里可以理解為(x,y)發(fā)生的概率。 所以就是期望值的一般算法, 把概率乘以損失 然后求和。
所以對(duì)于我們機(jī)器學(xué)習(xí)推導(dǎo)出來(lái)的方程式 f,需要Expected Loss 越低越好。
8.Inductive Bias 歸納偏見(jiàn)
不同的模型或者方法的選擇會(huì)產(chǎn)生不同的偏見(jiàn)。例如決策樹(shù)會(huì)比較擅長(zhǎng)處理單獨(dú)的一個(gè)一個(gè)的問(wèn)題,但是對(duì)于幾個(gè)feature相互作用的問(wèn)題就收效甚微。
在后續(xù)文章會(huì)繼續(xù)介紹不同模型的偏見(jiàn),這里先提出來(lái)。
9. Shallow Decision Tree
即有最大深度的 決策樹(shù),我們可以用一個(gè)深度 d 來(lái)限制決策樹(shù)的最深層數(shù)
10. Underfitting 和 Overfitting
這是兩個(gè)非常重要的概念, Underfitting 是指的,學(xué)的不夠多,例如學(xué)生什么都不學(xué)就去考試,自然不會(huì)考的好。
Overfitting 是指,學(xué)生學(xué)成了書(shū)呆子,只會(huì)死記硬背,考試的題目改幾個(gè)數(shù)字就完全不會(huì)做了。
在決策樹(shù)里面,如果一個(gè)feature 都不問(wèn),那么就是 underfitting ,什么都不學(xué),每次只返回訓(xùn)練數(shù)據(jù)里面的多數(shù)答案。
如果問(wèn)很多個(gè)feature 把 所有的feature都問(wèn)一邊就有可能 overfitting, 完全的照著訓(xùn)練數(shù)據(jù)在記憶而不是歸納學(xué)習(xí)。
11.數(shù)據(jù)分配
數(shù)據(jù) | 說(shuō)明 | 百分比 | |
Training Data 訓(xùn)練數(shù)據(jù) | 學(xué)習(xí)并總結(jié) 方程式 f | 70% | |
Development Data 研發(fā)數(shù)據(jù) | 調(diào)整超級(jí)參數(shù)(Hyperparameters) 來(lái)避免 underfitting 和 overfitting。 | 10% | |
Test Data 測(cè)試數(shù)據(jù) | 用來(lái)評(píng)估最后的學(xué)習(xí)效果。永遠(yuǎn)不要偷看測(cè)試數(shù)據(jù)!偷看測(cè)試數(shù)據(jù)就好像偷看了考試答卷,只會(huì)導(dǎo)致程序有針對(duì)性的編程。但是一旦到了真正的運(yùn)行環(huán)境,效果就會(huì)十萬(wàn)八千里。 | 20% |
超級(jí)參數(shù)(Hyperparameters) 是指的可以影響普通參數(shù)的參數(shù)。例如 剛剛最高詢問(wèn)深度 d,就是一個(gè)超級(jí)參數(shù)。
12.機(jī)器學(xué)習(xí)一般方法
將數(shù)據(jù)分成 70% 的訓(xùn)練數(shù)據(jù),10% 研發(fā)數(shù)據(jù), 20% 測(cè)試數(shù)據(jù)
for loop 所有的 hyperparameter (超級(jí)參數(shù))
使用訓(xùn)練數(shù)據(jù),訓(xùn)練模型 f
使用 研發(fā)數(shù)據(jù) 計(jì)算 Expected Loss (平均損失)
從上面所有的 超級(jí)參數(shù)中,選擇平均損失最低的那組作為最終模型
使用 測(cè)試數(shù)據(jù)對(duì)最終模型進(jìn)行評(píng)估
Reference
Hal, Daumé III. A Course In Machine Learning. 2nd ed. Self-published, 2017. Print.