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

发布于:2025-07-25 ⋅ 阅读:(17) ⋅ 点赞:(0)

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

引言

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

一、机器学习是什么

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

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

二、机器学习要干什么

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

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

三、机器学习算法简介

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

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

四、KNN 算法详解

4.1 KNN 算法是什么

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

KNN 算法的关键要素

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

KNN 算法的优缺点

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

KNN

研究方向——1.回归 2.分类

示意图:假设有两类数据(红色三角形、蓝色圆形),对于新样本(绿色正方形),当 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 算法的核心 —— 距离度量,对于正确应用该算法至关重要。在实际场景中,需根据数据特点选择合适的距离计算方法,以提升模型性能。随着技术的发展,机器学习算法将持续优化,为更多领域提供智能化解决方案。


网站公告

今日签到

点亮在社区的每一天
去签到