前言
什么是机器学习? 机器学习有什么用? 如何用机器学习? 本文会围绕这几个问题进行阐述。
- 机器学习:是人工智能的一个子集,专门研究计算机如何模拟或实现人类智能行为,以获取新的知识或技能,并不断重组完善已有知识结构的学科;
- 机器学习有什么用:从实践意义来讲,机器学习在大数据支撑下,通过各种算法让机器对数据进行深层次的统计分析,让人工智能系统获得归纳推理和决策能力,帮助人类智能延伸;
- 如何进行机器学习:从上可知,机器学习离不开数据、模型和算法,通常包含数据预处理、模型学习、模型评估、样本预测几个步骤。
- 数据预处理:从原始raw数据,经过(特征处理+幅度缩放、特征选择、维度约减、采样),输出测试集和训练集;
- 模型学习:模型选择、交叉验证、结果评估、超参选择;
- 模型评估:选择符合场景的评估准则
- 样本预测:新的输入数据预测
1. 机器学习分类
-
监督学习(Supervised Learning):训练集有目标label。监督学习可以进一步分为回归(Regression)和分类(Classification)问题。回归任务预测连续值输出(如房价预测),而分类任务则预测离散的类别标签(如垃圾邮件识别)。
-
无监督学习(Unsupervised Learning):与监督学习不同,无监督学习的数据没有明确的标签或结果。它的目标是发现数据中的结构、模式或者将数据分为不同的群组(聚类)。常见的无监督学习方法包括聚类(Clustering)、降维(Dimensionality Reduction,如PCA、t-SNE)等。
-
半监督学习(Semi-supervised Learning):介于监督学习和无监督学习之间,它利用大量的未标记数据和少量的标记数据来进行学习。目的是利用未标记数据提供的额外信息来提高学习模型的性能,尤其是在标记数据稀缺的情况下。
-
强化学习(Reinforcement Learning):算法(智能体)通过与环境交互来学习如何采取行动,以最大化某种累积奖励。强化学习的核心在于学习策略,即在给定状态下选择行动的规则,以达到长期奖励最大化的最终目标。常见的应用包括游戏AI、机器人导航等。
-
迁移学习(Transfer Learning):这是一种利用从一个任务中学到的知识来帮助完成另一个相关但不完全相同的任务的方法。迁移学习可以减少对大量标注数据的需求,加速新任务的学习过程。特别是在深度学习领域,预训练的模型(如ImageNet上的CNN模型)经常被用作其他视觉任务的起点。
-
元学习(Meta-Learning):也称为“学习如何学习”,旨在使机器学习模型能够从以前的学习经验中快速适应新任务。元学习的关键思想是设计模型架构或训练程序,使得模型能够基于少数几个样本快速调整其参数,适用于快速变化的任务环境或小样本学习场景。
1. 监督学习
1.1回归模型
回归分析是用来预测一个或多个变量(称为自变量、解释变量或特征)如何影响另一个变量(称为因变量、响应变量或目标变量)的方法。根据模型的形式,回归模型可以大致分为两大类:线性模型和非线性模型。
1.1.1 线性回归模型
线性模型的数学推导是
其中,是求解线性拟合。
L1正则化
-
定义:L1正则化是通过向损失函数添加权重参数的绝对值之和来限制模型复杂度。具体形式为:
L2正则化
-
定义:L2正则化是通过向损失函数添加权重参数的平方和来约束模型的复杂性。具体形式为:
L1&L2正则化
普通最小二乘线性回归 (Ordinary Least Squares Linear Regression - OLS)
目标函数是
Ridge岭回归
在 OLS 的基础上添加了 L2 正则化项 (系数的平方和),缓解多重共线性问题,使模型更稳定。适用于多重共线性问题场景。
Lasso(Least Absolute Shrinkage and Selection Operator Regression)
在 OLS 的基础上添加了 L1 正则化项 (系数的绝对值之和),可以进行特征选择,将一些系数缩小到 0。适用于存在大量特征,需要进行特征选择时
弹性网络回归 (Elastic Net Regression)
结合了 L1 和 L2 正则化项,既能进行特征选择,又能处理多重共线性问题。适用于同时存在多重共线性问题和需要特征选择的情况。
广义线性模型 (Generalized Linear Models - GLM)
是一种用于描述响应变量与一组解释变量之间关系的高级统计模型。它包括了常见的线性回归、逻辑回归和泊松回归等。GLM的核心是链接函数,它建立了线性预测器和响应变量的期望值之间的联系,适用于具有指数分布族的数据(如正态分布、泊松分布、伽马分布等),可以处理连续或计数型目标变量。(解释性好)
贝叶斯线性回归(Bayesian Linear Regression):
核心思想是将参数视为随机变量,并利用贝叶斯定理将先验知识与数据结合起来,得到参数的后验概率分布。
- 优势: 提供参数的不确定性估计,可以进行模型比较和预测区间估计。
- 劣势: 计算复杂度较高,需要选择合适的先验分布。
除此之外,还有类似分段线性、逐步回归、角回归等,不做详细概述。
1.1.2 非线性回归模型
支持向量回归 (Support Vector Regression - SVR)
使用核函数将数据映射到高维空间,并在高维空间中进行线性回归。对异常值相对不敏感,可以捕捉非线性关系。适用场景: 数据存在非线性关系。
多项式回归(Polynomial Regression)
通过将自变量的高次项纳入模型来捕捉非线性关系。
优点: 易于理解和实现,计算成本相对较低,可以拟合各种形状的曲线。
缺点: 容易过拟合,特别是在高次多项式的情况下。对异常值敏感。在数据点稀疏的区域,预测结果可能不稳定。
决策树回归
通过决策树做回归
KNN 回归
K临近回归模型
神经网络非线性回归
使用多层神经网络,可以捕捉非常复杂的非线性关系。
线性回归模型总结
特征 | OLS | Ridge | Lasso | ENR | 多项式回归 | SVR | 贝叶斯回归 | GLM |
目标函数 | 残差平方和 | 残差平方和+L2 | 残差平方和+L1 | 残差平方和+L1+L2 | 残差平方和 | 最大间隔 | 后验分布 | 最大似然函数 |
正则化 | 无 | L2 | L1 | L1+L2 | 无 | L2 | 通过先验分布 | 可以有L1、L2、L1+L2 |
特征选择 | 否 | 否 | 是 | 是 | 否 | 否 | 取决于先验概率 | 否 |
多重共线性 | 敏感 | 鲁棒 | 敏感 | 鲁棒 | 敏感 | 鲁棒 | 鲁棒 | 敏感 |
异常值敏感 | 敏感 | 鲁棒 | 敏感 | 鲁棒 | 敏感 | 鲁棒 | 鲁棒 | 敏感 |
输出 | 连续值 | 连续值 | 连续值 | 连续值 | 连续值 | 类别 | 连续值 | 连续值 |
1.2 分类问题
算法 | KNN | 逻辑回归 | 朴素贝叶斯 | 决策树 | 随机森林 | GBDT | XGBoost | 支持向量机 |
原理 | 通过计算待分类样本与已知类别样本的距离,选取最近的K个邻居,根据这K个邻居的类别来决定待分类样本的类别 | 通过Sigmoid函数将线性回归的输出映射到(0,1)之间 | 基于贝叶斯定理和特征条件独立假设的分类方法,计算给定特征下各个类别的概率 | 通过递归地选择最优特征进行划分 | 多颗决策树集成 | 是一种提升方法,新树尝试修正前一棵树的错误,通过迭代地训练决策树来最小化损失函数。 | GBDT的优化版本,增加了正则化项以防止过拟合 | 寻找一个超平面最大化各类样本之间的间隔,从而实现分类 |
优点 | 无需训练可直接预测,噪声不敏感 | 训练速度快、模型解释性强 | 简单高效 | 能处理连续和离散值 | 减少过拟合,能评估特征重要性 | 强大的表达能力和高精度,能自动做特征组合 | 高度优化,运行速度快,支持自定义目标函数和评估指标。 | 在高维空间有很好的分类能力,对小样本且特征维度高的数据效果好。 |
缺点 | 计算量大、选择合适的K比较难 | 特征敏感、多重共线性 | 特征独立假设不成立 | 容易过拟合,数据敏感 | 训练时间长,解释性差 | 训练时间长,容易过拟合 | 参数更多,调参复杂度较高。 | 计算复杂度高,尤其是核技巧在大规模数据上 |
适用场景 | 不假设数据分布,适用于各种数据类型 | 多分类、数据量小 |
2. 无监督学习
2.1 聚类问题
主流的聚类算法可以分成两类:划分聚类(Partitioning Clustering)和层次聚类(Hierarchical Clustering)。
- 划分聚类:算法会给出一系列扁平结构的簇,它们之间没有任何显式的结构来表明彼此的关联性。常见算法有 K-Means / K-Medoids、Gaussian Mixture Model (高斯混合模型)、Spectral Clustering(谱聚类)等。
- 层次聚类:会输出一个具有层次结构的簇集合,因此能够比划分聚类输出的无结构簇集合提供更丰富的信息。层次聚类可以认为是是嵌套的划分聚类,常见算法有 Single-linkage、Complete-linkage、Connectivity-based Clustering等。
2.1.1 K-Means / K-Medoids
K-means初始化的时候以随机取点作为起始点;迭代过程中,取同一类的所有数据点的重心(或质心)作为新中心点。重复将所有的数据都划分完成。
K-Medoids 重心不是质心,而是数据点,距离计算从平方变成绝对值。
2.1.2 高斯混合模型
它假设数据是由多个高斯分布组成的混合模型生成的,每个高斯分布被称为一个"组件",代表一个聚类。算法的目标是找到这些高斯分布的参数,并确定每个数据点属于哪个分布。
2.1.3 Spectral Clustering(谱聚类)
心思想是将数据点映射到一个低维空间,在这个空间中更容易进行聚类。这个过程主要利用了图的拉普拉斯矩阵的特征向量(谱)
算法 | K-Means | K-Medoids | 高斯混合模型 | 谱聚类 |
优点 | 简单、快速、易于理解和实现 | 鲁棒性强于k-means | 可以模拟各种形状的聚类,可以处理不同大小和密度的聚类 | 对于稀疏数据效果较好,对噪声和离群点不敏感 |
缺点 | 初始数据敏感,可能陷入局部最优解 | 复杂度高 | 对初始值敏感,可能陷入局部最优。计算复杂度较高,尤其是在高维数据上 | 计算复杂度较高,特别是对于大规模数据集 |
适用场景 | 大数据集效果好 | 文本聚类、社交网络分析 |
2.2 降维
高维数据带来更大的计算量和复杂度,而且多维变量的共线性问题,会增加模型的复杂度。因此,需要对数据完成降维「压缩」的同时,尽量减少信息损失。本文主要讲解PCA降维模型。