Python工程應(yīng)用-數(shù)據(jù)分析基礎(chǔ)與實(shí)踐課件-第4章_第1頁
Python工程應(yīng)用-數(shù)據(jù)分析基礎(chǔ)與實(shí)踐課件-第4章_第2頁
Python工程應(yīng)用-數(shù)據(jù)分析基礎(chǔ)與實(shí)踐課件-第4章_第3頁
Python工程應(yīng)用-數(shù)據(jù)分析基礎(chǔ)與實(shí)踐課件-第4章_第4頁
Python工程應(yīng)用-數(shù)據(jù)分析基礎(chǔ)與實(shí)踐課件-第4章_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第一章概論西華大學(xué)機(jī)器學(xué)習(xí)第四章K近鄰算法XXX學(xué)校XXX2022目錄Contents模型介紹案例:約會網(wǎng)站配對案例:手寫數(shù)字識別案例:鳶尾花品種識別

知識引入3

本章知識圖譜4模型介紹一1.1算法概述6K近鄰算法(K-NearestNeighbor,簡稱KNN),是一種根據(jù)不同樣本的特征值之間的距離進(jìn)行分類的算法。KNN中可以根據(jù)具體的情況選擇不同的“距離”衡量方式。它的基本思想是:如果一個(gè)樣本在特征空間中的K個(gè)最鄰近樣本中的大多數(shù)屬于某一個(gè)類別,那么該樣本也屬于這個(gè)類別。用一句話來總結(jié)KNN算法就是:近朱者赤,近墨者黑。1.1算法概述7KNN的優(yōu)點(diǎn)包括:算法簡單,易于理解,易于實(shí)現(xiàn),無需參數(shù)估計(jì),無需訓(xùn)練。精度高,對異常值不敏感(個(gè)別噪音數(shù)據(jù)對結(jié)果的影響不是很大)。適合對稀有事件進(jìn)行分類。KNN的缺點(diǎn)包括:對測試樣本分類時(shí)的計(jì)算量大,空間開銷大??山忉屝圆?,無法給出像后續(xù)章節(jié)將要介紹的決策樹模型那樣的規(guī)則。當(dāng)樣本不平衡時(shí),不能準(zhǔn)確的判別分類,這是KNN最大的缺點(diǎn)。例如一個(gè)類的樣本容量很大,而其他類樣本容量很小。這有可能導(dǎo)致當(dāng)輸入一個(gè)新樣本時(shí),新樣本的K個(gè)鄰居中始終都是大容量類的樣本占多數(shù),從而導(dǎo)致錯(cuò)誤分類??梢圆捎眉訖?quán)值的方法(和該樣本距離小的鄰居權(quán)值大)來改進(jìn)這個(gè)問題1.2算法基本原理8KNN算法的三個(gè)基本要素是K值的選擇、距離度量以及分類決策規(guī)則。KNN算法的具體實(shí)現(xiàn)過程如下:訓(xùn)練樣本集(包含每條樣本數(shù)據(jù)與分類的對應(yīng)關(guān)系)輸入無標(biāo)簽的數(shù)據(jù)新數(shù)據(jù)的每個(gè)特征與樣本集中數(shù)據(jù)對應(yīng)特征進(jìn)行比較(1)計(jì)算距離(2)排序(3)取K個(gè)新數(shù)據(jù)標(biāo)簽(K個(gè)數(shù)據(jù)中出現(xiàn)最多的分類標(biāo)簽)1.2算法基本原理9

