python中K-NN算法是什么?
本文教程操作環(huán)境:windows7系統(tǒng)、Python3.9.1,DELLG3電腦。
KNearestNeighbor算法?叫KNN算法,這個算法是機器學習???個?較經(jīng)典的算法,總體來說KNN算法是相對?
較容易理解的算法。
1、定義
如果?個樣本在特征空間中的k個最相似(即特征空間中最鄰近)的樣本中的大多數(shù)屬于某?個類別,則該樣本也屬于這個類別。(起源:KNN最早是由Cover和Hart提出的一種分類算法);俗話就是:根據(jù)“鄰居”來推斷出你的類別。
2、基本流程
(1)計算已知類數(shù)據(jù)集中的點與當前點之間的距離2)按距離遞增次序排序
(2)選取與當前點距離最小的k個點
(3)統(tǒng)計前k個點所在的類別出現(xiàn)的頻率
(4)返回前k個點出現(xiàn)頻率最高的類別作為當前點的預測分類
3、實例
代碼涉及sklean庫,需要安裝sklearn庫。
fromsklearn.datasetsimportload_iris
fromsklearn.model_selectionimporttrain_test_split
fromsklearn.preprocessingimportStandardScaler
fromsklearn.neighborsimportKNeighborsClassifier
#1.獲取數(shù)據(jù)
iris=load_iris()
#2.數(shù)據(jù)基本處理:訓練集的特征值x_train測試集的特征值x_test訓練集的?標值y_train測試集的?標值y_test,
'''
x:數(shù)據(jù)集的特征值
y:數(shù)據(jù)集的標簽值
test_size:測試集的??,?般為float
random_state:隨機數(shù)種?,不同的種?會造成不同的隨機采樣結(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.特征工程-特征預處理
transfer=StandardScaler()
x_train=transfer.fit_transform(x_train)
x_test=transfer.transform(x_test)
#4.機器學習-KNN
#4.1實例化一個估計器
estimator=KNeighborsClassifier(n_neighbors=5)
#4.2模型訓練
estimator.fit(x_train,y_train)
#5.模型評估
#5.1預測值結(jié)果輸出
y_pre=estimator.predict(x_test)
print("預測值是:\n",y_pre)
print("預測值和真實值的對比是:\n",y_pre==y_test)
#5.2準確率計算
score=estimator.score(x_test,y_test)
print("準確率為:\n",score)
以上就是python中K-NN算法的介紹,希望能對大家有所幫助。更多Python學習教程請關注IT培訓機構(gòu):千鋒教育。