修改预测函数

简介: 【7月更文挑战第22天】修改预测函数。

修改预测函数
def predict_math(X, xtrain, ytrain):

  # 求L2距离
  distances = [sqrt(np.sum((X_train - X) ** 2)) for X_train in xtrain]
  # 对数组进行排序,返回的是值的索引值
  nearest = np.argsort(distances)
  # 取出前3个离得最近的点的标签
  k = 3
  topK_y = [ytrain[i] for i in nearest[:k]]
  # 计数,取到键值对。键:标签;值:个数
  votes = Counter(topK_y)
  # 在键值对中值最多的键
  print(votes.most_common(1)[0][0])

  # 得到最接近的3个点的索引值
  k = 3
  topK_X = nearest[:k]
  for i in range(3):
       # 绘制预测点与最接近的3个点连成的直线
       plt.plot([X[0], xtrain[topK_X[i]][0]], [X[1], xtrain[topK_X[i]][1]])
       # 绘制预测点与最接近的3个点之间的长度
       plt.annotate("%s"%round(distances[topK_X[i]], 2),
                          xy=((X[0] + xtrain[topK_X[i]][0]) / 2,(X[1] + 

xtrain[topK_X[i]][1]) / 2))
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.scatter(x_train[y_train == 0, 0], x_train[y_train == 0, 1], marker="*")
plt.scatter(x_train[y_train == 1, 0], x_train[y_train == 1, 1], marker="^")
plt.scatter(x_train[y_train == 2, 0], x_train[y_train == 2, 1], marker="s")
plt.scatter(x_test[0], x_test[1], marker="o")
plt.show()
在输出所属类别的基础上绘制预测点与最接近的3个点连成的直线,并标出它们的距离,KNN结果如图所示。

KNN结果

目录
相关文章
|
5月前
|
消息中间件 网络协议 JavaScript
函数计算产品使用问题之删除应用重建后,如何快速生成之前的模型和参数
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
6月前
|
算法
创建一个训练函数
【7月更文挑战第22天】创建一个训练函数。
41 4
|
6月前
|
机器学习/深度学习 计算机视觉 Python
`GridSearchCV` 是一种穷举搜索方法,它会对指定的参数网格中的每一个参数组合进行交叉验证,并返回最优的参数组合。
`GridSearchCV` 是一种穷举搜索方法,它会对指定的参数网格中的每一个参数组合进行交叉验证,并返回最优的参数组合。
|
8月前
|
机器学习/深度学习 算法 数据可视化
Python用KNN(K-近邻)回归、分类、异常值检测预测房价、最优K值选取、误差评估可视化
Python用KNN(K-近邻)回归、分类、异常值检测预测房价、最优K值选取、误差评估可视化
|
8月前
|
存储 Java
变量的分类和作用2
变量的分类和作用
55 1
|
8月前
|
Java 编译器
变量的分类和作用1
变量的分类和作用
75 0
Transformer时间序列预测-多变量输入-单变量输出+多变量输出,完整代码数据,可直接运行
Transformer时间序列预测-多变量输入-单变量输出+多变量输出,完整代码数据,可直接运行
357 0
第4章 MATLAB编程基础——4.6 M文件中变量的检测与传递
第4章 MATLAB编程基础——4.6 M文件中变量的检测与传递
|
存储 芯片 异构计算
METSO IOP304 从lut中检索值来评估(lut)和函数
METSO IOP304 从lut中检索值来评估(lut)和函数
119 0
METSO  IOP304 从lut中检索值来评估(lut)和函数