PT0171_機(jī)器學(xué)習(xí)實(shí)戰(zhàn)(2)-K-近鄰算法(2)-----計(jì)算機(jī)學(xué)習(xí)實(shí)戰(zhàn)課件_第1頁(yè)
PT0171_機(jī)器學(xué)習(xí)實(shí)戰(zhàn)(2)-K-近鄰算法(2)-----計(jì)算機(jī)學(xué)習(xí)實(shí)戰(zhàn)課件_第2頁(yè)
PT0171_機(jī)器學(xué)習(xí)實(shí)戰(zhàn)(2)-K-近鄰算法(2)-----計(jì)算機(jī)學(xué)習(xí)實(shí)戰(zhàn)課件_第3頁(yè)
PT0171_機(jī)器學(xué)習(xí)實(shí)戰(zhàn)(2)-K-近鄰算法(2)-----計(jì)算機(jī)學(xué)習(xí)實(shí)戰(zhàn)課件_第4頁(yè)
PT0171_機(jī)器學(xué)習(xí)實(shí)戰(zhàn)(2)-K-近鄰算法(2)-----計(jì)算機(jī)學(xué)習(xí)實(shí)戰(zhàn)課件_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、機(jī)器學(xué)習(xí)實(shí)戰(zhàn)K-近鄰算法(2)上一小結(jié)學(xué)習(xí)了簡(jiǎn)單的k-近鄰算法的實(shí)現(xiàn)方法,但是這并不是完整的k-近鄰算法流程,k-近鄰算法的一般流程:收集數(shù)據(jù):可以使用爬蟲(chóng)進(jìn)行數(shù)據(jù)的收集,也可以使用第三方提供的免費(fèi)或收費(fèi)的數(shù)據(jù)。一般來(lái)講,數(shù)據(jù)放在txt文本文件中,按照一定的格式進(jìn)行存儲(chǔ),便于解析及處理。準(zhǔn)備數(shù)據(jù):使用Python解析、預(yù)處理數(shù)據(jù)。分析數(shù)據(jù):可以使用很多方法對(duì)數(shù)據(jù)進(jìn)行分析,例如使用Matplotlib將數(shù)據(jù)可視化。測(cè)試算法:計(jì)算錯(cuò)誤率。使用算法:錯(cuò)誤率在可接受范圍內(nèi),就可以運(yùn)行k-近鄰算法進(jìn)行分類。實(shí)戰(zhàn)例程1:使用kNN改進(jìn)某約會(huì)網(wǎng)站的配對(duì)效果實(shí)戰(zhàn)背景海倫女士一直使用在線約會(huì)網(wǎng)站尋找適合自己的約

2、會(huì)對(duì)象。盡管約會(huì)網(wǎng)站會(huì)推薦不同的人選,但她并不是喜歡每一個(gè)人。經(jīng)過(guò)一番總結(jié),她發(fā)現(xiàn)自己交往過(guò)的人可以進(jìn)行如下分類:1.不喜歡的人2.魅力一般的人3.極具魅力的人海倫收集約會(huì)數(shù)據(jù)已經(jīng)有了一段時(shí)間,她把這些數(shù)據(jù)存放在文本文件datingTestSet.txt中,每個(gè)樣本數(shù)據(jù)占據(jù)一行,總共有1000行。海倫收集的樣本數(shù)據(jù)主要包含以下3種特征:1.每年獲得的飛行??屠锍虜?shù)2.玩視頻游戲所消耗時(shí)間百分比3.每周消費(fèi)的冰淇淋公升數(shù)在將上述特征數(shù)據(jù)輸入到分類器前,必須將待處理的數(shù)據(jù)的格式改變?yōu)榉诸惼骺梢越邮盏母袷?。分類器接收的?shù)據(jù)是什么格式的?從上節(jié)講解我們已經(jīng)知道,要將數(shù)據(jù)分類兩部分,即特征矩陣和對(duì)應(yīng)的分

