您好,登錄后才能下訂單哦!
這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)python中K-NN算法的作用是什么,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
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è)資訊頻道。
免責(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)容。