K近邻算法(knn)

核心概念

  1. 算法定义

每个样本由其最接近的K个邻近样本代表(K通常≤20)。

对新数据分类时,提取训练集中特征最相似的K个样本,统计其类别频率,将最高频类别作为预测结果。

  1. 算法步骤

① 计算新数据与所有训练样本的距离;

② 按距离递增排序;

③ 选取距离最小的K个点;

④ 统计K个点的类别频率;

⑤ 返回频率最高的类别作为预测分类。

距离度量方法

  1. 欧氏距离

多维空间中的绝对距离。

公式(n维):

d = \\sqrt{\\sum_{i=1}\^{n}(x_i - y_i)\^2}

  1. 曼哈顿距离

坐标轴上的绝对轴距总和。

公式(二维):

d = \|x_1 - x_2\| + \|y_1 - y_2\|

实战案例:鸢尾花分类(基于sklearn)

  1. 数据集

特征:花萼长度/宽度、花瓣长度/宽度(4个特征)。

标签:3种鸢尾花类别(`setosa`, `versicolor`, `virginica`)。

  1. 实现步骤

  2. 加载数据

iris = datasets.load_iris()

X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3)

  1. 创建KNN模型(K=5,欧氏距离)

knn = KNeighborsClassifier(n_neighbors=5, metric="euclidean")

knn.fit(X_train, y_train)

  1. 评估与预测

train_score = knn.score(X_train, y_train) # 训练集准确率

test_score = knn.score(X_test, y_test) # 测试集准确率

y_pred = knn.predict(X_test) # 预测标签

```

相关推荐
To_OC23 分钟前
大模型蒸馏是啥?说白了就是大厨带徒弟的学问
人工智能·llm·agent
新手来了@click38 分钟前
JAVA+AI 简化开发操作|文章被 AI Agent 技术社区收录分享
人工智能
GuWenyue1 小时前
Cursor黑盒拆解!1套LangChain.js手写Mini编程Agent,自动生成React项目,效率提升60%
前端·数据库·人工智能
GuWenyue1 小时前
传统Agent工具两大痛点!300行代码落地MCP跨语言工具,彻底解耦LLM与工具
前端·人工智能·算法
老云讲算力市场1 小时前
WAIC首日观察:国产算力与机器人加速落地,奇点算力迎来产业新机遇
人工智能·科技
糖果店的幽灵2 小时前
【DeepAgents 从入门到精通】Context Management 上下文管理
java·人工智能·后端·spring·中间件·langgraph·deepagents
小林ixn2 小时前
大模型随机说话的秘密:Temperature 和 Top K 深度解析,LangChain 实战调优
人工智能·langchain
ALINX技术博客2 小时前
ALINX 亮相 2026 WAIC 世界人工智能大会,展示 AI 视觉 FPGA+GPU 异构计算与电子后视镜解决方案
人工智能·ai·fpga·世界人工智能大会·电子后视镜
程序员老猫2 小时前
当 AI 能写 80% 的代码时,后端工程师的核心价值还剩什么?
人工智能
想会飞的蒲公英2 小时前
计算机怎样读取中文文本:编码、清洗与标准化
人工智能·python·自然语言处理