使用python语言应用SKlearn工具包实现KNN算法。SKlearn中包含有很多现成的机器学习算法包,可大幅度降低使用者1编程难度与复杂度,节省项目开发时间与人力成本。
如上图所示的案例,进行KNN分类回归模型计算。KNN模型计算中,除K值的确定外,还有一个非常重要的计算,既样本点间的距离计算.距离计算的公式有很多,例如欧式距离,曼哈顿距离,切比雪夫距离,马氏距离等,我们本次应用欧式距离。例如,在二维空间内,欧式距离如式
数据准备完成以后,开始编写python下基于SKlearn组件的KNN实现
import numpy as np
import warnings
from sklearn import neighbors
def createDataSrt():
dateutilSet = np.array(
[[19,30], [30,40], [39,47], [40,52], [47,50], [50,55], [60,60], [62,65], [73,70],
[75,82], [77,85], [90,95], [92,30]])
labels = ['0', '0', '0', '0', '0', '0', '1', '1', '1', '1', '1', '1', '1']
return dataSet, labels
def knnClassifier(dataSet, labels, teatData,k):
knn = neighbors.KNeighborsClassifier(k)
knn.fit(dataSet, labels)
return knn.predict([teatData])
if __name__ == "_main_":
dataSet, labels=createDataSrt()
warnings.filters('ignore')
pred1=knnClassifier(dataSet, labels, [55,65] , 3)
print('k=3时,预测样本分类结果为:',pred1)
pred2=knnClassifier(dataSet, labels, [55,56], 7)
print('k=7时,预测样本分类结果为;',pred2)
结果为:
k=3时,预测样本分类结果为:['1']
k=7时,预测样本分类结果为:['0']