机器学习概述

ops/2024/10/21 21:36:57/

前言

什么是机器学习? 机器学习有什么用? 如何用机器学习? 本文会围绕这几个问题进行阐述。

  • 机器学习:是人工智能的一个子集,专门研究计算机如何模拟或实现人类智能行为,以获取新的知识或技能,并不断重组完善已有知识结构的学科;
  • 机器学习有什么用:从实践意义来讲,机器学习在大数据支撑下,通过各种算法让机器对数据进行深层次的统计分析,让人工智能系统获得归纳推理和决策能力,帮助人类智能延伸
  • 如何进行机器学习:从上可知,机器学习离不开数据、模型和算法,通常包含数据预处理、模型学习、模型评估、样本预测几个步骤。
    • 数据预处理:从原始raw数据,经过(特征处理+幅度缩放、特征选择、维度约减、采样),输出测试集和训练集;
    • 模型学习:模型选择、交叉验证、结果评估、超参选择;
    • 模型评估:选择符合场景的评估准则
    • 样本预测:新的输入数据预测

1. 机器学习分类

  1. 监督学习(Supervised Learning):训练集有目标label。监督学习可以进一步分为回归(Regression)和分类(Classification)问题。回归任务预测连续值输出(如房价预测),而分类任务则预测离散的类别标签(如垃圾邮件识别)。

  2. 无监督学习(Unsupervised Learning):与监督学习不同,无监督学习的数据没有明确的标签或结果。它的目标是发现数据中的结构、模式或者将数据分为不同的群组(聚类)。常见的无监督学习方法包括聚类(Clustering)、降维(Dimensionality Reduction,如PCA、t-SNE)等。

  3. 半监督学习(Semi-supervised Learning):介于监督学习和无监督学习之间,它利用大量的未标记数据和少量的标记数据来进行学习。目的是利用未标记数据提供的额外信息来提高学习模型的性能,尤其是在标记数据稀缺的情况下。

  4. 强化学习(Reinforcement Learning)算法(智能体)通过与环境交互来学习如何采取行动,以最大化某种累积奖励。强化学习的核心在于学习策略,即在给定状态下选择行动的规则,以达到长期奖励最大化的最终目标。常见的应用包括游戏AI、机器人导航等。

  5. 迁移学习(Transfer Learning):这是一种利用从一个任务中学到的知识来帮助完成另一个相关但不完全相同的任务的方法。迁移学习可以减少对大量标注数据的需求,加速新任务的学习过程。特别是在深度学习领域,预训练的模型(如ImageNet上的CNN模型)经常被用作其他视觉任务的起点。

  6. 元学习(Meta-Learning):也称为“学习如何学习”,旨在使机器学习模型能够从以前的学习经验中快速适应新任务。元学习的关键思想是设计模型架构或训练程序,使得模型能够基于少数几个样本快速调整其参数,适用于快速变化的任务环境或小样本学习场景。

1. 监督学习

1.1回归模型

回归分析是用来预测一个或多个变量(称为自变量、解释变量或特征)如何影响另一个变量(称为因变量、响应变量或目标变量)的方法。根据模型的形式,回归模型可以大致分为两大类:线性模型和非线性模型。

1.1.1 线性回归模型

线性模型的数学推导是

\tilde{y}(x,w) = w_{0}+w_{1}x_{1}+...+w_{n}x_{n}

其中,w = (w_{0},w_{1},...w_{p})是求解线性拟合。

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临近回归模型

神经网络非线性回归

使用多层神经网络,可以捕捉非常复杂的非线性关系。

 线性回归模型总结

特征OLSRidgeLassoENR多项式回归SVR贝叶斯回归GLM
目标函数残差平方和残差平方和+L2残差平方和+L1残差平方和+L1+L2残差平方和最大间隔后验分布最大似然函数
正则化L2L1L1+L2L2通过先验分布可以有L1、L2、L1+L2
特征选择取决于先验概率
多重共线性敏感鲁棒敏感鲁棒敏感鲁棒鲁棒敏感
异常值敏感敏感鲁棒敏感鲁棒敏感鲁棒鲁棒敏感
输出连续值连续值连续值连续值连续值类别连续值连续值

 1.2 分类问题

