2018文章源自随机的未知-https://sjdwz.com/11100.html
KNN基本思想
KNN是通过测量不同特征值之间的距离进行分类。它的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别,其中K通常是不大于20的整数。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。文章源自随机的未知-https://sjdwz.com/11100.html
使用图来说话比较方便:文章源自随机的未知-https://sjdwz.com/11100.html
原始数据的散点图如下:文章源自随机的未知-https://sjdwz.com/11100.html
文章源自随机的未知-https://sjdwz.com/11100.html
如果增加一个数据点(增加的数据点用绿色来表示)如下:文章源自随机的未知-https://sjdwz.com/11100.html
文章源自随机的未知-https://sjdwz.com/11100.html
那么新增的数据点归为哪一类呢?文章源自随机的未知-https://sjdwz.com/11100.html
如果我们测量3个点分别到绿色点的距离,那么很显然归为蓝色这一类。文章源自随机的未知-https://sjdwz.com/11100.html
如此便可以很形象的说,knn,就是选择k个点与新增加的点测量距离,距离最近点最多的意味着得到的票数越多,便归为那一类。文章源自随机的未知-https://sjdwz.com/11100.html
文章源自随机的未知-https://sjdwz.com/11100.html
使用python进行编程:
sklearn中的KNN
import numpy as np
from sklearn.neighbors import KNeighborsClassifier
import matplotlib.pyplot as plt
raw_data_X = [
[3.393533211, 2.331273381],
[3.110073483, 1.781539638],
[1.343808831, 3.368360954],
[3.582294042, 4.679179110],
[2.280362439, 2.866990263],
[7.423436942, 4.696522875],
[5.745051997, 3.533989803],
[9.172168622, 2.511101045],
[7.792783481, 3.424088941],
[7.939820817, 0.791637231]
]
raw_data_y = [0, 0, 0, 0, 0, 1, 1, 1, 1, 1]
X_train=np.array(raw_data_X)
y_train=np.array(raw_data_y)
plt.figure(1)
plt.scatter(X_train[y_train==0,0],X_train[y_train==0,1],color='red',marker='o',label='y==0')
plt.scatter(X_train[y_train==1,0],X_train[y_train==1,1],color='blue',marker='x',label='y==1')
plt.legend()
plt.show()
X_new = np.array([8.093623049, 3.365732334])
plt.figure(2)
plt.scatter(X_train[y_train==0,0],X_train[y_train==0,1],color='red',marker='o',label='y==0')
plt.scatter(X_train[y_train==1,0],X_train[y_train==1,1],color='blue',marker='x',label='y==1')
plt.legend()
plt.scatter(X_new[0],X_new[1],marker='+',color='green',s=100)
plt.show()
"""sklearn中的KNN"""
knn=KNeighborsClassifier()
knn.fit(X_train,y_train)
X_new=X_new.reshape(-1,2)
print(knn.predict(X_new))
文章源自随机的未知-https://sjdwz.com/11100.html
使用knn对sklearn中的数据进行训练和预测
本文在未建站时所写,排版会有些问题,大家可以去访问原文链接查看原文
原文链接:https://blog.csdn.net/qq_41243472/article/details/82558491文章源自随机的未知-https://sjdwz.com/11100.html