日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

KNN算法 使用KNN对iris数据集分类

發(fā)布時間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 KNN算法 使用KNN对iris数据集分类 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、KNN算法 (K近鄰算法) 簡述

可以簡單粗暴的認為在判斷一個未知事物時,可以觀察離它最近的幾個樣本。

步驟:

尋找樣本數(shù)據(jù)集K個最近的元素

計算K個元素中各種類別的占比

占比最高的類別即為新數(shù)據(jù)的類別

K的取值對結(jié)果有很大的影響

如下圖,中間的圓要被賦予哪個類?是三角形還是正方形?如果K=3,由于三角形所占比例為2/3,圓將被賦予三角形那個類;如果K=7,由于正方形所占比例為4/7,圓將被賦予正方形那個類

計算復(fù)雜度優(yōu)化

  • 計算新數(shù)據(jù)(未知樣本)和K個訓(xùn)練樣本的距離dist;
  • 得到目前K個最鄰近樣本中的最大距離maxdist;
  • 如果第K+1個訓(xùn)練樣本......(剩余的所有訓(xùn)練樣本)的dist小于maxdist,則將該訓(xùn)練樣本作為K-最近鄰樣本(即替換掉上述K個最鄰近樣本中最大距離的那個訓(xùn)練樣本)。

邊界清晰--選取中心點 純度?

數(shù)據(jù)傾斜問題-- 增加權(quán)重

二、使用KNN對iris數(shù)據(jù)集分類

1、導(dǎo)入numpy、Matplotlib、sklearn類庫及其模塊

import numpy as np # Puplot 提供了一套和MATLAB類似的繪圖API,使得Matplotlib的機制更像MATLAB。 # 我們只需要調(diào)用Pyplot模塊所提供的函數(shù)就可以快速繪圖并設(shè)置圖表的各個細節(jié) import matplotlib.pyplot as plt from matplotlib.colors import ListedColormap from sklearn.neighbors import KNeighborsClassifier # 導(dǎo)入sklearn類庫及KNN模型 from sklearn.datasets import load_iris

?2、加載鳶尾花數(shù)據(jù)集

# 加載鳶尾花數(shù)據(jù)集,并分割成樣本特征X和樣本標簽Y iris = load_iris() X = iris.data[:,:2] # print(X) # print(X[:,0]) Y = iris.target

3、設(shè)置繪圖背景色和散點顏色映射表

# 繪制背景顏色和散點顏色映射表 cmap_light = ListedColormap(['#FFAAAA','#AAFFAA','#AAAAFF']) cmap_bold = ListedColormap(['#FF0000','#00FF00','#0000FF'])

4、 構(gòu)建KNN模型

clf = KNeighborsClassifier(n_neighbors= 10,weights='uniform')

5、?調(diào)用模型的fit函數(shù)進行訓(xùn)練

clf.fit(X,Y)

6、畫出決策邊界

# 畫出決策邊界 x_min , x_max = X[:,0].min() - 1, X[:,0].max() + 1 y_min , y_max = X[:,1].min() - 1, X[:,1].max() + 1 xx,yy = np.meshgrid(np.arange(x_min,x_max,0.02),np.arange(y_min,y_max,0.02))Z = clf.predict(np.c_[xx.ravel(),yy.ravel()]).reshape(xx.shape)plt.figure() plt.pcolormesh(xx,yy,Z,cmap=cmap_light)

?7、繪制預(yù)測結(jié)果圖

# 繪制預(yù)測結(jié)果圖 plt.scatter(X[:,0],X[:,1],c = Y,cmap=cmap_bold) plt.xlim(xx.min(),xx.max()) # xlim:當前圖形X軸的范圍 plt.ylim(yy.min(),yy.max()) plt.title('3_Class(k=10,weights=uniform)') plt.show

?8、結(jié)果展示

部分解釋

1、numpy.meshgrid()

