机器学习算法:KNN(k-近邻)|python与r语言代码实现

KNN(k-近邻)

它可以用于分类和回归问题。然而,它在工业中的分类问题中得到了更广泛的应用。K-近邻是一种简单的算法,它存储所有可用的案例,并通过k个邻近的多数投票对新案例进行分类。被分配给类的情况是最常见的K-近邻之间的距离函数测量。

这些距离函数可以是Euclidean, Manhattan, Minkowski 和 Hamming distance。前三个函数用于连续函数,第四个(Hamming)用于分类变量。如果k=1,则将该情况简单地分配给其最近邻的类。有时,进行KNN建模时选择K是一个挑战。

KNN可以很容易地映射到我们的真实生活中。如果你想了解一个你没有信息的人,你可能想了解他的密友和他所进入的圈子,并获得他/她的信息!

选择KNN之前要考虑的事项:

  • KNN在计算上是昂贵的
  • 变量应该归一化,否则较高的范围变量会对它产生偏差。
  • 在KNN类离群点、去噪前进行预处理阶段的工作

Python 代码

#Import Library
from sklearn.neighbors import KNeighborsClassifier
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset
# Create KNeighbors classifier object model 
KNeighborsClassifier(n_neighbors=6) # default value for n_neighbors is 5
# Train the model using the training sets and check score
model.fit(X, y)
#Predict Output
predicted= model.predict(x_test)

R 代码

library(knn)
x <- cbind(x_train,y_train)
# Fitting model
fit <-knn(y_train ~ ., data = x,k=5)
summary(fit)
#Predict Output 
predicted= predict(fit,x_test)
THE END