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算法缺点
效率低,耗时(会把当前样本,和训练集所有样本都对比计算一遍)
对训练数据依赖度特别大,对训练数据的容错性太差。(如果训练数据集中,有一两个数据是错误的,刚刚好又在需要分类的数值的旁边,这样就会直接导致预测的数据的不准确.)