1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol video solution AI分析

解题思路

核心步骤

  1. 读入参数:k,m,n,sk, m, n, sk,m,n,s;读入待分类样本向量 qqq(维度 nnn);读入 mmm 条样本(前 nnn 列为特征,最后一列为标签)。

  2. 计算距离:对每个样本 xxx,计算与 qqq 的欧氏距离

    d(q,x)=∑i=1n(qi−xi)2d(q,x)=\sqrt{\sum_{i=1}^{n}(q_i-x_i)^2}d(q,x)=i=1∑n​(qi​−xi​)2​

P3479.第2题-标签样本数量

    1000ms Tried: 3278 Accepted: 957 Difficulty: 5 所属公司 : 华为
    算法与标签>机器学习算法

题目内容

KNNKNNKNN 算法的核心思想是,如果一个样本在特征空间中的 KKK 个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。请按照下面的步理,实现 KNNKNN KNN 算法。

KNNKNNKNN 算法说明:

计算待分类点到其他样本点的距离;

通过距离进行排序,选择距离最小的 KKK 个点;提取这 KKK 个临近点的类别,根据少数服从多数的原则,将占比最多的那个标签赋值给待分类样本点的 labellabellabel 。

本题说明:

1、给定数据集中,默认每一类标签都存在数据,不存在某类型数量为 000 的场景;

2、为消除不同特征权重问题,给出数据均已做好归一化处理,并保留两位小数;

3、出现并列第一的情形时,取并列第一的样本中,最近邻居的标签返回;

4、距离函数定义为: dx,y=∑i=1n(xi−yi)2d_{x,y}=\sqrt{\sum^n_{i=1}(x_i-y_i)^2}dx,y​=∑i=1n​(xi​−yi​)2​。

输入描述

第 111 行:kkk mmm nnn sss :kkk 代表每次计算时选取的最近邻居个数(不大于 202020 ),mmm 代表样本数量(不大于 200200200 ),nnn 代表样本维度(不包括标签,不大于 555 ),sss 代表类别个数(不于 555 );

第 222 行:待分类样本

第 333 行~第 m+2m+2m+2 行:mmm 个样本,每一行 n+1n+1n+1 列,最后一列为类别标签 labellabellabel

输出描述

输出待分类样本的类别标签及距离最小的 KKK 个点中的该标签样本数量

样例1

输入

3 10 2 3
0.81 0.64
0.19 0.2 1.0
0.18 0.14 0.0
0.76 0.58 1.0
0.4 0.16 1.0
0.98 0.85 0.0
0.42 0.97 1.0
0.75 0.26 1.0
0.24 0.06 1.0
0.97 0.8 0.0
0.21 0.1 2.0

输出

0 2

说明

第 111 行输入说明输入了 m=10m=10m=10 个样本,每个样本有 n=2n=2n=2 个维度的数据(去除最后一列标签),共有 s=3s=3s=3 种类别

第 222 行输入待分类样本的 nnn 维数据

从第 333 行到第 121212 行的前两列数据为输入的 m=10m=10m=10 个样本,每个样本有 n=2n=2n=2 个维度的数据+最后一列的标签数据

待分类样本 [0.81[0.81[0.81 0.64]0.64]0.64] 最近的前 k=3k=3k=3 个邻居分别为:[0.76[0.76[0.76 0.58],[0.980.58],[0.980.58],[0.98 0.85],[0.970.85],[0.970.85],[0.97 0.8]0.8]0.8] ,分别有 222 个 000 号标签和 111 个 111 号标签 000 号标签占多,返回 000 以及标签 000 的样本数量 222

样例2

输入

6 10 2 4
0.78 0.63
0.57 0.07 1.0
0.5 0.13 1.0
0.83 0.07 3.0
0.27 0.87 3.0
0.81 0.44 2.0
0.21 0.73 3.0
0.45 0.91 1.0
0.12 0.22 2.0
0.25 0.48 0.0
0.54 0.87 1.0

输出

1 2

说明

本样例的距离最小的 666 个样本中,标签 111 和标签 333 出现次数都是 222 次,并列第一;虽然 [0.8[0.8[0.8 0.44]0.44]0.44] 距离样本最近,但其标签 222 不是出现最多的,排除在下一轮统计样本中此时需要从标签 111 和标签 333 中的样本中,选取距离最近的 [0.54[0.54[0.54 0.87]0.87]0.87] 的标签 111 作为返回值,并同时返回标签 111 的样本数量 222 。

开通会员即可查看完整视频题解: 1.题目讲解 2.思路分析 3.逐行代码手写

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 1, 51ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?