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