KNN-K近鄰算法

KNN: k-NearestNeighbor(K個最近鄰)
KNN算法的核心思想是如果一個樣本在特徵空間中的k個最相鄰的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別,並具有這個類別上樣本的特性。

一句話描述:人以羣分,物以類聚

sklearn相關的代碼

from sklearn.neighbors import KNeighborsRegressor
from sklearn.metrics import mean_squared_error

knn = KNeighborsRegressor()
knn.fit(X_train,Y) #模型訓練
predictions = knn.predict(X_test) #模型預測

mse = mean_squared_error(Y_test,  predictions)#用均方根誤差rmse評估模型
rmse = more_features_mse**(1/2)

sklearn.neighbors.KNeighborsRegressor
The target is predicted by local interpolation of the targets associated of the nearest neighbors in the training set.

fit(self, X, y)
Fit the model using X as training data and y as target values

predict(self, X)
Predict the target for the provided data

KNN算法優點

模型簡單,不需要訓練模型

KNN算法缺點

效率低,耗時(會把當前樣本,和訓練集所有樣本都對比計算一遍)
對訓練數據依賴度特別大,對訓練數據的容錯性太差。(如果訓練數據集中,有一兩個數據是錯誤的,剛剛好又在需要分類的數值的旁邊,這樣就會直接導致預測的數據的不準確.)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章