新闻详情

新闻详情

首页 / 资讯中心 / 详情

手撕K最近邻算法(KNN)

发布时间:2026/10/1 20:56:30来源:尧图网络
手撕K最近邻算法(KNN)
d {a: 1, b: 2, c: 3} print(d.keys()) # dict_keys([a, b, c]) print(list(d.keys())) # [a, b, c] for key in d: # 直接遍历字典默认遍历键 print(key) for key in d.keys(): # 等价写法 print(key) print(d.values()) # dict_values([1, 2, 3]) print(list(d.values())) # [1, 2, 3] for value in d.values(): print(value) print(d.items()) # dict_items([(a, 1), (b, 2), (c, 3)]) print(list(d.items())) # [(a, 1), (b, 2), (c, 3)] for key, value in d.items(): print(key, value) print(d[a]) # 1 print(d.get(x)) # None print(d.get(x, 0)) # 0from typing import List import math class Solution: def knn_classification(self, X: List[List[float]], y: List[int], x_test: List[float], K: int) - int: 实现KNN分类根据最近的K个邻居进行多数投票得到最终预测标签 distances [] for i,train_point in enumerate(X): s 0 for d in range(len(x_test)): s (train_point[d]-x_test[d])**2 dist math.sqrt(s) distances.append((dist,i)) distances.sort(keylambda x:x[0]) nearest distances[:K] nearest_label [y[i] for _,i in nearest] count {} for label in nearest_label: count[label] count.get(label,0) 1 #y_pred max(count,keycount.get) #y_pred max(count,keylambda label:count[label]) #考虑平票 max_count max(count.values()) y_pred min(label for label, cnt in count.items() if cnt max_count) return y_pred
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

awesome-low-level-design 之 Rust 抽象(Abstraction):用 Struct、Trait 与 impl 隐藏复杂实现细节 2026/10/1 21:57:26

awesome-low-level-design 之 Rust 抽象(Abstraction):用 Struct、Trait 与 impl 隐藏复杂实现细节

示例工程 【免费下载链接】awesome-low-level-design Learn Low Level Design (LLD) and prepare for interviews using free resources. 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-low-level-design 点击查看 免费下载 Abstraction(抽…

阅读更多 →
Gemini API Cookbook 实战:使用 Gemini Embedding 与 ChromaDB 构建向量数据库实现文档问答 2026/10/1 21:57:07

Gemini API Cookbook 实战:使用 Gemini Embedding 与 ChromaDB 构建向量数据库实现文档问答

示例工程人工智能大模型 【免费下载链接】cookbook Examples and guides for using the Gemini API 项目地址: https://gitcode.com/GitHub_Trending/coo/cookbook 点击查看 免费下载 本指南基于当前仓库中的 examples/chromadb/README.md 及其配套教程 Vectordb_w…

阅读更多 →
赤龙牙与 ABAP,如何把一次命中变成持续生效的业务规则 2026/10/1 21:57:07

赤龙牙与 ABAP,如何把一次命中变成持续生效的业务规则

一张销售订单刚创建时,价格、交期、信用状态都正常。过了一段时间,客户的付款超过约定日期,系统便开始按规则计算逾期费用;欠款结清后,费用停止增长。回头看这段过程,真正起作用的并非一次计算有多复杂,而是某个条件被触发后,系统记住了状态,并在后续处理周期里持续产…

阅读更多 →
更好的优化:从局部补丁到全局取舍的思维框架 2026/10/1 21:57:07

更好的优化:从局部补丁到全局取舍的思维框架

1. 大多数所谓的"优化",只是在给系统叠床位先说一个我自己的例子。早些年我维护过一个报表查询服务,每天凌晨定时任务跑完,运营同事上班第一件事就是打开看板。可那段时间接口越跑越慢,从最初的 800 毫秒一路涨到 4 秒多…

阅读更多 →
呼啦圈越练越强,ABAP 里怎样设计一件会成长的装备 2026/10/1 21:57:07

呼啦圈越练越强,ABAP 里怎样设计一件会成长的装备

小雪拿到呼啦圈时,吸引人的地方不是它的外形,而是它会随着使用逐渐变强。玩家攻略对这件武器的描述相当一致,基础攻击力为 100,熟练度每增加 1%,攻击效果增加 3,练到 100% 时可按 400 来理解。攻略也提到,练熟练度需要持续战斗,呼啦圈并非拿到手就处于最强状态。这里讨…

阅读更多 →
SSD测速正常却卡顿?Windows 7打印后台服务优先级是元凶 2026/10/1 21:57:07

SSD测速正常却卡顿?Windows 7打印后台服务优先级是元凶

1. 迷雾重重:一块 SSD 引发的“性能血案”手头一块用了两三年的 SATA SSD,最近总感觉不太对劲。开机进桌面要转很多圈,打开资源管理器都要停顿一下,更别提直接往盘里拷贝大文件时那种“先快后慢”的拖沓感了。最开始我怀疑是SSD老…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