上一篇中介紹了機(jī)器學(xué)習(xí)的基本概念蛹头,這一篇通過一個(gè)案例講解機(jī)器學(xué)習(xí)是如何實(shí)現(xiàn)的院塞。
機(jī)器學(xué)習(xí)中有一個(gè)非痴谕恚基礎(chǔ)的算法就是決策樹算法,名稱聽上去很高深莫測的樣子拦止,其實(shí)很簡單县遣,還是以機(jī)器學(xué)習(xí)jack這個(gè)人對人臉丑或帥的判斷。
首先抽樣一批照片汹族,讓jack來告訴機(jī)器他的主觀判斷萧求,為了簡化邏輯,我把抽樣數(shù)目精簡到了7個(gè)樣本顶瞒,并列了一個(gè)表格:
(注:同樣為了簡化邏輯夸政,我把每個(gè)項(xiàng)目結(jié)果都簡化了,比如臉型榴徐,我簡化為“長”和“扁”守问,實(shí)際應(yīng)用中有可能會(huì)有“圓”,“橢圓”坑资, “三角臉”耗帕,“國字臉”等等,但原理都一樣)
“決策樹”算法的核心就是根據(jù)已經(jīng)有的樣本數(shù)據(jù)做一個(gè)概率上的統(tǒng)計(jì)袱贮,然后當(dāng)機(jī)器遇到樣本中沒有的數(shù)據(jù)時(shí)仿便,會(huì)找出與樣本中最接近的概率,從而得出結(jié)論。
那它是如何實(shí)現(xiàn)的呢探越?也很簡單狡赐,就是把上面的表格變成一個(gè)流程圖一樣的樹狀結(jié)構(gòu),我們來一步步的實(shí)現(xiàn)這個(gè)樹結(jié)構(gòu):
首先我們把臉型作為起始點(diǎn):
在樣本列表中钦幔,長臉型的一共有4個(gè)人枕屉,而jack認(rèn)為帥的有3個(gè),所以對jack而言,長臉型帥的概率為3:4 ,也就是75%( 需要注意的是鲤氢,實(shí)際樣本數(shù)據(jù)會(huì)非常大搀擂,除非jack對長臉有特殊愛好,否則概率會(huì)更接近50%卷玉,而不是有如此大的對比哨颂,因?yàn)檫@才是僅僅第一個(gè)節(jié)點(diǎn),后面還有眼睛·嘴巴·鼻子的綜合考慮)
然后對于長臉相种,扁臉這個(gè)分支威恼,我們再建立“眼睛”的節(jié)點(diǎn)。比如在長臉的情況下:
注意:這個(gè)時(shí)候jack認(rèn)為大眼睛帥的概率是在長臉的這個(gè)分支下的寝并,也就是根據(jù)樣本表格箫措,長臉,大眼睛的狀況對jack有致命誘惑衬潦,100%認(rèn)為他帥了( 現(xiàn)實(shí)樣本中不太可能出現(xiàn)斤蔓,因?yàn)檫@才是第2個(gè)節(jié)點(diǎn))
根據(jù)以上邏輯,以此類推镀岛,最終建立一顆完整的樹
雖然樣本也許只有幾十個(gè)弦牡,但是建立完的這顆樹卻可以囊括所有情況。
比如有一種新的情況:
扁臉漂羊,大眼睛驾锰,塌鼻子,大嘴巴拨与,雖然樣本中沒有這種情況稻据,但是在決策樹中總能找到分枝
然后根據(jù)分支中的統(tǒng)計(jì),jack認(rèn)為這條分支最終結(jié)果是帥的概率為98%买喧, 那機(jī)器就可以推斷捻悯,jack是認(rèn)為這種臉型是帥的。
---------至于更專業(yè)而深入的幾點(diǎn)淤毛,如果你不是程序員今缚,就可以不看了----------
1:)如果選擇根節(jié)點(diǎn)?雖然理論上任何一項(xiàng)都可以作為根節(jié)點(diǎn)低淡,但是為了分支最簡化姓言,可以根據(jù)每個(gè)節(jié)點(diǎn)的熵值排序瞬项,作為結(jié)點(diǎn)的順序
2:)這個(gè)算法需要程序員自己去實(shí)現(xiàn)嗎?完全不需要何荚,比如ios囱淋,安卓等平臺(tái)都有官方實(shí)現(xiàn)好的算法api, 其他平臺(tái)也都有第三方的。這些通用算法你只需要知道里面的基本思路和一些術(shù)語就完全可以了