算法KNN逻辑回归朴素贝叶斯决策树随机森林GBDTXGBoost支持向量机
原理通过计算待分类样本与已知类别样本的距离,选取最近的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-MeansK-Medoids高斯混合模型谱聚类
优点简单、快速、易于理解和实现鲁棒性强于k-means可以模拟各种形状的聚类,可以处理不同大小和密度的聚类对于稀疏数据效果较好,对噪声和离群点不敏感
缺点初始数据敏感,可能陷入局部最优解复杂度高

对初始值敏感,可能陷入局部最优。计算复杂度较高,尤其是在高维数据上

计算复杂度较高,特别是对于大规模数据集
适用场景大数据集效果好文本聚类、社交网络分析

2.2 降维

高维数据带来更大的计算量和复杂度,而且多维变量的共线性问题,会增加模型的复杂度。因此,需要对数据完成降维「压缩」的同时,尽量减少信息损失。本文主要讲解PCA降维模型。

 


http://www.ppmy.cn/ops/118973.html

相关文章

C#里使用最简单的线程调用界面更新的方法

在C#的界面应用里,经常会遇到线程里计算得到的数据,要更新到界面上。 但是线程与界面线程一般不是同一个线程,不能直接调用更新,需要采用委托的方式来更新。 意思就是说,要线程把数据定义更新的方法之后,…

git cherry-pick作用

git cherry-pick&#xff0c;它允许你将一个或多个提交&#xff08;commit&#xff09;从一个分支应用到另一个分支上。这个命令特别适用于当你想要将某个分支上的改动单独应用到另一个分支上&#xff0c;而不是合并整个分支。 基本用法 git cherry-pick <commit-hash>…

【论文阅读笔记】TOOD: Task-aligned One-stage Object Detection

论文代码&#xff1a;https://github.com/fcjian/TOOD 文章目录 论文小结论文简介论文方法Task-aligned Head&#xff08;T-Head&#xff09;T-Head伪代码解释 Task Alignment Learning&#xff08;TAL&#xff09;Task-aligned Sample AssignmentTask-aligned Loss 论文实验消…

Redis 性能优化的高频面试题及答案

目录 高频面试题及答案1. 如何选择合适的数据结构以优化 Redis 性能?2. 如何配置 Redis 以优化内存使用?3. 如何使用管道(Pipeline)技术优化 Redis 性能?4. 如何通过数据持久化优化 Redis 性能?5. 如何使用 Redis 的集群模式优化性能?6. 如何通过合理的键命名策略优化 R…

如何只用 CSS 制作网格?

来源&#xff1a;how-to-make-a-grid-like-graph-paper-grid-with-just-css 在看 用于打印到纸张的 CSS 这篇文章时&#xff0c;对其中的网格比较好奇&#xff0c;作者提供了 stackoverflow 的链接&#xff0c;就看到了来源的这个问题和众多回复。本文从里面挑选了一些个人比较…

数据分析师之Excel学习

前言 excel作为职场人来说&#xff0c;已经是人人必备的技能了&#xff0c;所以还不知道这个的小伙伴&#xff0c;一定要抓紧时间学习&#xff0c;紧跟时代的步伐。 Excel 几个重要的版本 97-2003版本是国内最早流行的版本 .xlsx后缀的表格文件&#xff0c;基本是07版本及…

关于Java中的List<User>如何进行深拷贝

联调中发现了一个很初级&#xff0c;但有容易被忽略的拷贝问题&#xff1a; 错误方式&#xff1a;List<User> us new ArrayList<>(); // name "张三"List<User> us1 new ArrayList<>(us);for (User u : us) {...u.setName("douzi&q…

LeetCode讲解篇之53. 最大子数组和

文章目录 题目描述题解思路题解代码 题目描述 题解思路 该问题我们可以转换为求以i为最后一个元素的0 ~ i范围内的最大子数组和&#xff0c;然后其中的所有的最大子数组和的最大值就是我们要返回的答案 题解代码 func maxSubArray(nums []int) int {ans : nums[0]for i : 1;…