1.2算法基本原理10K值小的時(shí)候近似誤差小,估計(jì)誤差大。K值大的時(shí)候近似誤差大,估計(jì)誤差小。1.3算法實(shí)現(xiàn)代碼11機(jī)器學(xué)習(xí)算法解決實(shí)際問題的步驟:收集數(shù)據(jù)分析數(shù)據(jù)數(shù)據(jù)預(yù)處理應(yīng)用模型測試算法構(gòu)建模型1.3算法實(shí)現(xiàn)代碼12偽代碼:對于每一個(gè)在數(shù)據(jù)集中的數(shù)據(jù)點(diǎn):計(jì)算目標(biāo)的數(shù)據(jù)點(diǎn)(需要分類的數(shù)據(jù)點(diǎn))與該數(shù)據(jù)點(diǎn)的距離將距離排序:從小到大選取前K個(gè)最短距離選取這K個(gè)中最多的分類類別返回該類別來作為目標(biāo)數(shù)據(jù)點(diǎn)的預(yù)測值1.3算法實(shí)現(xiàn)代碼13直接利用第三方庫的方法來實(shí)現(xiàn)KNN算法KNeighborsClassifier使用很簡單,核心操作包括三步:(1)創(chuàng)建KNeighborsClassifier對象,并進(jìn)行初始化。該類的構(gòu)造函數(shù)定義如下:sklearn.neighbors.KNeighborsClassifier(n_neighbors=5,weights=’uniform’,algorithm=’auto’,leaf_size=30,p=2,metric=’minkowski’,metric_params=None,n_jobs=None,**kwargs)主要參數(shù):n_neighbors:int型,可選,缺省值是5,就是KNN中的近鄰數(shù)量k值。1.3算法實(shí)現(xiàn)代碼14weights:計(jì)算距離時(shí)使用的權(quán)重,缺省值是“uniform”,表示平等權(quán)重。也可以取值“distance”,則表示按照距離的遠(yuǎn)近設(shè)置不同權(quán)重。還可以自主設(shè)計(jì)加權(quán)方式,并以函數(shù)形式調(diào)用。metric:距離的計(jì)算,缺省值是“minkowski”。當(dāng)p=2,metric=’minkowski’時(shí),使用的是歐式距離。p=1,metric=’minkowski’時(shí)為曼哈頓距離。(2)調(diào)用fit方法,對數(shù)據(jù)集進(jìn)行訓(xùn)練。函數(shù)格式:fit(X,y)說明:以X為特征向量,以y為標(biāo)簽值對模型進(jìn)行訓(xùn)練。(3)調(diào)用predict函數(shù),對測試集進(jìn)行預(yù)測。函數(shù)格式:predict(X)說明:根據(jù)給定的數(shù)據(jù),預(yù)測其所屬的類別標(biāo)簽。案例:約會網(wǎng)站配對二2.1問題介紹16案例背景:某約會網(wǎng)站的會員A希望通過該網(wǎng)站找到自己喜歡的人,他將自己心目中的會員分成三類:不喜歡的人(樣本分類1)、魅力一般的人(樣本分類2)、極具魅力的人(樣本分類3)。會員A希望在工作日的時(shí)候與魅力一般的人約會,在周末與極具魅力的人約會,而對于不喜歡的人直接排除掉。案例要求:他希望能通過他收集到的信息對會員進(jìn)行自動分類,分類依據(jù)有:玩視頻游戲所耗時(shí)間百分比、每年獲得的飛行??屠锍虜?shù)、每周消費(fèi)的冰淇淋公升數(shù)。2.2數(shù)據(jù)準(zhǔn)備171.數(shù)據(jù)準(zhǔn)備

首先需要將數(shù)據(jù)從文本文件中讀出,定義解析函數(shù)file2matrix,其輸入的參數(shù)為文件地址的字符串,輸出為樣本矩陣和分類標(biāo)簽向量。

1)收集數(shù)據(jù)2.2數(shù)據(jù)準(zhǔn)備181.數(shù)據(jù)準(zhǔn)備2)分析數(shù)據(jù)

將收集的數(shù)據(jù)進(jìn)行分析,調(diào)用方法讀取數(shù)據(jù),繪制散點(diǎn)圖觀察數(shù)據(jù)。

2.2數(shù)據(jù)準(zhǔn)備191.數(shù)據(jù)準(zhǔn)備3)處理數(shù)據(jù)

從表4-1的數(shù)據(jù)中可看出“每年獲得的飛機(jī)??屠锍虜?shù)”數(shù)值較大,對結(jié)果的影響程度遠(yuǎn)大于其他兩個(gè)特征。但我們認(rèn)為三個(gè)特征值權(quán)重相同。為了降低極大數(shù)值對結(jié)果的影響,這里使用歸一化進(jìn)行數(shù)據(jù)處理。

2.3算法實(shí)現(xiàn)20

