1. 寫在前面

近來感覺機(jī)器學(xué)習(xí),深度學(xué)習(xí)神馬的是越來越火了,從AlphaGo到Master,所謂的人工智能越來越NB,而我又是一個(gè)熱愛新潮事物的人,于是也來湊個(gè)熱鬧學(xué)習(xí)學(xué)習(xí)。最近在看《Machine Learning IN ACTION》(作者:Peter Harrington)這本書,感覺非常不錯(cuò)。該書不是單純的進(jìn)行理論講解,而是結(jié)合了許多小例子深度淺出地進(jìn)行實(shí)戰(zhàn)介紹。本博文作為學(xué)習(xí)筆記,用來記錄書中重點(diǎn)內(nèi)容和稍微地進(jìn)行知識(shí)點(diǎn)的補(bǔ)充,也希望給看到的人帶來一些幫助。

目前只看到了第2章,由于是剛開始,因此難度不大。在數(shù)學(xué)知識(shí)上,該章節(jié)主要涉及到了初級(jí)的線性代數(shù)(矩陣的運(yùn)算)和概率論知識(shí)。書中的代碼都是用Python 2.7寫的,主要用的是NumPy庫(kù)。本章介紹的是k-Nearest Neighbors(kNN,k-近鄰)算法,通過以下3個(gè)例子進(jìn)行說明。

2. kNN簡(jiǎn)介

對(duì)于一個(gè)能夠采用kNN算法求解的問題的前提通常是:首先需要有一些關(guān)于該問題的樣本數(shù)據(jù)集,稱為訓(xùn)練集合;然后每條數(shù)據(jù)都有對(duì)應(yīng)的標(biāo)簽,即我們知道每條數(shù)據(jù)所屬的分類。該類問題的提法通常是:當(dāng)給定一條未知標(biāo)簽的數(shù)據(jù)時(shí),我們能夠根據(jù)樣本數(shù)據(jù)分析出該數(shù)據(jù)的標(biāo)簽。kNN算法的做法是:將未知標(biāo)簽的數(shù)據(jù)和樣本數(shù)據(jù)集中的數(shù)據(jù)相比較,把和未知標(biāo)簽數(shù)據(jù)最“相近”的一些數(shù)據(jù)的標(biāo)簽作為未知標(biāo)簽數(shù)據(jù)的標(biāo)簽。由于“相近”的一些數(shù)據(jù)的標(biāo)簽可能各自都不相同,因此通常選取k個(gè)最為“相近”的標(biāo)簽,統(tǒng)計(jì)各標(biāo)簽出現(xiàn)的次數(shù),選取頻數(shù)最高者。這里“相近”的定義還需要給出。

下面結(jié)合3個(gè)實(shí)戰(zhàn)例子進(jìn)行講解。

3. 愛情片還是動(dòng)作片

第一個(gè)例子是如何判斷一部我們還沒有看過的電影是愛情片還是動(dòng)作片。直覺告訴我們,愛情片的親吻鏡頭較多,而動(dòng)作片的打斗鏡頭較多。為此我們統(tǒng)計(jì)了幾部愛情片和動(dòng)作片的親吻和打斗的鏡頭數(shù),同時(shí)也對(duì)待判斷的電影(記為電影X)做了統(tǒng)計(jì),我們希望借助于kNN算法判別出電影X是愛情片還是動(dòng)作片。

如下是統(tǒng)計(jì)結(jié)果:

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式

我想了解如何學(xué)習(xí)

姓名:
手機(jī):
留言:
 
    <bdo id="ualyw"></bdo>