3、類標(biāo)簽向量。下面我們先處理數(shù)據(jù)。截取的部分?jǐn)?shù)據(jù)格式如下:運(yùn)行結(jié)果如下:可以看到,我們已經(jīng)順利導(dǎo)入數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行解析,格式化為分類器需要的數(shù)據(jù)格式。接著我們需要了解數(shù)據(jù)的真正含義??梢酝ㄟ^(guò)友好、直觀的圖形化的方式觀察數(shù)據(jù)。準(zhǔn)備數(shù)據(jù):數(shù)據(jù)歸一化我們很容易發(fā)現(xiàn),上面方程中數(shù)字差值最大的屬性對(duì)計(jì)算結(jié)果的影響最大,也就是說(shuō),每年獲取的飛行??屠锍虜?shù)對(duì)于計(jì)算結(jié)果的影響將遠(yuǎn)遠(yuǎn)大于其他兩個(gè)特征,即玩視頻游戲所耗時(shí)間占比和每周消費(fèi)冰淇淋公斤數(shù)的影響。而產(chǎn)生這種現(xiàn)象的唯一原因,僅僅是因?yàn)轱w行??屠锍虜?shù)遠(yuǎn)大于其他特征值。但海倫認(rèn)為這三種特征是同等重要的,因此作為三個(gè)等權(quán)重的特征之一,飛行常客里程數(shù)并不應(yīng)該如此嚴(yán)

4、重地影響到計(jì)算結(jié)果。歸一化:處理這種不同取值范圍的特征值時(shí),我們通常采用的方法是將數(shù)值歸一化,如將取值范圍處理為到或者-到之間。下面的公式可以將任意取值范圍的特征值轉(zhuǎn)化為到區(qū)間內(nèi)的值:newValue = (oldValue - min) / (max - min)其中min和max分別是數(shù)據(jù)集中的最小特征值和最大特征值。雖然改變數(shù)值取值范圍增加了分類器的復(fù)雜度,但為了得到準(zhǔn)確結(jié)果,我們必須這樣做。運(yùn)行結(jié)果可以看到,我們已經(jīng)順利將數(shù)據(jù)歸一化了,并且求出了數(shù)據(jù)的取值范圍和數(shù)據(jù)的最小值,這兩個(gè)值是在分類的時(shí)候需要用到的,直接先求解出來(lái),也算是對(duì)數(shù)據(jù)預(yù)處理了測(cè)試算法:驗(yàn)證分類器 機(jī)器學(xué)習(xí)算法一個(gè)很重

5、要的工作就是評(píng)估算法的正確率,通常我們只提供已有數(shù)據(jù)的90%作為訓(xùn)練樣本來(lái)訓(xùn)練分類器,而使用其余的10%數(shù)據(jù)去測(cè)試分類器,檢測(cè)分類器的正確率。需要注意的是,10%的測(cè)試數(shù)據(jù)應(yīng)該是隨機(jī)選擇的,由于海倫提供的數(shù)據(jù)并沒(méi)有按照特定目的來(lái)排序,所以我們可以隨意選擇10%數(shù)據(jù)而不影響其隨機(jī)性。截取的部分運(yùn)行結(jié)果如下:我們可以改變函數(shù)datingClassTest內(nèi)變量hoRatio和分類器k的值,檢測(cè)錯(cuò)誤率是否隨著變量值的變化而增加。依賴于分類算法、數(shù)據(jù)集和程序設(shè)置,分類器的輸出結(jié)果可能有很大的不同。使用算法:構(gòu)建完整可用系統(tǒng) 我們可以給海倫一個(gè)小段程序,通過(guò)該程序海倫會(huì)在約會(huì)網(wǎng)站上找到某個(gè)人并輸入他的信

