当前位置: 首页 > ops >正文

机器学习概述与 KNN 算法详解

机器学习概述与 KNN 算法详解

引言

在当今数字化时代,机器学习作为人工智能的核心技术,正深刻改变着我们的生活与工作方式。从日常的智能推荐到复杂的医疗诊断,机器学习技术的应用无处不在。本文将从机器学习的基本概念出发,阐述其核心目标,进而聚焦经典算法 ——KNN 算法,深入解析其原理及常用的距离计算方法。

一、机器学习是什么

机器学习是一门让计算机能够从数据中自动学习规律,并利用这些规律对未知数据进行预测或决策的学科。它不同于传统的编程方式(通过人工编写固定规则完成任务),而是通过算法从大量数据中 “自主学习”,不断优化模型,提升处理任务的能力。

例如,在垃圾邮件识别中,机器学习模型会分析大量已标记的邮件数据(包含垃圾邮件和正常邮件),学习垃圾邮件的特征(如特定关键词、发送频率等),之后便能自动判断新邮件是否为垃圾邮件。

二、机器学习要干什么

机器学习的核心目标是通过对数据的分析与学习,构建能够解决实际问题的模型,主要实现以下几类任务:

  • 预测任务:基于历史数据预测未来趋势,如股票价格预测、天气预报等。
  • 分类任务:将数据划分到已知的类别中,如疾病诊断(判断患者是否患病)、图像识别(识别图片中的物体类别)。
  • 聚类任务:将未知类别的数据按相似度分组,如用户分群(找出具有相似消费习惯的用户群体)。
  • 关联分析:发现数据中隐藏的关联关系,如 “购买面包的用户通常会购买牛奶” 这类购物篮分析。

三、机器学习算法简介

机器学习算法是实现上述目标的工具,根据学习方式的不同,可大致分为以下几类:

  • 监督学习:利用带有标签的训练数据(即已知输入和对应输出)进行学习,如分类、回归问题。
  • 无监督学习:处理无标签数据,通过挖掘数据本身的结构或规律完成任务,如聚类、降维。
  • 半监督学习:结合少量标签数据和大量无标签数据进行学习,适用于标签获取成本较高的场景。
  • 强化学习:通过与环境的交互,基于 “奖励” 或 “惩罚” 信号不断调整行为策略,以实现长期收益最大化,如游戏 AI、机器人控制。

四、KNN 算法详解

4.1 KNN 算法是什么

KNN(K-Nearest Neighbors,K 近邻算法)是一种简单直观的监督学习算法,其核心思想是 “近朱者赤,近墨者黑”—— 对于一个未知类别的新样本,通过计算它与训练集中所有样本的距离,找出距离最近的 K 个样本(即 “K 个近邻”),然后根据这 K 个近邻的类别,通过多数投票法(分类任务)或平均值法(回归任务)确定新样本的类别或数值。

KNN 算法的关键要素

  • K 值的选择:K 值过小,模型易受噪声影响,泛化能力差;K 值过大,计算成本增加,可能忽略局部特征。
  • 距离度量:不同的距离计算方式会影响 “近邻” 的判断,需根据数据特点选择。

KNN 算法的优缺点

  • 优点:原理简单,易于实现,对异常值不敏感(当 K 较大时)。
  • 缺点:计算复杂度高(需与所有样本计算距离),对高维数据不友好(“维度灾难”)。

示意图:假设有两类数据(红色三角形、蓝色圆形),对于新样本(绿色正方形),当 K=3 时,最近的 3 个样本中有 2 个蓝色圆形,因此新样本被判定为蓝色圆形类别。

五、两点之间的 9 种距离计算方法

设两个 n 维样本点分别为\(A(x_1,x_2,...,x_n)\)和\(B(y_1,y_2,...,y_n)\),以下为 9 种常用距离的计算方式:

