Python機器學習項目化教程(微課視頻版)課件 第4章 k近鄰算法與非參數估計_第1頁
Python機器學習項目化教程(微課視頻版)課件 第4章 k近鄰算法與非參數估計_第2頁
Python機器學習項目化教程(微課視頻版)課件 第4章 k近鄰算法與非參數估計_第3頁
Python機器學習項目化教程(微課視頻版)課件 第4章 k近鄰算法與非參數估計_第4頁
Python機器學習項目化教程(微課視頻版)課件 第4章 k近鄰算法與非參數估計_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第4章k近鄰算法與非參數估計目錄CONTENTS4.1k近鄰算法原理4.2k近鄰算法的應用4.3非參數估計4.5本章小結4.4非參數估計算法的實現4.1k近鄰算法原理學習基礎學習認知能力信息素養(yǎng)高假設X_test為待標記的樣本,X_train為已標記的數據集,算法原理描述如下:(2)對數組D[]進行排序,取距離最近的k個點,記為X_knn。在X_knn中統(tǒng)計每個類別的個數,即class0在X_knn中有幾個樣本,class1在X_knn中有幾個樣本等。010203(1)遍歷X_train中的所有樣本,計算每個樣本與X_test的距離,并把距離保存在數組D[]中。待標記樣本的類別,就是在X_knn中樣本個數最多的那個類別。4.2k近鄰算法應用學習基礎學習認知能力信息素養(yǎng)高Iris鳶尾花數據集(iris_training.csv)的數據可分為3類(iris-setosa,iris-versicolour,iris-virginica),共150條記錄,每類各50個數據,每條記錄有4個屬性:花萼長度(SepalLength)、花萼寬度(SepalWidth)、花瓣長度(PetalLength)、花瓣寬度(PetalWidth),可以通過這4個特征預測鳶尾花屬于哪一類。column_names=['SepalLength','SepalWidth','PetalLength','PetalWidth','Species']iris_data=pd.read_csv("iris_training.csv",header=0,names=column_names)print(df_iris.head())4.2k近鄰算法應用學習基礎學習認知能力信息素養(yǎng)高Iris鳶尾花數據集(iris_training.csv)的數據可分為3類(iris-setosa,iris-versicolour,iris-virginica),共150條記錄,每類各50個數據,每條記錄有4個屬性:花萼長度(SepalLength)、花萼寬度(SepalWidth)、花瓣長度(PetalLength)、花瓣寬度(PetalWidth),可以通過這4個特征預測鳶尾花屬于哪一類。4.2k近鄰算法應用學習基礎學習認知能力信息素養(yǎng)高Iris鳶尾花數據集(iris_training.csv)的預測類別:[1.0,2.0,0.0,1.0,1.0,1.0,0.0,2.0,1.0,2.0,2.0,0.0,2.0,1.0,1.0,0.0,1.0,0.0,0.0,2.0,0.0,1.0,2.0,2.0,1.0,1.0,0.0,1.0,2.0,1.0]Accuracy:96.66666666666667%4.3非參數估計4.3.1非參數估計與參數估計1.直方圖估計法對于隨機變量X的一組抽樣,即使X的值是連續(xù)的,我們也可以劃分出若干寬度相同的區(qū)間,統(tǒng)計這組樣本在各個區(qū)間的頻率,并畫出直方圖。4.3非參數估計4.3.1非參數估計與參數估計2.Parzen矩形窗估計Parzen矩形窗是以目標樣本x作為中心點,根據窗口大小h,判斷樣本落入以x為中心的窗口內的樣本數,從而得到x的概率。Parzen矩形窗估計與直方圖估計的區(qū)別:Parzen矩形窗是根據目標樣本點x確定矩形窗,直方圖估計是先確定矩形窗,然后根據樣本點找相應的矩形窗。4.3非參數估計4.3.1非參數估計與參數估計3.Parzen正態(tài)核窗估計當滿足以下條件時,一維情況:4.3非參數估計4.3.2非參數估計的一般推導假設p(x’)是x’的密度函數,向量x落在區(qū)域R的概率為:N個向量中k個向量落在R內的概率為:k/N的均值和方差分別為:當N→∞時,頻率與概率的取值趨于相等,有:4.4基于k近鄰算法的實現下面我們對給定的魚類數據,分別利用直方圖估計、Parzen矩形窗估計和Parzen正態(tài)核估計實現kNN分類。給定的魚類數據存放在文件fish.xls中,包含一維數據和二維數據兩種類型,各2000條,一維數據的前6條如下:4.4基于k近鄰算法的實現1利用直方圖估計概率密度、分類數據預處理importxlrdfromoperatorimportitemgetterimportmatplotlib.pyplotaspltimportnumpyasnpreadbook=xlrd.open_workbook(r'Fish.xls')sheet=readbook.sheet_by_index(1)#索引的方式,從0開始sheet=readbook.sheet_by_name('long')#以名字的方式讀取工作表nrows=sheet.nrows#行ncols=sheet.ncols#列fish=[]4.2基于k近鄰算法的實現1利用直方圖估計概率密度、分類數據預處理foriinrange(1,nrows):v1=sheet.cell(i,0).valuev2=sheet.cell(i,1).valuefish.append([v1,v2,0,0,0])train0=fish[0:500]train1=fish[1000:1500]train=train0+train1test0=fish[500:1000]test1=fish[1500:]test=test0+test14.2基于k近鄰算法的實現2.直方圖概率密度估計設定窗口大小v,求出訓練集中樣本的最大值max0和最小值min0,計算訓練集被劃分為多少個區(qū)間bin。#統(tǒng)計訓練集中的數據有多少個落在窗口內

forjinrange(500):trainData0=train0[j][0]#第0類數據

trainData1=train1[j][0]#第1類數據

if((trainData0>=iRange)and(trainData0<=lRange)):k0=k0+1if((trainData1>=iRange)and(trainData1<=lRange)):k1=k1+1classPro0=k0/(n*v)classPro1=k1/(n*v)4.2基于k近鄰算法的實現3.對測試樣本分類比較窗口內分別屬于類別0和類別1的概率大小,將測試樣本newData劃為概率值較大的一類,并計算分類的準確率。4.2基于k近鄰算法的實現4.數據可視化為了將直方圖概率密度可視化,就是將每個區(qū)域間的數據概率以直方圖形式顯示出來,因此,需要首先統(tǒng)計出訓練集中每個區(qū)域內的樣本數,并計算出概率值。4.4基于k近鄰算法的實現2利用Parzen矩形窗估計概率密度、分類title="一維數據Parzen矩形窗估計(width=%.1f),precision1=%.3f,precision2=%.3f"%(v,accurate0,accurate1)test=np.array(test)print(test[:,0])fig=plt.figure()plt.subplot(211)plt.scatter(test[:500,0],test[:500,2],marker='s')plt.xlabel('Class0Data')plt.ylabel('Density')plt.show()4.4基于k近鄰算法的實現3利用Parzen正態(tài)核估計概率密度、分類4.5本章小結kNN是一種有監(jiān)督的分類算法,其算法思想簡單、易于實現、無需估計參數、分類準確率高,不足之處在于預測結果依賴于k值的選擇,易受到噪聲數據影響,特別是當樣

溫馨提示

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

評論

0/150

提交評論