這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)python中K-NN算法的作用是什么,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的滄源網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
python常用的庫:1.requesuts;2.scrapy;3.pillow;4.twisted;5.numpy;6.matplotlib;7.pygama;8.ipyhton等。
1、定義
如果?個樣本在特征空間中的k個最相似(即特征空間中最鄰近)的樣本中的大多數(shù)屬于某?個類別, 則該樣本也屬于這個類別。(起源:KNN最早是由Cover和Hart提出的一種分類算法);俗話就是:根據(jù)“鄰居”來推斷出你的類別。
2、基本流程
(1)計算已知類別數(shù)據(jù)集中的點與當(dāng)前點之間的距離2)按距離遞增次序排序
(2)選取與當(dāng)前點距離最小的k個點
(3)統(tǒng)計前k個點所在的類別出現(xiàn)的頻率
(4)返回前k個點出現(xiàn)頻率最高的類別作為當(dāng)前點的預(yù)測分類
3、實例
代碼涉及sklean庫,需要安裝sklearn庫。
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 測試集的特征值x_test 訓(xùn)練集的?標(biāo)值y_train 測試集的?標(biāo)值y_test, ''' x: 數(shù)據(jù)集的特征值 y: 數(shù)據(jù)集的標(biāo)簽值 test_size: 測試集的??, ?般為float random_state: 隨機(jī)數(shù)種?,不同的種?會造成不同的隨機(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 實例化一個估計器 estimator = KNeighborsClassifier(n_neighbors=5) # 4.2 模型訓(xùn)練 estimator.fit(x_train, y_train) # 5.模型評估 # 5.1 預(yù)測值結(jié)果輸出 y_pre = estimator.predict(x_test) print("預(yù)測值是:\n", y_pre) print("預(yù)測值和真實值的對比是:\n", y_pre==y_test) # 5.2 準(zhǔn)確率計算 score = estimator.score(x_test, y_test) print("準(zhǔn)確率為:\n", score)
上述就是小編為大家分享的python中K-NN算法的作用是什么了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。