Knn算法实现分类(二)
【摘要】 利用jupyter分析 ● 绘制基本图像import numpy as npimport matplotlib.pyplot as plt#定义特征值raw_data_x=[[3.3144558 , 2.33542461], [3.75497175, 1.93856648], [1.38327539, 3.38724496], [3.0920...
利用jupyter分析
● 绘制基本图像
import numpy as np import matplotlib.pyplot as plt #定义特征值 raw_data_x=[[3.3144558 , 2.33542461], [3.75497175, 1.93856648], [1.38327539, 3.38724496], [3.09203999, 4.47090056], [2.58593831, 2.13055653], [7.41206251, 4.80305318], [5.912852 , 3.72918089], [9.21547627, 2.8132231 ], [7.36039738, 3.35043406], [7.13698009, 0.40130301]] #定义目标值 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) #利用matplotlib绘制图像 plt.scatter(X_train[y_train==0,0],X_train[y_train==0,1],color='g') plt.scatter(X_train[y_train==1,0],X_train[y_train==1,1],color='r') plt.show()
● 加入预测点,绘制图像
x=np.array([8.093607318,3.365731514]) plt.scatter(X_train[y_train==0,0],X_train[y_train==0,1],color='g') plt.scatter(X_train[y_train==1,0],X_train[y_train==1,1],color='r') plt.scatter(x[0],x[1],color='b') plt.show()
● 欧拉距离公式
平面中两点之间的欧拉距离:
立体中两点之间的距离:
任意维度下的欧拉距离:
简化后:
欧拉距离:任意空间下两个点的对应维度的坐标值相减的平方和再开方
● 实现距离计算
from math import sqrt distances = [sqrt(np.sum((x_train-x)**2)) for x_train in X_train] #distances=np.sqrt(np.sum(np.square(X_train-x),axis=1)) #对计算的距离进行排序 nearest = np.argsort(distances)
● 定义K值,得出计算结果
k=6 #获取距离最近的前k个数据 topK_y = [y_train[i] for i in nearest[:k]] #统计每个y值出现的次数 from collections import Counter votes = Counter(topK_y) #获取出现次数最多的那个y的取值 predict_y = votes.most_common(1)[0][0]
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)