亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

kNN算法python實現

標簽:
Python

knn(k-Nearest Neighbor Classification)算法示例
又称k-近邻分类算法,是一种非参数模型,参数模型(逻辑回归,线性回归)
它的思想是:一个样本在特征空间中,总会有k个最相似(即特征空间中最邻近)的样本。其中,大多数样本属于某一类别,即该样本也属于这个类别。
分类-有监督学习
聚类-无监督学习
算法流程
(1)计算已知类别数据集中的点与当前点的距离
(2)按照距离递增次序排序
(3)选取与当前距离最小的k个点
(4)确定前k个点所在类别对应的出现频率
(5)返回前k个点出现频率最高的类别作为当前点的预测分类
算法实现:

import numpy as np
import matplotlib.pyplot as pltfrom matplotlib.colors import ListedColormapfrom sklearn.neighbors import KNeighborsClassifierfrom sklearn.datasets import load_iris# 加载数据iris = load_iris()# 方便画图,只采用两个特征X = iris.data[:, :2]
y = iris.target
print(iris.DESCR)
print(iris.feature_names)
cmap_light = ListedColormap(['#FFAAAA', '#AAFFAA', '#AAAAFF'])
cmap_bold = ListedColormap(['#FF0000', '#00FF00', '#0000FF'])# 初始化分类器对象clf = KNeighborsClassifier(n_neighbors=15, weights='uniform')
clf.fit(X, y)# 画出决策边界,用不同颜色表示x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1xx, 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)# 补充训练数据点plt.scatter(X[:,0],X[:,1],c=y,cmap=cmap_bold)
plt.xlim(xx.min(),xx.max())
plt.ylim(yy.min(),yy.max())
plt.title("3-Class classification (k=15,weights='uniform')")
plt.show()

运行结果

原文出处

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消