AI:机器学习核心算法详解

3.1 机器学习概述

机器学习是AI的核心分支,研究如何让计算机通过学习数据自动获取知识和技能,而无需显式编程。其核心思想是从大量数据中挖掘规律,构建数学模型,并用模型对未知数据进行预测或决策。

根据学习方式的不同,机器学习可分为三大类:

  • 监督学习:训练数据包含输入特征和对应的标签(输出结果),模型通过学习输入与输出之间的映射关系,对新的输入数据进行预测。常见任务包括分类(输出离散标签,如判断邮件是否为垃圾邮件)和回归(输出连续值,如预测房屋价格)。
  • 无监督学习:训练数据只有输入特征,没有标签,模型通过挖掘数据本身的内在结构和规律进行学习。常见任务包括聚类(将相似数据归为一类,如用户分群)和降维(减少数据特征维度,保留关键信息,如PCA降维)。
  • 强化学习:智能体通过与环境交互,根据环境的反馈(奖励或惩罚)调整自身的行为策略,以最大化累积奖励。常见应用场景包括游戏AI(如AlphaGo)、自动驾驶、机器人控制等。

此外,还有半监督学习(训练数据部分有标签,部分无标签)、弱监督学习(标签不精确或不完整)等其他学习方式,适用于特定的应用场景。

3.2 监督学习算法

3.2.1 线性回归(Linear Regression)

线性回归是最简单、最基础的回归算法,用于建立输入特征(自变量)与连续输出值(因变量)之间的线性关系模型。其核心假设是输入特征与输出值之间存在线性相关关系。

线性回归的模型表达式为:y = w₀ + w₁x₁ + w₂x₂ + ... + wₙxₙ + ε,其中x₁,x₂,...,xₙ是输入特征,w₀是截距项,w₁,w₂,...,wₙ是特征权重,ε是误差项。模型的训练目标是找到最优的权重参数w,使得模型预测值与真实值之间的误差最小化。

常用的误差度量指标是均方误差(MSE):MSE = (1/m)Σ(yᵢ - ŷᵢ)²,其中m是样本数量,yᵢ是真实值,ŷᵢ是预测值。训练过程就是通过最小化MSE来求解权重参数,常用的求解方法是正规方程(直接求解权重的解析解)和梯度下降(迭代优化求解权重)。

线性回归的应用场景包括房价预测、销售额预测、气温预测等连续值预测任务。其优点是模型简单、可解释性强;缺点是只能处理线性关系,对非线性数据的拟合效果较差。

3.2.2 逻辑回归(Logistic Regression)

逻辑回归虽然名称中带有“回归”,但实际上是一种分类算法,主要用于二分类任务(输出标签为0或1)。其核心思想是将线性回归的输出通过sigmoid函数映射到[0,1]区间,得到样本属于某一类别的概率。

逻辑回归的模型表达式为:ŷ = σ(w₀ + w₁x₁ + ... + wₙxₙ),其中σ是sigmoid函数,σ(z) = 1/(1 + e⁻ᵢ)。sigmoid函数的特点是当z→+∞时,σ(z)→1;当z→-∞时,σ(z)→0;当z=0时,σ(z)=0.5。通过设定阈值(如0.5),可将概率转换为分类标签:当ŷ≥0.5时,预测为类别1;当ŷ<0.5时,预测为类别0。

逻辑回归的训练目标是最大化对数似然函数(或最小化交叉熵损失),常用的优化方法是梯度下降。其应用场景包括垃圾邮件识别、疾病诊断(如判断是否患有某种疾病)、客户流失预测等二分类任务。

逻辑回归的优点是模型简单、训练速度快、可解释性强,对数据量要求不高;缺点是只能处理线性可分的数据,对复杂非线性数据的分类效果较差。通过引入多项式特征,逻辑回归也可处理部分非线性问题。

3.2.3 决策树(Decision Tree)

决策树是一种树形结构的分类与回归算法,其核心思想是通过对输入特征的一系列判断,将数据逐步划分到不同的叶子节点,每个叶子节点对应一个分类标签或回归值。决策树的结构包括根节点(初始判断节点)、内部节点(中间判断节点)和叶子节点(最终结果节点)。

决策树的构建过程是选择最优的特征和划分阈值,将数据划分为纯度更高的子集。常用的特征选择指标包括信息增益(基于熵的度量,熵越小表示数据纯度越高)、信息增益比、Gini系数(衡量数据的不纯度,Gini系数越小纯度越高)。

对于分类决策树,叶子节点是类别标签;对于回归决策树,叶子节点是该子集的均值或中位数。决策树的应用场景广泛,包括信用评估、客户分类、故障诊断等。其优点是模型直观、可解释性强,无需对数据进行预处理(如标准化),可处理非线性数据;缺点是容易过拟合(模型在训练数据上表现好,在测试数据上表现差),泛化能力较弱。

为了缓解过拟合问题,可采用剪枝(预剪枝:在树构建过程中停止生长;后剪枝:构建完整树后删除部分分支)、随机森林(集成多个决策树)等方法。

3.2.4 随机森林(Random Forest)

随机森林是一种集成学习算法,通过集成多个决策树的预测结果来提高模型的泛化能力。其核心思想是“bagging”( Bootstrap Aggregating),即通过bootstrap抽样(有放回抽样)从原始数据集中生成多个子数据集,每个子数据集训练一棵决策树,最终的预测结果通过多数投票(分类任务)或取均值(回归任务)得到。

随机森林的特点是在构建每棵决策树时,不仅对数据进行抽样,还会对特征进行随机选择(即每棵树只使用部分特征进行训练),这样可以降低单棵决策树的方差,减少过拟合的风险,同时提高模型的稳定性和准确性。

随机森林的关键参数包括决策树的数量(n_estimators)、每棵树的最大深度(max_depth)、每个节点分裂时考虑的最大特征数(max_features)等。其应用场景包括图像分类、文本分类、生物信息学、金融风险预测等。优点是泛化能力强、不易过拟合、可处理高维数据;缺点是模型复杂度较高,可解释性不如单一决策树。

3.3 无监督学习算法

3.3.1 K-均值聚类(K-Means)

K-均值聚类是最常用的无监督聚类算法,其核心思想是将数据集划分为K个不相交的簇,使得每个簇内的数据点相似度尽可能高,簇间的数据点相似度尽可能低。其中K是用户预先指定的簇数。

K-均值聚类的算法流程如下:

  1. 初始化:从数据集中随机选择K个数据点作为初始聚类中心。
  2. 分配簇:计算每个数据点到K个聚类中心的距离(常用欧氏距离),将数据点分配到距离最近的聚类中心所在的簇。
  3. 更新聚类中心:计算每个簇内所有数据点的均值,将其作为新的聚类中心。
  4. 迭代:重复步骤2和步骤3,直到聚类中心不再发生明显变化(或达到预设的迭代次数)。

K-均值聚类的目标函数是最小化簇内平方和(SSE):SSE = ΣΣ||x - μⱼ||²,其中μⱼ是第j个簇的聚类中心,x是第j个簇内的数据点。

K-均值聚类的应用场景包括用户分群(如电商平台根据用户购买行为将用户分为不同群体,进行精准营销)、图像分割、异常检测、数据降维后的可视化等。优点是算法简单、计算效率高、适用于大规模数据;缺点是需要预先指定K值(K值的选择对聚类结果影响较大)、对初始聚类中心敏感、对非球形簇的聚类效果较差。

选择最优K值的常用方法包括肘部法则(绘制SSE随K值变化的曲线,曲线中“肘部”对应的K值即为最优值)和轮廓系数(衡量簇内相似度和簇间分离度,轮廓系数越大,聚类效果越好)。

3.3.2 主成分分析(PCA)

主成分分析是一种常用的无监督降维算法,其核心思想是通过线性变换将高维数据映射到低维空间,保留数据集中最具代表性的信息(即方差最大的方向),从而减少数据的维度,同时尽可能保留原始数据的特征。

PCA的算法流程如下:

  1. 数据标准化:对原始数据进行标准化处理(均值为0,方差为1),消除不同特征量纲的影响。
  2. 计算协方差矩阵:协方差矩阵用于衡量不同特征之间的相关性。
  3. 计算协方差矩阵的特征值和特征向量:特征值表示对应特征向量方向上的方差大小,特征值越大,该方向包含的信息越多。
  4. 选择主成分:根据特征值的大小,选择前K个最大的特征值对应的特征向量作为主成分,K即为降维后的维度。
  5. 数据映射:将原始数据投影到选择的主成分上,得到降维后的数据。

PCA的应用场景包括数据可视化(将高维数据降维到2D或3D空间进行可视化)、特征选择(去除冗余特征,提高模型训练效率)、图像压缩、噪声去除等。优点是能够有效降低数据维度,减少计算量,去除数据中的冗余信息;缺点是线性降维方法,无法处理非线性数据的降维,降维后的数据可解释性较差。

3.4 模型评估与选择

3.4.1 数据集划分

在机器学习模型训练过程中,为了评估模型的泛化能力,需要将数据集划分为训练集、验证集和测试集:

  • 训练集:用于训练模型,让模型学习数据中的规律,占比通常为60%-70%。
  • 验证集:用于调整模型参数(如正则化参数、决策树深度等),选择最优的模型,占比通常为10%-20%。
  • 测试集:用于最终评估模型的泛化能力,模拟模型在真实场景中的表现,占比通常为20%-30%。

常用的划分方法包括随机划分(使用train_test_split函数将数据集划分为训练集和测试集,再从训练集中划分出验证集)和分层划分(确保划分后各数据集的类别分布与原始数据集一致,适用于不平衡数据集)。

此外,交叉验证(Cross-Validation)是一种更可靠的模型评估方法,尤其是在数据量较小时。常用的交叉验证方法是K折交叉验证:将数据集划分为K个大小相等的子集,依次用K-1个子集作为训练集,1个子集作为验证集,进行K次训练和验证,最终取K次验证结果的平均值作为模型的评估指标。

3.4.2 分类模型评估指标

分类模型的评估指标主要基于混淆矩阵(Confusion Matrix),混淆矩阵是一个2×2矩阵(二分类任务),包含真阳性(TP,实际为正类,预测为正类)、假阳性(FP,实际为负类,预测为正类)、真阴性(TN,实际为负类,预测为负类)、假阴性(FN,实际为正类,预测为负类)四个指标。基于混淆矩阵,衍生出以下常用评估指标:

  • 准确率(Accuracy):正确预测的样本数占总样本数的比例,Accuracy = (TP + TN)/(TP + FP + TN + FN)。适用于平衡数据集,但在不平衡数据集(如疾病诊断中阳性样本极少)中,准确率无法准确反映模型性能。
  • 精确率(Precision):预测为正类的样本中,实际为正类的比例,Precision = TP/(TP + FP)。适用于关注预测正类准确性的场景(如垃圾邮件识别,避免将正常邮件误判为垃圾邮件)。
  • 召回率(Recall/Sensitivity):实际为正类的样本中,被正确预测为正类的比例,Recall = TP/(TP + FN)。适用于关注正类样本不被遗漏的场景(如疾病诊断,避免将患病患者误判为健康人)。
  • F1分数:精确率和召回率的调和平均数,F1 = 2×(Precision×Recall)/(Precision + Recall)。综合考虑了精确率和召回率,适用于不平衡数据集。
  • ROC曲线与AUC值:ROC曲线以假阳性率(FPR = FP/(FP + TN))为横轴,真阳性率(TPR = Recall)为纵轴,曲线下面积(AUC)越大,模型的分类性能越好。适用于评估模型在不同阈值下的性能,对不平衡数据集具有较好的适应性。

3.4.3 回归模型评估指标

回归模型的评估指标主要用于衡量模型预测值与真实值之间的误差,常用指标包括:

  • 均方误差(MSE):预测值与真实值差值的平方和的平均值,MSE = (1/m)Σ(yᵢ - ŷᵢ)²。对异常值敏感,因为异常值的平方会放大误差。
  • 均方根误差(RMSE):MSE的平方根,RMSE = √MSE。与原始数据具有相同的量纲,更直观地反映预测误差的大小。
  • 平均绝对误差(MAE):预测值与真实值差值的绝对值的平均值,MAE = (1/m)Σ|yᵢ - ŷᵢ|。对异常值不敏感,鲁棒性较好。
  • 决定系数(R²):衡量模型对数据的拟合程度,R² = 1 - (Σ(yᵢ - ŷᵢ)²)/(Σ(yᵢ - ȳ)²),其中ȳ是真实值的均值。R²的取值范围为(-∞,1],R²越接近1,说明模型拟合效果越好;R²=0时,模型预测效果与均值预测相当;R²<0时,模型预测效果差于均值预测。

3.4.4 模型选择与超参数调优

模型选择的核心是选择泛化能力最强的模型,避免出现过拟合和欠拟合问题:

  • 欠拟合(Underfitting):模型过于简单,无法捕捉数据中的规律,导致在训练集和测试集上表现都较差。解决方法包括增加模型复杂度(如增加决策树的深度、使用非线性模型)、增加特征数量、减少正则化强度等。
  • 过拟合(Overfitting):模型过于复杂,学习到了训练数据中的噪声和偶然规律,导致在训练集上表现好,在测试集上表现差。解决方法包括增加训练数据量、降低模型复杂度(如剪枝、减少决策树深度)、使用正则化(L1正则化、L2正则化)、数据增强等。

超参数是模型训练前需要手动设置的参数(如K-均值的K值、随机森林的n_estimators、正则化参数λ等),超参数调优的目的是找到最优的超参数组合,提高模型性能。常用的超参数调优方法包括:

  • 网格搜索(Grid Search):遍历超参数的所有可能组合,通过交叉验证评估每个组合的性能,选择最优组合。优点是全面,缺点是计算量较大,适用于超参数数量较少的情况。
  • 随机搜索(Random Search):在超参数的取值范围内随机采样,通过交叉验证评估每个采样点的性能,选择最优组合。优点是计算量较小,效率高,适用于超参数数量较多的情况。
  • 贝叶斯优化(Bayesian Optimization):基于先验知识和历史评估结果,构建超参数与模型性能之间的概率模型,指导后续的超参数采样,逐步逼近最优超参数组合。优点是收敛速度快,计算效率高,适用于复杂的超参数优化问题。