利用 Python 实现 KNN 算法
利用 Python 实现 KNN 算法,并采用所写程序解决如下问题【K值可根据经验规则确定】:
纸巾的品质好坏可由两个变量决定,一个是“酸腐蚀的时间”,一个是“能承受的压强”。样本数据如下:
耐酸时间(秒) | 圧强(公斤/平方米) | 品质 |
---|---|---|
7 | 7 | 坏 |
7 | 4 | 坏 |
3 | 4 | 好 |
1 | 4 | 好 |
某未知样本:耐酸时间 = 3秒,压强= 7公斤/平方米,其品质如何?
运行结果:
实验源码:
```python
coding=utf-8
def predict_quality(train_data, test_data, K): # 记录所有距离 d = [] # 记录下标信息 index = {} for i in train_data: s = ((test_data[0] - i[0]) ** 2 + (test_data[1] - i[1]) ** 2) ** 0.5 index[s] = i d.append(s)
d.sort()
# 确保 K 能够区分结果
if (K % 2 == 0) and K < len(train_data):
K += 1
good_num = 0
bad_num = 0
for i in range(0, K):
if index[d[i]][2] == '好':
good_num += 1
else:
bad_num += 1
print('good_num:', good_num, ' bad_num:', bad_num)
if good_num > bad_num:
predict_result = '好'
else:
predict_result = '坏'
return predict_result
if name == ' main ': # 训练数据 train_data = [(7, 7, '坏'), (7, 4, '坏'), (3, 4, '好'), (1, 4, '好')] # 测试数据 test_data = [3, 7] # 输入测试数据,调用函数预测结果 s = predict_quality(train_data, test_data, K=3) print('测试数据:', test_data[0], ', ' , test_data[1],'\n预测结果:', s)
```
版权声明:本文为CSDN博主「渣渣的夏天」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_39564555/article/details/105881186?utm_source=po_vip
参考文献
- 基于邻域协同过滤推荐算法的研究及应用(景德镇陶瓷大学·何俊)
- 推荐系统综合仿真平台评估框架的研究与实现(电子科技大学·施振兴)
- 数据挖掘技术在大型企业物流平台的应用研究(成都理工大学·沈哲)
- 基于Django的课程推荐系统的设计与实现(华中科技大学·羊雪玲)
- 基于知识图谱的分布式医院信息综合查询系统的设计与实现(电子科技大学·欧磊)
- 基于知识图谱的分布式医院信息综合查询系统的设计与实现(电子科技大学·欧磊)
- 基于知识图谱的分布式医院信息综合查询系统的设计与实现(电子科技大学·欧磊)
- 基于邻域协同过滤推荐算法的研究及应用(景德镇陶瓷大学·何俊)
- 基于网络表示学习的新闻推荐算法研究与系统实现(辽宁大学·廉甘霖)
- 具有决策支持功能的人力资源管理系统设计与实现(江西农业大学·陈金花)
- 基于深度学习的智能金融资产管理系统研究与实现(宁夏大学·马波)
- 基于冶金产业的机器学习算法平台研究与实现(重庆理工大学·连瑾)
- 滨化集团商品价格K线图系统的设计与实现(山东大学·宋飞)
- 基于知识图谱的分布式医院信息综合查询系统的设计与实现(电子科技大学·欧磊)
- 基于网络表示学习的新闻推荐算法研究与系统实现(辽宁大学·廉甘霖)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码向导 ,原文地址:https://m.bishedaima.com/yuanma/35723.html