其輸入?yún)?shù)包括被預(yù)測的對象、原始數(shù)據(jù)集、原始標(biāo)簽和臨近點(diǎn)個(gè)數(shù),輸出參數(shù)為被預(yù)測對象所屬的分類標(biāo)簽值,其中距離采用的是歐氏距離。4)構(gòu)建模型2.4算法測試215)測試算法

機(jī)器學(xué)習(xí)算法的一個(gè)重要工作是測評算法的正確率。通常我們會將90%的數(shù)據(jù)作為訓(xùn)練樣本來使用,剩余的10%數(shù)據(jù)作為測試集,用來測試算法的性能。本節(jié)我們使用錯(cuò)誤率來檢測算法性能。2.5算法應(yīng)用226)模型應(yīng)用

通過上述函數(shù),我們已經(jīng)實(shí)現(xiàn)了KNN算法相關(guān)所有的功能,接下來就可以通過輸入新的會員信息,通過上述模型來判斷該會員是否是自己喜歡的類型了。案例:手寫數(shù)字識別三3.1問題介紹案例背景:案例的數(shù)據(jù)集是人工手寫的0-9的數(shù)字圖像,每個(gè)圖像為32*32像素。案例要求:實(shí)現(xiàn)自動識別給定的手寫數(shù)字圖像對應(yīng)的數(shù)字是幾。3.2數(shù)據(jù)準(zhǔn)備首先我們要將圖像數(shù)據(jù)處理為一個(gè)向量,將32*32的二進(jìn)制圖像信息轉(zhuǎn)化為1*1024的向量。3.3算法實(shí)現(xiàn)定義分類算法導(dǎo)入訓(xùn)練數(shù)據(jù)處理訓(xùn)練數(shù)據(jù)運(yùn)用算法開始測試處理測試數(shù)據(jù)導(dǎo)入測試數(shù)據(jù)案例:鳶尾花品種識別四4.1問題介紹28案例背景:案例的數(shù)據(jù)集包含150個(gè)數(shù)據(jù)集,分為3類,每類50個(gè)數(shù)據(jù),每個(gè)數(shù)據(jù)包含4個(gè)屬性。案例要求:通過花萼長度,花萼寬度,花瓣長度,花瓣寬度4個(gè)屬性預(yù)測鳶尾花卉屬于(Setosa-山鳶尾,Versicolour-雜色鳶尾,Virginica-維吉尼亞鳶尾)三個(gè)種類中的哪一類。4.2數(shù)據(jù)準(zhǔn)備29

讀取了數(shù)據(jù)集之后還需要將數(shù)據(jù)拆分為訓(xùn)練集和測試集。對鳶尾花數(shù)據(jù)集進(jìn)行訓(xùn)練集和測試集的拆分操作,可以直接使用train_test_split()函數(shù)。

可以直接從iris.csv文件中讀取數(shù)據(jù),也可以直接從sklearn.datasets數(shù)據(jù)集中直接加載,因?yàn)檫@個(gè)經(jīng)典的數(shù)據(jù)集已經(jīng)被集成到sklearn庫里面了。X_train,X_test,y_train,y_test=cross_validation.train_test_split(train_data,train_target,test_size=0.4,random_state=0)1.獲取數(shù)據(jù)4.2數(shù)據(jù)準(zhǔn)備301.觀察數(shù)據(jù)

可以通過繪制散點(diǎn)圖觀察一下該數(shù)據(jù)集。4.3算法實(shí)現(xiàn)31獲取數(shù)據(jù)集劃分?jǐn)?shù)據(jù)集初始化分類器輸出測試結(jié)果測試數(shù)據(jù)測試模型訓(xùn)練數(shù)據(jù)訓(xùn)練模型

思考題32水果數(shù)據(jù)集由愛丁堡大學(xué)的IainMurray博士創(chuàng)建。他買了幾十個(gè)不同種類的桔子、橙子、檸檬和蘋果,并把它們的尺寸記錄在一張表格中。本例對水果數(shù)據(jù)進(jìn)行了簡單預(yù)處理,存為素材文件fruit_data.txt。文件中包含59個(gè)水果的測量數(shù)據(jù)。每行表示一個(gè)待測定水果,每列為一個(gè)特征。特征從左到右依次是:fruit_label:標(biāo)記值,表示水果的類別,1-蘋果,2-桔子,3-橙子,4-

溫馨提示

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

評論

0/150

提交評論