机器学习基本算法原理
更多
好的,我们来详细解释一些最常用的机器学习基本算法原理,尽量用通俗易懂的中文:
机器学习算法大体上可以分为几大类:
- 监督学习: 从有标签数据中学习模式(输入X -> 输出Y的映射关系)。
- 无监督学习: 从无标签数据中发现内在结构或模式。
- 强化学习: 智能体在与环境交互中学习策略,通过试错和奖励信号调整行为,以最大化长期累积奖励。
下面介绍每类中的经典算法:
一、 监督学习(Supervised Learning)
目标:基于输入数据(特征)预测与之关联的输出标签(目标)。
-
线性回归:
- 核心思想: 找到一条直线(在一维)或一个超平面(在高维) 来最拟合输入特征(X)和连续数值型输出(Y)之间的关系。这个关系被建模为:
y = w0 + w1*x1 + w2*x2 + ... + wn*xn。 - 原理: 通过最小化预测值(ŷ)和真实值(y)之间的差距(通常是平方差的平均值,即均方误差 MSE) 来求解最优的参数(权重
w1...wn和截距w0)。常用梯度下降法或其变种(如随机梯度下降)来找到使误差最小的参数值。 - 适用场景: 预测房价、销售额、温度等连续数值。
- 关键: 寻找数据在特征空间中的“最佳拟合”线性趋势线。
- 核心思想: 找到一条直线(在一维)或一个超平面(在高维) 来最拟合输入特征(X)和连续数值型输出(Y)之间的关系。这个关系被建模为:
-
逻辑回归:
- 核心思想: 虽然名字叫“回归”,但它是解决二分类问题(输出Y=0或1)的算法。其目标是预测某个样本属于某一类的概率(比如
P(Y=1 | X))。 - 原理:
- 首先,它用线性模型计算一个分数:
z = w0 + w1*x1 + ... + wn*xn。 - 然后,将这个分数
z输入到 Sigmoid 函数中(一种S型函数),将z映射到(0, 1)区间,得到概率值ŷ = σ(z) = 1/(1+e⁻ᶻ)。 - 训练目标是最大化所有样本的正确类别的预测概率的乘积(或其对数形式,即对数似然),即让模型对真值为1的样本预测ŷ尽可能接近1,对真值为0的样本预测ŷ尽可能接近0。这通常通过最大化对数似然函数(等价于最小化其负值)并使用梯度下降求解来实现。
- 首先,它用线性模型计算一个分数:
- 适用场景: 垃圾邮件识别(是垃圾邮件/不是)、点击率预测(用户会点击/不会点击广告)、疾病诊断(患病/健康)。
- 关键: 将线性模型的输出转换为概率,并基于概率进行分类决策(通常设定一个阈值,如0.5,ŷ>0.5则判为1,否则为0)。
- 核心思想: 虽然名字叫“回归”,但它是解决二分类问题(输出Y=0或1)的算法。其目标是预测某个样本属于某一类的概率(比如
-
决策树:
- 核心思想: 模仿人类做决策的过程,通过一系列层层递进的 if-else 规则来对数据进行划分,最终达到预测目标(分类或回归)。
- 原理:
- 节点: 树由节点组成。根节点包含所有数据。
- 分裂: 选择能最好地区分目标变量的特征及其阈值,将父节点的数据分割到不同的子节点(纯左拐还是纯右拐)。衡量“区分度”或“纯度”的常用指标有:
- 分类树: 信息增益、增益率、基尼不纯度。目标是最小化分割后子节点的“混乱度”。
- 回归树: 最小化分割后子节点内目标值的方差(MSE)。
- 递归: 在子节点上重复分裂过程。
- 停止: 当前节点数据已足够“纯”(基尼系数或方差很小),或数据量太少,或达到预设深度,则成为叶节点,不再分裂。叶节点输出预测结果(分类中是多数类,回归中是平均值)。
- 适用场景: 分类或回归问题,特征可解释性强(能看到决策路径)。常用于风险评估、客户分群、医学诊断辅助。
- 关键: 选择最佳分裂特征和分裂点,递归构建树状结构以达到预测目标。
-
支持向量机:
- 核心思想: 找到能将不同类别的样本最大化间隔分开的决策边界(超平面) 。在分类中,这个边界用于区分不同的类;在回归(称为支持向量回归 SVR)中,边界则是拟合一个尽可能多的点落在间隔带内的函数。
- 原理:
- 对于一个线性可分的问题,目标是找到一个超平面
w·x + b = 0,使得所有样本到该超平面的距离 (margin) 尽可能大。支持向量(即离决策边界最近的点)决定了边界的位置。 - 对于线性不可分问题,通过核函数(Kernel Trick) 将原始特征映射到更高维的特征空间,使得在这个高维空间中数据变得线性可分。常用的核函数有线性核、多项式核、径向基函数核。
- 训练目标是最大化间隔距离,这等价于一个在约束条件下最小化
½||w||²(w的L2范数平方) 的凸优化问题,可以用拉格朗日乘子法求解。
- 对于一个线性可分的问题,目标是找到一个超平面
- 适用场景: 尤其擅长中小数据量、高维空间且特征维度可能高于样本数量的分类问题(如文本分类、图像识别),以及对边界要求高的场景。
- 关键: 最大化分类间隔 + 核技巧处理非线性问题。
-
K-近邻算法:
- 核心思想: “物以类聚”。对于一个新样本,查看在特征空间中与其最接近(距离最小)的K个已知标签的邻居样本,用这K个邻居的标签(多数投票)或目标值(平均值)来预测新样本的标签或值。它没有显式的训练过程,只是存储了所有的训练数据。
- 原理:
- 计算待预测样本与训练集中每个样本的距离(如欧氏距离、曼哈顿距离)。
- 选出距离最近的K个样本。
- 分类: 统计K个邻居中出现次数最多的类别作为预测类别。
- 回归: 计算K个邻居的目标值的平均值作为预测值。
- 关键: 选择合适的K值(太小易过拟合、对噪声敏感;太大模型太粗糙)和距离度量标准(不同标准会影响邻居的选择)。
- 适用场景: 简单的分类和回归问题,数据分布复杂、但局部结构明显时也可能表现不错。计算量相对较大。
二、 无监督学习(Unsupervised Learning)
目标:发现数据中隐藏的模式、结构或关系,无标签可用。
-
K-均值聚类:
- 核心思想: 将数据划分为K个簇(Cluster),使得同一个簇内的样本尽可能相似(距离小),不同簇之间的样本尽可能不相似。
- 原理:
- 初始化: 随机选择K个点作为初始簇中心。
- 分配(E-step): 计算每个样本点到所有簇中心的距离,将其分配到距离最近的簇中心所属的簇。
- 更新(M-step): 计算每个簇中所有点的平均值(质心),并将该平均值作为新的簇中心。
- 重复: 不断迭代进行分配和更新步骤,直到簇中心不再发生显著变化或达到最大迭代次数。
- 适用场景: 客户分群、图像压缩、异常检测(不属于任何大簇的点)、探索性数据分析。
- 关键: 需要预先指定K值,结果受初始点选择影响较大(可能收敛到局部最优解),通常需要多次随机初始化选最优结果。
-
主成分分析:
- 核心思想: 通过线性变换,将原始的高维特征投影到新的、相互正交的、按方差大小排序的低维空间中(称为主成分),同时尽可能保留原始数据的方差(信息)。最重要的投影方向是数据分布最“扁”、方差最大的方向。
- 原理:
- 计算数据的协方差矩阵(特征间的相关性)。
- 计算协方差矩阵的特征值和特征向量。
- 按特征值从大到小排序对应的特征向量。特征值的大小代表对应方向上的方差大小。
- 选择前
m个(m < n)最大的特征值对应的特征向量作为新的坐标轴(主成分),将原始数据投影到这些轴构成的低维空间中。
- 适用场景: 降维以减少特征数量、去除相关性和噪声;数据可视化(降到2维或3维);作为其他算法(如SVM、回归)预处理步骤提高效率。
- 关键: 找到数据变化最大的正交方向,并用它们构成新的低维基。
-
层次聚类:
- 核心思想: 通过构建一个树状结构(树状图) 来表示样本点(或子簇)之间的嵌套簇关系和亲疏程度。有“自底向上”和“自顶向下”两种策略。
- 原理(常用自底向上-凝聚型):
- 初始化: 每个样本点看作一个独立的簇。
- 合并: 计算所有簇对之间的距离(如最小距离-单链接、最大距离-全链接、平均距离-均链接、重心距离、Ward法-最小化合并后的簇内方差增量)。找到距离最近的两个簇,将它们合并成一个新的簇。
- 重复: 重复“合并”步骤,直到所有样本点都被合并到一个簇中,或达到预设的簇数量。
- 结果: 树状图展示了整个合并过程,通过在不同高度(代表合并时的距离)切割树状图,可以得到不同数量的簇。
- 适用场景: 不预先指定聚类数、需要了解数据层次结构或类属关系的场景(如生物分类学、文档主题层次)。
- 关键: 选择合适的距离计算方式(如簇间距离定义)和合并标准(如单链接容易链式合并,全链接偏好球形簇)。
三、 神经网络与深度学习(Deep Learning - 多层神经网络的子类)
- 人工神经网络:
- 核心思想: 受生物神经元启发,构建由大量相互连接的简单处理单元(神经元) 组成的计算模型。每个神经元接收输入信号,加权求和后进行非线性变换(通过激活函数),产生输出并传递给下一层神经元。
- 结构:
- 输入层: 接收原始特征数据。
- 隐藏层: 进行复杂的特征变换和表示学习。深度神经网络有多个隐藏层。
- 输出层: 产生最终的预测结果(如分类概率、回归值)。
- 连接权重: 连接线上带有权重
w,代表该连接的重要性。
- 原理(训练 - 以监督学习为例):
- 前向传播: 输入数据从输入层经隐藏层流向输出层,每一层进行加权求和
(Σ w*x + b)然后应用激活函数(如 ReLU, Sigmoid, Tanh)得到输出。 - 计算损失: 根据输出层的结果和真实标签,计算损失函数值(如交叉熵损失用于分类、均方误差用于回归)。
- 反向传播: 核心!由输出层向输入层反向计算损失函数相对于每个权重
w和偏置b的梯度(偏导数)。链式法则是关键。 - 参数更新: 使用优化器(最常用的是梯度下降法的变种,如 SGD, Adam)根据计算出的梯度来更新网络的权重
w和偏置b,以减小损失函数值。即w_new = w_old - learning_rate * dw(dw 是损失对 w 的梯度)。 - 迭代: 重复上述过程(前向 -> 损失 -> 反向传播 -> 更新权重)直到模型在验证集上表现良好或达到停止条件。
- 前向传播: 输入数据从输入层经隐藏层流向输出层,每一层进行加权求和
- 激活函数的作用: 引入非线性!如果没有激活函数,即使深层的神经网络也只能表示线性映射。ReLU 是目前深度学习中常用的激活函数。
- 适用场景: 计算机视觉(图像识别、目标检测)、自然语言处理(机器翻译、文本生成)、语音识别等需要学习复杂非线性关系和层次化特征表示的领域。在训练数据量大时效果尤为突出。
- 关键: 利用可微的层级结构进行前向计算和反向传播梯度,通过迭代优化最小化损失函数来学习权重。
选择哪种算法?
没有绝对“最好”的算法,选择取决于:
- 问题的类型: 分类、回归、聚类、降维?
- 数据的规模和维度: 数据量大吗?特征多吗?(例如 NN 在数据量大时有优势,SVM在中小数据高维时好)
- 数据特征的性质: 线性关系?复杂非线性?是否需要特征选择?
- 性能要求: 准确率?速度?内存占用?
- 可解释性要求: 需要理解模型内部决策吗?(决策树、线性回归可解释性好,深度神经网络可解释性差)
- 对噪音和缺失值的鲁棒性。
理解这些基本原理是选择、应用和调优模型的基础。实践中往往需要进行实验比较和验证。希望这个中文解释能帮助你建立清晰的认知!
基于自然邻居的标记分布机器学习算法
标记分布是一种新的机器学习范式,能很妤地解决某些标记多义性问题,可看作多标记的泛化。传统的单标记学习和多标记
资料下载
佚名
2021-05-13 11:46:33
7天热门专题
换一换
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- dtmb信号覆盖城市查询
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机