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) # 预测标签

```

相关推荐
Goodwin4 分钟前
TypeScript 成 AI 应用层标配?GitHub Trending 告诉你2026前端往哪走
前端·人工智能·github
mit6.8245 分钟前
Pendulum
人工智能
Candy 9176 分钟前
AI漫画 #AI绘画 #内容创作 #自媒体工具 #漫画创作 #赛博朋克 #AI漫剧 #创作神器
人工智能
张艾拉 Fun AI Everyday6 分钟前
a16z:软件公司只剩两条路了,没有中间态
人工智能
晓晓不觉早6 分钟前
2026年最新AI大模型全景解析:性能迭代与场景落地新突破
人工智能
饼干哥哥8 分钟前
GLM-4.7发布后,n8n就不用学了!搭个AI Skills一键生成工作流
人工智能
TDengine (老段)16 分钟前
TDengine IDMP 工业数据建模 —— 数据情景化
大数据·数据库·人工智能·时序数据库·iot·tdengine·涛思数据
Omics Pro16 分钟前
端到端单细胞空间组学数据分析
大数据·数据库·人工智能·算法·数据挖掘·数据分析·aigc
zzb158017 分钟前
Agent记忆与检索
java·人工智能·python·学习·ai
这张生成的图像能检测吗19 分钟前
(论文速读)MoECLIP:零射异常检测补丁专家
人工智能·深度学习·计算机视觉·异常检测·clip·zero-shot方法