摘要:好了,廢話不多說,馬上開講第一個(gè)機(jī)器學(xué)習(xí)的算法,算法。另外,本文題目是機(jī)器學(xué)習(xí)從入門到放棄之算法而非機(jī)器學(xué)習(xí)從入門到放棄算法這樣,因?yàn)槿绻呛笳撸橙瘴乙獥壙泳蜁?huì)觸發(fā)我的強(qiáng)迫癥,而前者并不會(huì),哈哈哈。
談起機(jī)器學(xué)習(xí),真是令人心生向往同時(shí)又讓人頭痛不已。
心生向往是因?yàn)闄C(jī)器學(xué)習(xí)在很多方面都已經(jīng)展現(xiàn)出其魅力,在人工智能的領(lǐng)域比如說AlphaGo,計(jì)算機(jī)視覺領(lǐng)域的人臉識(shí)別,車牌識(shí)別,靠近生活的有推薦系統(tǒng),用戶畫像,情感分析等等,都或多或少用到機(jī)器學(xué)習(xí)的知識(shí)。其中大部分應(yīng)用是相當(dāng)能滿足程序員心中的極客精神的
但令人頭不痛不已的當(dāng)你去涉足機(jī)器學(xué)習(xí)這個(gè)領(lǐng)域的時(shí)候,你會(huì)發(fā)現(xiàn)其中涉及大量的數(shù)學(xué)知識(shí),這對(duì)很多程序員來說都很不友好。
但沒關(guān)系,程序員應(yīng)該是工程師,而不是科學(xué)家,我們要做的是學(xué)會(huì)把理論落實(shí)成為生產(chǎn)力。
因此本系列將盡可能降低數(shù)學(xué)的描述(避免一長串的數(shù)學(xué)證明)來描述機(jī)器學(xué)習(xí)算法的基本原理。如果需要對(duì)算法進(jìn)行深入了解和學(xué)習(xí),那么讀者還是應(yīng)該學(xué)習(xí)算法背后的數(shù)學(xué)原理。
好了,廢話不多說,馬上開講第一個(gè)機(jī)器學(xué)習(xí)的算法,KNN算法。
KNN算法 算法背景假設(shè),你是一個(gè)電影公司的影片分類員,你需要從一大堆影片里面分類出武俠片和愛情片,用肉眼一部部看肯定不科學(xué),現(xiàn)在有一個(gè)程序能識(shí)別影片中的鏡頭,聰明的你想到了又么么噠的場面的一定是愛情片,有廝打場面的就是武俠片。
其中,么么噠和廝打兩種場面則稱為特征
你把這兩種特征放入程序里面一分類,咦,怎么錯(cuò)這么多?!
然后,你決定打開其中一兩個(gè)錯(cuò)誤的結(jié)果看看……
咦,剛剛還刀劍相向的女主角怎么怎么和男主角吻了起來,臥槽,那可是你的殺父仇人啊喂,哦,原來男主角是被奸人所逼……
咦,這愛情片男女主角怎么吻著吻著就廝打起來,臥槽,還要脫衣服,天啊,我還是個(gè)孩子……
你終于明白,錯(cuò)誤的原因是因?yàn)闊o法將么么噠和廝打作為單一特征,這時(shí),你明白需要重設(shè)設(shè)計(jì)分類的標(biāo)準(zhǔn)了。
算法設(shè)計(jì)牛逼的你發(fā)現(xiàn),雖然無法將么么噠和廝打作為唯一標(biāo)準(zhǔn),但是是可以作為參考的。比如說,在武俠片中雖然也會(huì)出現(xiàn)么么噠的鏡頭,但顯然廝打鏡頭仍會(huì)占主流。
于是你對(duì)以往已經(jīng)分好類別的電影做出統(tǒng)計(jì),并的做出以下表格。
其中這部分樣本又叫做訓(xùn)練集
X=么么噠鏡頭的數(shù)量
Y=廝打鏡頭的數(shù)量
0代表愛情片,1代表武俠片
電影ID | X | Y | 類型 |
---|---|---|---|
1 | 10 | 2 | 0 |
2 | 8 | 3 | 0 |
3 | 2 | 6 | 1 |
…… | …… | …… | …… |
把它畫出二維圖大概是這樣:
黃點(diǎn)代表1類電影的分布,綠色代表0類電影的分布,紫色代表需要分類的電影樣本。
那么該怎么判別紫色的那顆點(diǎn)所在的類別呢?
沒錯(cuò),KNN就是最簡單粗暴的方法,首先判別紫色點(diǎn)離黃色群體和離綠色群體距離,然后將紫色判斷為距離最近的那個(gè)群體。
這里具體指出利用KNN的具體步驟:
計(jì)算上述圖中所有點(diǎn)到達(dá)待測點(diǎn)的歐式距離(勾股定理計(jì)算)。
選出離待測點(diǎn)最近的K個(gè)點(diǎn),k由用戶指定。
計(jì)算在這k個(gè)點(diǎn)中,各個(gè)類型的個(gè)數(shù)
將個(gè)數(shù)最多的類型作為預(yù)測點(diǎn)的類型。
代碼實(shí)現(xiàn)KNN代碼實(shí)現(xiàn),收錄我的github上,點(diǎn)擊一下連接并進(jìn)入classify目錄下就可訪問
后話github
在我的github中會(huì)慢慢更新TO DO LIST里提及的算法,但文章因需要語言總結(jié)會(huì)稍慢一點(diǎn)。
另外,本文題目是機(jī)器學(xué)習(xí)從入門到放棄之KNN算法而非機(jī)器學(xué)習(xí)從入門到放棄(1):KNN算法這樣,因?yàn)槿绻呛笳撸橙瘴乙獥壙泳蜁?huì)觸發(fā)我的強(qiáng)迫癥,而前者并不會(huì),哈哈哈。
如有錯(cuò)誤,歡迎指點(diǎn)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/38014.html
摘要:分類問題回到本系列的第一篇文章機(jī)器學(xué)習(xí)從入門到放棄之算法,在里面有這樣的一個(gè)問題黃點(diǎn)代表類電影的分布,綠色代表類電影的分布,紫色代表需要分類的電影樣本。 分類問題 回到本系列的第一篇文章機(jī)器學(xué)習(xí)從入門到放棄之KNN算法,在里面有這樣的一個(gè)問題 showImg(https://sfault-image.b0.upaiyun.com/106/875/1068758747-576918491...
閱讀 1113·2021-11-19 09:40
閱讀 969·2021-11-12 10:36
閱讀 1259·2021-09-22 16:04
閱讀 3106·2021-09-09 11:39
閱讀 1266·2019-08-30 10:51
閱讀 1882·2019-08-30 10:48
閱讀 1221·2019-08-29 16:30
閱讀 464·2019-08-29 12:37