6、息。程序會(huì)給出她對(duì)男方喜歡程度的預(yù)測(cè)值。輸入數(shù)據(jù)(12,5000,0.5),預(yù)測(cè)結(jié)果是”你可能有些喜歡這個(gè)人”,也就是這個(gè)人魅力一般。一共有三個(gè)檔次:討厭、有些喜歡、非常喜歡,對(duì)應(yīng)著不喜歡的人、魅力一般的人、極具魅力的人。實(shí)戰(zhàn)背景 對(duì)于需要識(shí)別的數(shù)字已經(jīng)使用圖形處理軟件,處理成具有相同的色彩和大小:寬高是32像素x32像素。盡管采用本文格式存儲(chǔ)圖像不能有效地利用內(nèi)存空間,但是為了方便理解,我們將圖片轉(zhuǎn)換為文本格式,數(shù)字的文本格式如下。實(shí)戰(zhàn)例程2:手寫(xiě)識(shí)別系統(tǒng)與此同時(shí),這些文本格式存儲(chǔ)的數(shù)字的文件命名也很有特點(diǎn),格式為:數(shù)字的值_該數(shù)字的樣本序號(hào)對(duì)于這樣已經(jīng)整理好的文本,我們可以直接使用Pyth

7、on處理,進(jìn)行數(shù)字預(yù)測(cè)。數(shù)據(jù)集分為訓(xùn)練集和測(cè)試集,使用前面的方法,同樣可以實(shí)現(xiàn)分類。運(yùn)行的部分分類結(jié)果如下:Sklearn實(shí)現(xiàn)k-近鄰算法簡(jiǎn)介Scikit learn 也簡(jiǎn)稱sklearn,是機(jī)器學(xué)習(xí)領(lǐng)域當(dāng)中最知名的python模塊之一。sklearn包含了很多機(jī)器學(xué)習(xí)的方式:Classification 分類Regression 回歸Clustering 非監(jiān)督分類Dimensionality reduction 數(shù)據(jù)降維Model Selection 模型選擇Preprocessing 數(shù)據(jù)與處理使用sklearn可以很方便地讓我們實(shí)現(xiàn)一個(gè)機(jī)器學(xué)習(xí)算法。一個(gè)復(fù)雜度算法的實(shí)現(xiàn),使用sklea

8、rn可能只需要調(diào)用幾行API即可。所以學(xué)習(xí)sklearn,可以有效減少我們特定任務(wù)的實(shí)現(xiàn)周期。sklearn.neighbors模塊實(shí)現(xiàn)了k-近鄰算法。內(nèi)容如下:我們知道數(shù)字圖片是32x32的二進(jìn)制圖像,為了方便計(jì)算,我們可以將32x32的二進(jìn)制圖像轉(zhuǎn)換為1x1024的向量。對(duì)于sklearn的KNeighborsClassifier輸入可以是矩陣,不用一定轉(zhuǎn)換為向量,不過(guò)為了跟之前的k-近鄰算法分類器對(duì)應(yīng)上,這里也做了向量化處理。然后構(gòu)建kNN分類器,利用分類器做預(yù)測(cè)。部分結(jié)果如下:上述代碼使用的algorithm參數(shù)是auto,更改algorithm參數(shù)為brute,使用暴力搜索,我們會(huì)發(fā)現(xiàn),運(yùn)行時(shí)間變長(zhǎng)了。更改n_neighbors參數(shù),會(huì)發(fā)現(xiàn)不同的值檢測(cè)精度也是不同的。我們可以自己可以嘗試更改這些參數(shù)的設(shè)置,加深對(duì)其函數(shù)的理解。總結(jié)kNN算法的優(yōu)缺點(diǎn)優(yōu)點(diǎn):1.簡(jiǎn)單好用,容易理解,精度高,理論成熟,既可以用來(lái)做分類也可以用來(lái)做回歸;2.可用于數(shù)值型數(shù)據(jù)和離散型數(shù)據(jù);3.訓(xùn)練時(shí)間復(fù)雜度為O(n);無(wú)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論