距离名称定义计算公式适用场景
1. 欧氏距离(Euclidean Distance)最常用的距离度量,衡量两点在 n 维空间中的直线距离\(d(A,B)=\sqrt{\sum_{i=1}^{n}(x_i-y_i)^2}\)适用于连续型数据,且各维度单位一致的场景(如身高、体重等)
2. 曼哈顿距离(Manhattan Distance)衡量两点在坐标轴上的绝对距离之和,类似城市中沿街道行走的距离\(d(A,B)=\sum_{i=1}^{n}|x_i-y_i|\)适用于高维数据或关注坐标轴方向差异的场景(如路径规划)
3. 切比雪夫距离(Chebyshev Distance)衡量两点在各维度上坐标差值的最大值\(d(A,B)=\max(|x_i-y_i|)\)适用于需关注最大差异维度的场景(如棋盘上的步数计算)
4. 闵可夫斯基距离(Minkowski Distance)欧氏距离和曼哈顿距离的推广,通过参数 p 控制距离形式\(d(A,B)=(\sum_{i=1}^{n}|x_i-y_i|^p)^{\frac{1}{p}}\)当 p=1 时为曼哈顿距离,p=2 时为欧氏距离,灵活性高
5. 标准化欧氏距离(Standardized Euclidean Distance)对数据标准化后计算的欧氏距离,消除维度单位差异影响\(d(A,B)=\sqrt{\sum_{i=1}^{n}(\frac{x_i-y_i}{s_i})^2}\),其中\(s_i\)为第 i 维数据的标准差适用于各维度单位不同或方差差异大的数据(如身高 cm 与体重 kg)
6. 马氏距离(Mahalanobis Distance)考虑数据分布的距离,消除维度相关性和单位影响\(d(A,B)=\sqrt{(A-B)^T\Sigma^{-1}(A-B)}\),其中\(\Sigma\)为样本协方差矩阵适用于存在多重共线性的数据(如不同特征间有相关性的场景)
7. 余弦距离(Cosine Distance)衡量两向量的夹角余弦值,侧重方向而非长度\(d(A,B)=1-\frac{\sum_{i=1}^{n}x_iy_i}{\sqrt{\sum_{i=1}^{n}x_i^2}\sqrt{\sum_{i=1}^{n}y_i^2}}\)适用于文本分类、图像检索等关注特征方向的高维数据
8. 汉明距离(Hamming Distance)衡量两个等长字符串中对应位置字符不同的数量(离散特征)若为二进制数据,\(d(A,B)=\sum_{i=1}^{n}|x_i-y_i|\)(\(x_i,y_i\)为 0 或 1)适用于字符串匹配、二进制数据分类(如 DNA 序列比对)
9. 杰卡德距离(Jaccard Distance)基于杰卡德相似系数的距离,衡量两个集合的差异程度\(d(A,B)=1-\frac{|A\cap B|}{|A\cup B|}\),其中\(|A\cap B|\)为交集元素数,\(|A\cup B|\)为并集元素数适用于集合型数据(如用户兴趣标签、物品特征集合)

总结

机器学习通过数据驱动的方式实现了计算机的 “自主学习”,而 KNN 算法作为经典的机器学习算法,凭借其简单直观的原理在分类、回归任务中得到广泛应用。理解 KNN 算法的核心 —— 距离度量,对于正确应用该算法至关重要。在实际场景中,需根据数据特点选择合适的距离计算方法,以提升模型性能。随着技术的发展,机器学习算法将持续优化,为更多领域提供智能化解决方案。

http://www.xdnf.cn/news/16107.html

相关文章:

  • 亚纳米级检测!潜望式棱镜的“检测密码”,决定手机远景清晰度
  • 两台电脑连接交换机,使用其中一台电脑的网络上网(NAT转发)
  • 单片机的硬件结构
  • 使用Docker+Nginx部署电商平台项目(服务端+管理端+商城)
  • C++11之可变参数模板
  • 快速启用 JMeter(macOS Automator 创建 JMeter 脚本)
  • Java从入门到精通!第十三天(IO 流)
  • 医疗AI轻量化部署方案的深度梳理与优化路径判研
  • 【Luogu】每日一题——Day12. P3149 排序 (树状数组 + 逆序对)
  • 阿里云ECS坑之dnf-makecache系统软件更新检测服务
  • 【C++】类和对象(中)构造函数、析构函数
  • vue3路由详解
  • ubuntulinux快捷键
  • 第1章第2章笔记
  • 大模型【进阶】(四)QWen模型架构的解读
  • 前端跨域请求原理及实践
  • 顺丰面试提到的一个算法题
  • 不一样的Mysql安装方式
  • linux性能调整和故障排查
  • Hexo - 免费搭建个人博客04 - 创建另一个私人仓库,对Hexo项目进行版本管理
  • #Linux内存管理# 详细介绍madvise函数的工作原理
  • 突发限制下的破局之路:国产之光 Lynx 重构 AI 开发安全壁垒
  • day 33打卡
  • 基于MCP架构的LLM-Agent融合—构建AI Agent的技术体系与落地实践
  • C++(面向对象封装、继承、多态)
  • Hexo - 免费搭建个人博客03 - 将个人博客托管到github,个人博客公开给大家访问
  • 从 Shell 脚本到 Go 应用:使用 Kiro AI 助手完成 Harpoon 项目重构的完整实践
  • OMS监考系统V2版本无法启动问题解决办法
  • 单片机-----基础知识整合
  • 人工智能——Opencv图像色彩空间转换、灰度实验、图像二值化处理、仿射变化