代码拉取完成,页面将自动刷新
import numpy as np
#knn分类函数,输入训练样本,训练样本标签,测试样本(为ndarray),k值(k默认为3);返回预测标签
def KNN(traindata,trainlabels,testdata,k=3):
#计算距离,存放在dist中,每一行表示测试样本与所有训练样本的距离
num_train=traindata.shape[0]
num_test=testdata.shape[0]
dist=np.zeros((num_test,num_train))
for i in range(num_test):
dist[i]=np.reshape(np.sqrt(np.sum(np.square(testdata[i]-traindata),axis=1)),[1,num_train])
#找到每一行中从小到大排序后前k个值所对应的原来的索引,对应的标签给close_k
#统计这些索引中出现次数最多的那个数为预测样本类别
predictlabels=np.zeros((num_test,1))
for i in range(num_test):
close_k=trainlabels[np.argsort(dist[i])[:k]]
predictlabels[i]=np.argmax(np.bincount(close_k))
return predictlabels
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。