溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

python中K-NN算法的作用是什么

發(fā)布時(shí)間:2021-04-27 16:46:08 來(lái)源:億速云 閱讀:189 作者:Leah 欄目:編程語(yǔ)言

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)python中K-NN算法的作用是什么,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

python有哪些常用庫(kù)

python常用的庫(kù):1.requesuts;2.scrapy;3.pillow;4.twisted;5.numpy;6.matplotlib;7.pygama;8.ipyhton等。

1、定義

如果?個(gè)樣本在特征空間中的k個(gè)最相似(即特征空間中最鄰近)的樣本中的大多數(shù)屬于某?個(gè)類(lèi)別, 則該樣本也屬于這個(gè)類(lèi)別。(起源:KNN最早是由Cover和Hart提出的一種分類(lèi)算法);俗話(huà)就是:根據(jù)“鄰居”來(lái)推斷出你的類(lèi)別。

2、基本流程

(1)計(jì)算已知類(lèi)別數(shù)據(jù)集中的點(diǎn)與當(dāng)前點(diǎn)之間的距離2)按距離遞增次序排序

(2)選取與當(dāng)前點(diǎn)距離最小的k個(gè)點(diǎn)

(3)統(tǒng)計(jì)前k個(gè)點(diǎn)所在的類(lèi)別出現(xiàn)的頻率

(4)返回前k個(gè)點(diǎn)出現(xiàn)頻率最高的類(lèi)別作為當(dāng)前點(diǎn)的預(yù)測(cè)分類(lèi)

3、實(shí)例

代碼涉及sklean庫(kù),需要安裝sklearn庫(kù)。

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
 
# 1.獲取數(shù)據(jù)
iris = load_iris()
 
# 2.數(shù)據(jù)基本處理:訓(xùn)練集的特征值x_train 測(cè)試集的特征值x_test 訓(xùn)練集的?標(biāo)值y_train 測(cè)試集的?標(biāo)值y_test,
'''
x: 數(shù)據(jù)集的特征值
y: 數(shù)據(jù)集的標(biāo)簽值
test_size: 測(cè)試集的??, ?般為float
random_state: 隨機(jī)數(shù)種?,不同的種?會(huì)造成不同的隨機(jī)采樣結(jié)果。 相同的種?采樣結(jié)果相同
'''
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=22)
 
# 3.特征工程 - 特征預(yù)處理
transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
x_test = transfer.transform(x_test)
 
# 4.機(jī)器學(xué)習(xí)-KNN
# 4.1 實(shí)例化一個(gè)估計(jì)器
estimator = KNeighborsClassifier(n_neighbors=5)
# 4.2 模型訓(xùn)練
estimator.fit(x_train, y_train)
 
# 5.模型評(píng)估
# 5.1 預(yù)測(cè)值結(jié)果輸出
y_pre = estimator.predict(x_test)
print("預(yù)測(cè)值是:\n", y_pre)
print("預(yù)測(cè)值和真實(shí)值的對(duì)比是:\n", y_pre==y_test)
 
# 5.2 準(zhǔn)確率計(jì)算
score = estimator.score(x_test, y_test)
print("準(zhǔn)確率為:\n", score)

上述就是小編為大家分享的python中K-NN算法的作用是什么了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI