Machine Learning: 十大基本机器学习算法

机器学习算法分类:监督学习、无监督学习、强化学习

基本的机器学习算法:

        线性回归、支持向量机(SVM)、最近邻居(KNN)、逻辑回归、决策树、k平均、随机森林、朴素贝叶斯、降维、梯度增强。

机器学习算法大致可以分为三类:

  • 监督学习算法 (Supervised Algorithms):   在监督学习训练过程中,可以由训练数据集学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。该算法要求特定的输入/输出,首先需要决定使用哪种数据作为范例。例如,文字识别应用中一个手写的字符,或一行手写文字。主要算法包括神经网络、支持向量机、最近邻居法、朴素贝叶斯法、决策树等。
  • 无监督学习算法 (Unsupervised Algorithms):    这类算法没有特定的目标输出,算法将数据集分为不同的组。
  • 强化学习算法 (Reinforcement Algorithms):   强化学习普适性强,主要基于决策进行训练,算法根据输出结果(决策)的成功或错误来训练自己,通过大量经验训练优化后的算法将能够给出较好的预测。类似有机体在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。

【一句话总结】
         监督学习:跟着老师学(有标准答案)
        无监督学习:自己找规律(无标准答案)
        强化学习:边玩边学(用奖惩调参数)


1. 线性回归算法 Linear Regression

        回归分析(Regression Analysis)是统计学的数据分析方法,目的在于了解两个或多个变量间是否相关、相关方向与强度,并建立数学模型以便观察特定变量来预测其它变量的变化情况。

      线性回归算法(Linear Regression)的建模过程就是使用数据点来寻找最佳拟合线。

2. 支持向量机算法(Support Vector Machine,SVM)

        支持向量机/网络算法(SVM)属于分类型算法。SVM模型将实例表示为空间中的点,将使用一条直线分隔数据点。需要注意的是,支持向量机需要对输入数据进行完全标记,仅直接适用于两类任务,应用将多类任务需要减少到几个二元问题。   尤其在二分类任务中效果显著。

原理:寻找最优超平面,最大化不同类别数据间的间隔。通过核函数(如高斯核)将数据映射到高维空间解决非线性问题。

3. 最近邻居/k-近邻算法 (K-Nearest Neighbors,KNN)

3.1 KNN算法解释:

       KNN算法基于一个非常直观的思想对于一个未知类别的数据点,可以通过查看它在特征空间中距离最近的K个邻居的类别或数值信息,来决定该数据点的类别或预测其值。

 3.2算法的主要步骤如下

1. 计算距离

        常用的距离度量方法有欧氏距离、曼哈顿距离等。对于一个待预测的数据点,计算它与训练集中所有数据点的距离。

2. 选择最近邻

        根据计算得到的距离,选取距离最小的K个数据点

    ​优点:无需训练,简单直观,适合多分类问题

3.3 L1范数和L2范数:

曼哈顿距离(街区距离): 绝对值和,L1范数

 欧氏距离(直线距离): 平方和开方, L2范数

特性L1 范数L2 范数
解的稀疏性会产生稀疏解部分参数为零解是密集的(参数趋近于零但不为零
正则化效果更侧重于特征选择更侧重于降低参数的量级
对异常值的敏感度不敏感(具有鲁棒性)敏感(容易受到噪声的影响)
优化难度非光滑,求解难度较大光滑,求解较为容易
典型应用场景Lasso 回归岭回归
对比项Lasso 回归岭回归
正则化类型L1 范数(绝对值之和)L2 范数(平方和)
目标特征选择(稀疏解)防止过拟合、缓解共线性
解的特性部分参数为 0(稀疏性)参数较小但非零(平滑性)
适用场景高维数据(如基因数据、文本分析)数据存在共线性(如经济建模)
优化算法近端梯度下降、LARS 等特殊算法梯度下降、Normal Equation 等
参数解释性可直接排除无关特征(参数为 0)参数均非零,需结合业务判断
  • Lasso 回归
    像 “严格的老师”,强制让不重要的特征系数变为 0,直接剔除冗余特征,适合需要精简模型的场景。

  • 岭回归
    像 “温和的老师”,让所有特征系数都缩小,但保留所有特征,适合需要稳定模型且特征间存在相关性的场景。


 3.4最常用的「K 折交叉验证」步骤(以 5 折为例)

  1. 分块:把数据随机分成 5 份(每份叫「折」Fold)。
    (例:奶茶用户数据 1000 条 → 分 5 组,每组 200 条)
  2. 循环训练
    • 第 1 轮:用第 2-5 组(800 条)训练模型,测第 1 组(200 条)→ 得准确率 85%
    • 第 2 轮:用第 1,3-5 组训练,测第 2 组 → 得准确率 88%
    • ……(重复 5 次,每轮换不同的组当测试集)
  3. 汇总结果:5 次准确率的平均分(如 86.6%),作为模型真实水平。
3.3.1 k 越小:听「最铁邻居」的,可能踩坑
  • 例子:你选餐厅时,只问最近的 1 个邻居(k=1)。
    → 若邻居是素食者,ta推荐的素菜馆,可能不适合爱吃肉的你(过拟合,被局部噪声带偏)。
  • 优点:捕捉细节(比如小众宝藏店)。
  • 缺点:怕异常值(比如邻居那天心情不好乱推荐)。
  • 适合:数据干净、想保留细节的场景(如手写数字识别)。
3.3.2   k 越大:听「全班意见」,可能平庸
  • 例子:你问全班 50 个人(k=50),最终选了评分最高的连锁餐厅。
    → 虽然不踩雷,但可能错过你喜欢的特色小店(欠拟合,模糊了个体差异)。
  • 优点:抗噪声(少数差评被稀释)。
  • 缺点:忽略局部特征(比如你家楼下的隐藏好店)。
  • 适合:数据噪声大、想平滑结果的场景(如用户偏好预测)。

4. ​逻辑回归(Logistic Regression)​

原理:通过Sigmoid函数将线性组合映射到[0,1],输出概率值进行二分类,损失函数为交叉熵。参数估计使用最大似然法。

如何确定逻辑回归中的w和b呢?这里就要借用最大似然法

最大似然法:

最大似然法 =「数据侦探」                   核心:根据结果反推最合理的「剧本」(参数)。

最大似然法是一种基于概率模型的参数估计方法,其核心思想是通过观测数据反推最可能生成这些数据的模型参数


5. 决策树算法 Decision Tree

5.1决策树介绍:

        决策树是通过一系列规则对数据进行分类的过程。它提供一种在什么条件下会得到什么值的类似规则的方法。

        决策树分为分类树和回归树两种,分类树对离散变量做决策树,回归树对连续变量做决策树。

5.2划分选择:

       不同的算法(ID3、C4.5、CART)在特征选择上使用不同的指标,但递归分割数据构建决策树的基本思想是一致的。

  • 信息增益(ID3 算法):

        信息熵:信息熵是用来衡量数据纯度的指标,它表示数据的不确定性程度。

        信息增益:信息增益是指在划分数据集前后信息熵的减少量,它表示使用某个特征进行划分后,数据集的纯度提高了多少。

        一般而言,信息增益越大,则意味着使用属性a来进行划分所获得的“纯度提升”越大,因此,我们可用信息增益来进行决策树的划分属性选择。

ID3 算法在构建决策树时,会选择信息增益最大的特征作为当前节点的分割特征。

  • 增益率(C4.5 算法):

   信息增益存在的问题:信息增益倾向于选择取值较多的特征,因为取值较多的特征会将数据集划分成更多的子集,从而使信息熵降低得更多。为了解决这个问题,C4.5 算法引入了增益率。

C4.5 算法在构建决策树时,会选择增益率最大的特征作为当前节点的分割特征。

  • 基尼指数(CART 算法):

基尼指数:基尼指数也是用来衡量数据纯度的指标,它表示从数据集中随机抽取两个样本,其类别不一致的概率。

CART 算法在构建决策树时,会选择基尼指数最小的特征作为当前节点的分割特征。

信息增益、增益率、基尼指数是决策树的 “灵魂指标”,其差异直接导致树结构和性能的分化。

        信息增益、增益率、基尼指数是决策树的 “灵魂指标”,信息增益、增益率、基尼指数是决策树的特征选择方法,与线性回归、SVM、KNN 无关。信息增益等指标仅用于决策树的特征分裂,而线性回归、SVM、KNN 需通过其他方式(如系数、核函数、距离权重)间接关联特征重要性。若要比较它们在 “构建决策树时的性能”,实际是比较【不同决策树算法(ID3/C4.5/CART)】在相同数据集上的表现。

        原理:递归分割数据,选择信息增益(ID3)、增益率(C4.5)或基尼指数(CART)最大的特征作为节点,生成树形结构。

5.3决策树生成过程:

一棵决策树的生成过程主要分为以下3个部分:

  •   特征选择: 是指从训练数据中众多的特征中选择一个特征作为当前节点的分裂标准,如何选择特征有着很多不同量化评估标准标准,从而衍生出不同的决策树算法。
  • 决策树生成: 根据选择的特征评估标准,从上至下递归地生成子节点,直到数据集不可分则停止决策树停止生长。 树结构来说,递归结构是最容易理解的方式。
  • 决策树剪枝: 决策树容易过拟合,一般来需要剪枝,缩小树结构规模、缓解过拟合。剪枝技术有预剪枝和后剪枝两种。

注意对于那些各类别样本数量不一致的数据,在决策树当中信息增益的结果偏向于那些具有更多数值的特征。

5.4 剪枝处理

5.4.1 预剪枝

        预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点;

5.4.2 后剪枝

         后剪枝则是先从训练集生成一棵完整的决策树, 然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。

6. k-平均算法 K-Means

6.1K-Means算法介绍

      k-平均算法(K-Means)是一种无监督学习算法,为聚类问题提供了一种解决方案。
K-Means 算法把 n 个点(可以是样本的一次观察或一个实例)划分到 k 个集群(cluster),使得每个点都属于离他最近的均值(即聚类中心,centroid)对应的集群。重复上述过程一直持续到重心不改变。

原理:通过迭代优化,将数据划分为K个簇,使簇内样本距离质心最近。目标是最小化簇内平方误差。

6.2K-means算法的缺点包括

  • K必须是事先给定的
  • 选择初始聚类中心
  • 对于“噪声”和孤立点数据是敏感的

7. 随机森林算法 Random Forest

        随机森林算法(Random Forest)的名称由 1995 年由贝尔实验室提出的random decision forests 而来,正如它的名字所说的那样,随机森林可以看作一个决策树的集合。
随机森林中每棵决策树估计一个分类,这个过程称为“投票(vote)”
。理想情况下,我们根据每棵决策树的每个投票,选择最多投票的分类。

原理集成多棵决策树,通过Bagging(有放回抽样)和随机特征选择降低方差,最终投票或平均结果。

8. 朴素贝叶斯算法 Naive Bayes        

        朴素贝叶斯的核心思想基于贝叶斯定理,通过计算后验概率来进行分类。其“朴素”之处在于假设特征之间是条件独立的,这一假设虽然在实际应用中并不总是成立,但在许多情况下,朴素贝叶斯依然能够取得令人满意的分类效果。这使得朴素贝叶斯成为许多实际应用中的首选模型,尤其是在处理高维数据和大规模数据集时,展现出其独特的优势。

        贝叶斯学派(Bayesian)在概率模型的参数估计中,认为参数是未观察到的随机变量,并且可以为其假设一个先验分布(prior distribution)。然后,基于观测到的数据,通过贝叶斯定理计算参数的后验分布(posterior distribution)。这一过程体现了贝叶斯统计的核心思想:将先验知识与观测数据结合,更新对参数的信念。

        朴素贝叶斯是一种超级 “单纯” 的分类算法,核心思想就像 “看菜下饭”—— 通过统计 “特征组合” 出现的概率来判断类别。


 为什么叫 “朴素”?

        因为它做了一个 “天真” 的假设:所有特征之间完全独立(比如西瓜的 “表皮” 和 “重量” 互不影响)。虽然现实中特征可能相关(比如重的西瓜可能更成熟,表皮更光滑),但这个假设让计算变得超级简单,而且在文本分类(如垃圾邮件过滤)等场景中效果惊人。

        朴素贝叶斯就像一个 “统计小能手”,先数清楚每个类别里各个特征出现的次数,再假设特征之间互不干扰,最后用 “概率投票” 决定新样本的类别 —— 简单粗暴,但好用!


9. 降维算法 Dimensional Reduction

        在机器学习和统计学领域,降维是指在限定条件下,降低随机变量个数,得到一组“不相关”主变量的过程,并可进一步细分为特征选择和特征提取两大方法。

        一些数据集可能包含许多难以处理的变量。特别是资源丰富的情况下,系统中的数据将非常详细。在这种情况下,数据集可能包含数千个变量,其中大多数变量也可能是不必要的。在这种情况下,几乎不可能确定对我们的预测影响最大的变量。此时,我们需要使用降维算法,降维的过程中也可能需要用到其他算法,例如借用随机森林,决策树来识别最重要的变量。

原理:减少特征数量,保留主要信息。线性方法如PCA(主成分分析)通过方差最大化投影。

特点

  • 优点:降低计算成本,去除噪声,可视化高维数据
  • 缺点:可能丢失部分信息(如PCA对非线性关系失效)
  • 应用:图像压缩、数据预处理,用于特征工程阶段

10. 梯度增强算法 Gradient Boosting

        梯度增强算法(Gradient Boosting)使用多个弱算法来创建更强大的精确算法。它与使用单个估计量不同,而是使用多个估计量创建一个更稳定和更健壮的算法。

原理:迭代训练弱学习器(通常为决策树),每轮拟合残差的负梯度,逐步减少损失函数(如MSE、交叉熵)。XGBoost、LightGBM为其优化版本。

​ GBDT(Gradient Boosting Decision Tree),全名叫梯度提升决策树,使用的是Boosting的思想。 ​

10.1 Boosting思想

        Boosting方法训练   基分类器   时采用串行的方式,各个  基分类器  之间有依赖。它的基本思路是将  基分类器  层层叠加,每一层在训练的时候,对前一层  基分类器  分错的样本,给予更高的权重。测试时,根据各层分类器的结果的加权得到最终结果。

10.2Bagging 与 Boosting 的核心区别?

对比维度BaggingBoosting
训练方式并行训练多个基模型(基模型间无依赖)串行训练基模型(后一个模型依赖前一个模型的错误)
样本选择通过自助采样(Bootstrap)生成多个独立子集每个基模型关注前一个模型误判的样本(调整样本权重或重新采样)
基模型类型通常为高方差、低偏差模型(如决策树)通常为低方差、高偏差模型(如弱分类器)
误差处理降低方差(通过平均 / 投票减少随机误差)降低偏差(通过逐步修正错误)
并行性支持并行训练(高效)只能顺序训练(耗时)
结果聚合多数投票(分类)或平均(回归)通过加权投票或累加残差(如 Gradient Boosting)
过拟合风险较低(因基模型独立且多样性高)较高(需控制迭代次数和学习率)
典型算法随机森林(Random Forest)AdaBoost、梯度提升树(GBM)、XGB

        Bagging与Boosting的串行训练方式不同,Bagging方法在训练过程中,各基分类器之间无强依赖,可以进行并行训练。  

10.3 GBDT原来是这么回事

        GBDT的原理很简单,就是所有弱分类器的结果相加等于预测值,然后下一个弱分类器去拟合误差函数对预测值的残差(这个残差就是预测值与真实值之间的误差)。当然了,它里面的弱分类器的表现形式就是各棵树。

        在 GBDT 里,当我们训练完足够多的决策树后,把每棵树的预测结果累加起来,再加上最初的基础预测值,就得到了一个非常接近真实值的预测结果。

 面试常问: 

  • 「随机森林和 GBDT 的区别???」—— 前者是并行投票的「佛系树群」,后者是串行纠错的「卷王树群」
  •   每个算法配一个简笔画小场景,比如 KNN 画 5 个小人围着新用户,SVM 画一条宽线隔开猫猫狗狗
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值