(參考https://www.cnblogs.com/black-mamba/p/9186965.html)

x = np.array([0, 0.5, 1]) print('x: ',x) print('--------------') y = np.array([0,1]) xv,yv = np.meshgrid(x, y) # numpy.meshgrid(x軸上的坐標向量, y軸上的坐標向量) print('xv: \n',xv) print('--------------') print('y: ',y) print('--------------') print('yv: \n',yv) print("xv的維度:{},shape:{}".format(xv.ndim, xv.shape)) print("yv的維度:{},shape:{}".format(yv.ndim, yv.shape))plt.plot(xv, yv, 'o--') plt.grid(True) plt.show()

?

# 此處為了好觀看結(jié)果,將步長設(shè)置為1 print((np.arange(x_min,x_max,1)))

?

print((np.arange(y_min,y_max,1)))

?

?

2、numpy.c_?

# numpy.c_ 將一維數(shù)組作為列堆疊到二維數(shù)組中。 arr = np.c_[np.array([1,2,3]), np.array([4,5,6])] print(arr)

?

3、ravel()

ravel()方法將數(shù)組維度拉成一維數(shù)組

print((np.c_[xx.ravel(),yy.ravel()]))

代碼:

import numpy as np # Puplot 提供了一套和MATLAB類似的繪圖API,使得Matplotlib的機制更像MATLAB。 # 我們只需要調(diào)用Pyplot模塊所提供的函數(shù)就可以快速繪圖并設(shè)置圖表的各個細節(jié) import matplotlib.pyplot as plt from matplotlib.colors import ListedColormap from sklearn.neighbors import KNeighborsClassifier # 導(dǎo)入sklearn類庫及KNN模型 from sklearn.datasets import load_iris# 加載鳶尾花數(shù)據(jù)集,并分割成樣本特征X和樣本標簽Y iris = load_iris() X = iris.data[:,:2] # print(X) # print(X[:,0]) Y = iris.target# 繪制背景顏色和散點顏色映射表 cmap_light = ListedColormap(['#FFAAAA','#AAFFAA','#AAAAFF']) cmap_bold = ListedColormap(['#FF0000','#00FF00','#0000FF'])clf = KNeighborsClassifier(n_neighbors= 10,weights='uniform') clf.fit(X,Y)# 畫出決策邊界 x_min , x_max = X[:,0].min() - 1, X[:,0].max() + 1 y_min , y_max = X[:,1].min() - 1, X[:,1].max() + 1 xx,yy = np.meshgrid(np.arange(x_min,x_max,0.02),np.arange(y_min,y_max,0.02))Z = clf.predict(np.c_[xx.ravel(),yy.ravel()]).reshape(xx.shape)plt.figure() plt.pcolormesh(xx,yy,Z,cmap=cmap_light) # 這兩部分代碼一塊執(zhí)行# 繪制預(yù)測結(jié)果圖 plt.scatter(X[:,0],X[:,1],c = Y,cmap=cmap_bold) plt.xlim(xx.min(),xx.max()) # xlim:當前圖形X軸的范圍 plt.ylim(yy.min(),yy.max()) plt.title('3_Class(k=10,weights=uniform)') plt.show

?

?

?

?

?

?

?

總結(jié)

以上是生活随笔為你收集整理的KNN算法 使用KNN对iris数据集分类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 激情五月综合色婷婷一区二区 | 亚洲国产aⅴ成人精品无吗 日韩乱论 | 亚洲一区成人 | 国产精品丝袜视频无码一区69 | 原创真实夫妻啪啪av | 黄色91在线观看 | 日韩视频专区 | 国产精品主播 | av色噜噜 | sese视频在线观看 | 欧美三级免费看 | 深夜在线视频 | 91成人综合 | 日韩精品成人在线 | www.爱爱.com| 午夜免费播放观看在线视频 | 久久综合一区二区 | 天天干人人干 | 人妻互换一区二区三区四区五区 | av永久免费网站 | 国产成人久久精品麻豆二区 | 欧美精品1区2区 | 国产伦子伦对白视频 | 日韩中文一区二区 | 狠狠热免费视频 | 日韩精品av一区二区三区 | 无遮挡又爽又刺激的视频 | 女同动漫免费观看高清完整版在线观看 | 精品久久久中文字幕人妻 | 久久免费在线 | 天堂中文网 | 色女人网站 | 涩色网站 | 日韩不卡毛片 | 色8久久 | 就要操就要射 | 精品久久久久久中文字幕人妻最新 | 99在线视频免费 | 天天躁日日躁狠狠躁喷水 | 成人淫片 | 浪浪视频污 | 亚洲天堂h | 日韩电影一区二区三区 | 国产午夜啪啪 | 综合色网站 | 欧美三级免费看 | 69看片 | 日韩在线观看精品 | 777精品久无码人妻蜜桃 | 精品无码久久久久久久 | 玖玖爱国产 | 婷婷色婷婷开心五月四房播播 | 欧美巨乳在线观看 | 大尺度网站在线观看 | 中文视频一区二区 | 国产原创在线播放 | 久久久久久久久久久久 | 91成人免费视频 | 黄色片子看看 | 福利影院在线 | 拔插拔插海外华人永久免费 | 午夜激情成人 | 欧美在线精品一区 | 999国产精品视频 | 7788色淫网站小说 | 草久网| 欧美少妇色图 | 五月天丁香久久 | 午夜成人亚洲理伦片在线观看 | 久草福利视频 | 韩国黄色大片 | 手机av中文字幕 | 美女三级黄色片 | 欧美女人一区二区 | 亚洲免费三区 | h在线播放| av不卡免费在线观看 | 欧美亚一区二区三区 | 毛片成人网 | 国产小视频免费在线观看 | 亚洲乱妇老熟女爽到高潮的片 | 天堂网www在线 | 亚洲97视频 | 老师张开让我了一夜av | 日韩一区二区三区免费 | 久久高清无码视频 | 亚洲一级片网站 | 亚洲丁香花色 | 裸体视频软件 | 精品一二三 | 96精品国产 | np视频 | av导航网| 在线电影一区二区三区 | 日b影院| 操操操干干干 | 久久久久久久久久久久久久 | 成人免费毛片糖心 | 国产精品刺激 |