机器学习算法详解1:基础知识合集

news2024/10/5 12:48:06

机器学习算法详解1:基础知识合集

前言

​ 本系列主要对机器学习上算法的原理进行解读,给大家分享一下我的观点和总结。

本篇前言

​ 开一个新系列,另外现在开学了,忙起来了,所以更新会很慢。

目录结构

文章目录

    • 机器学习算法详解1:基础知识合集
      • 1. 分类与回归
        • 1.1 分类
        • 1.2 回归
      • 2. 损失函数
        • 2.1 含义
        • 2.2 常用损失函数
      • 3. 距离度量
        • 3.1 欧式距离
        • 3.2 曼哈顿距离
        • 3.3 切比雪夫距离
      • 4. 归一化
        • 4.1 作用
        • 4.2 最大最小值归一化
        • 4.3 z-score归一化
      • 5. 拟合
        • 5.1 含义
        • 5.2 分类
      • 6. 正则化
      • 7. 优化器/梯度下降算法
      • 8. 数据划分方法
        • 8.1 训练集、验证集与测试集:
        • 8.2 留出法
        • 8.3 交叉验证
      • 9. 编程语言
      • 10. 类别不平衡问题
        • 10.1 含义
        • 10.2 处理方法
      • 11. 评价指标
        • 11.1 回归任务评价指标
        • 11.2 混肴矩阵
      • 12. 多分类任务
        • 12.1 One vs One
        • 12.2 One vs Rest
        • 12.3 Many vs Many
      • 13. 总结

1. 分类与回归

​ 机器学习两大经典任务分类与回归。

1.1 分类

​ 即我们所认知的对某个东西进行分类。

1.2 回归

​ 用线性回归来解释,就是如下图:

在这里插入图片描述

​ 即直线会趋于各个点的中间值。

2. 损失函数

2.1 含义

​ 损失函数,也可以称之为目标函数、优化目标等等,是机器学习中的一个重要概念。

​ 简单来说,我们有一个任务,对它进行分析后,得到一个最终的函数f(x),我们的目标就是求f(x)的最小值。那么对于我们来说,f(x)就是损失函数/目标函数(其实不太严谨,不过大概就是这意思)

2.2 常用损失函数

​ 回归任务常用的损失函数就是MAE、MSE损失,即我们熟悉的均值误差和均方差误差,公式如下:

在这里插入图片描述

​ 而对于分类任务而言,常用的是交叉熵损失函数,二分类形式为:(其中y^ 为概率值,y为真实值,取值{0/1})

在这里插入图片描述

​ 另外,上式其实可以使用KL散度进行推导,这里先不说,后面讲解逻辑回归的时候进行说明。

3. 距离度量

​ 这里我先介绍三个最为常用的距离度量,至于KL"距离"后面讲。

3.1 欧式距离

​ 两点的直线距离,公式:

在这里插入图片描述

3.2 曼哈顿距离

​ 又称城市街区距离,即只允许走水平/垂直的路线:

在这里插入图片描述

​ 公式如下:

在这里插入图片描述

3.3 切比雪夫距离

​ 又称棋盘距离,即它可以向国际象棋里面的棋子一样可以走最大差值距离,公式如下:

在这里插入图片描述

4. 归一化

​ 归一化/标准化,其实差不多,都是让某个变量符合你选定的分布,这里介绍机器学习里常用的min-max归一化、z-score归一化。(深度学习中常用的是批量归一化等)

4.1 作用

  • 让数据的不同特征处于同一数量级
  • 避免激活函数饱和而使梯度消失
  • 加速收敛

​ 前两个作用好理解,但是为什么可以加速收敛呢

​ 假设损失函数受两个参数w1\w2影响,并且假设w1为主参数,权重大,w2为次参数,权重小,那么损失值图是三维的图,我们投影到二维就是等高线图,如下:

在这里插入图片描述

​ 那么,我们开始优化损失函数,假设起点在五角星位置,由于w1参数比w2参数重要,这意味着优化的时候w1方向走得快,w2走得慢,那么优化过程便如下图:

在这里插入图片描述

​ 但是,归一化后,两个参数一样重要,那么等高线图和优化过程如下:

在这里插入图片描述

​ 可以明显看出,收敛速度加快

4.2 最大最小值归一化

​ 公式如下:

在这里插入图片描述

​ 特点:

  • 不会改变数据原始分布,只是将值缩放到[0,1]之间
  • 值都大于等于0(对于神经网络来说容易导致值偏置)
  • 对异常值敏感(比如一个非常大的最大值,但是其他数值都比较小,会导致归一化异常)

4.3 z-score归一化

​ 公式如下:

在这里插入图片描述

​ 特点:

  • 改变数据原始分布,让数据符合均值为u、标准差σ的分布
  • 值有正有负

5. 拟合

5.1 含义

​ 拟合这个概念本身是对于回归问题来说的。比如只有几个点:

在这里插入图片描述

​ 让你去用条线满足这三个点,你肯定能想到一条二次曲线,如下图:

在这里插入图片描述

​ 这就是拟合。但是在实际中,拟合并不局限于回归问题,还可以用于分类任务。

5.2 分类

  • 欠拟合
    • 拟合得不到位,相当于还没有学习完
  • 过拟合
    • 拟合得过好,相当于考试只会刚刚学习过的题目,变一点就不会了
  • 正常拟合
    • 正常状况,不仅会刚刚考试的题目,变一点点也是会做的(但是不一定作对而已)

6. 正则化

​ 看我这篇文章,说得很详细——深入机器学习1:详解正则表达式。

7. 优化器/梯度下降算法

​ 我们都知道,机器学习/深度学习是来解决数据问题的,特别是大数据问题。而对于大数据问题,有一个很难的点就是很难求出解析解。针对这种情况,就提出了各种各样的优化器,这里我们来说说其中最典型的梯度下降算法。

​ 对于一段山势图:

在这里插入图片描述

​ 假设,你在四角星的位置,那么问:如何你才能最快的下山?这个答案显而易见,就是走梯度方向

​ 那么将上述这段话体现为数学公式,如下:

在这里插入图片描述

​ 其中θ是我们的待优化参数,α是我们下山步长,称之为学习率J(θ)就是损失函数,对其求导就是梯度方向。

​ 其可以分为三类:

  • 批量梯度下降算法
    • 每次对全部数据进行梯度下降算法
  • 随机梯度下降算法
    • 每次对单个数据进行梯度下降算法
  • 小批量梯度下降算法
    • 每次对一批次的数据进行梯度下降算法

​ 不难看出,其具有一定的缺点:

  • 易震荡
    • 即容易出现在波谷的位置左右横跳,找不到最佳值
  • 可能只能找到局部最优解
  • 参数不易设置并且参数单一,不能变化

8. 数据划分方法

​ 这里说说数据集的划分。

8.1 训练集、验证集与测试集:

​ 训练集,即用于机器学习模型训练的数据集合。这里补充一下,训练有时候不仅仅训练一次,有时候可以对数据进行多次训练

​ 验证集,每次训练完毕后用于验证训练效果如何。

​ 测试集,所有训练完后用于检测模型效果如何,这是模拟真实使用情景。

补充说明:验证集一般在深度学习中常用,机器学习还是用得比较少。

8.2 留出法

​ 直接将数据集划分为两个互斥的集合,一个作为训练集,一个作为测试机,常用的比例为7/3、8/2

8.3 交叉验证

​ 随机将训练样本拆分成K个互不相交大小相同的子集,然后用K-1个子集作为训练集训练模型,用剩余的子集验证模型,对K中选择重复进行,最终选出K次测评中的平均测试误差最小的模型。常用的k值有 5、10、20等。

​ 比如,5折交叉验证如下图所示:

在这里插入图片描述

9. 编程语言

​ 想要实现机器学习其实有很多编程语言都可以,不过现在主流的还是python,因此推荐大家使用python进行编程。而在python中主要实现机器学习的库是sklearn,这个库集成了大部分的常见机器学习算法,使用起来非常简单,想要了解的可以看我这篇文章。

10. 类别不平衡问题

10.1 含义

​ 有时候我们拿到的数据,A类别有400条,B类别只有100条,这样的数据,我直接定义一个学习器只输出A类别,它的准确率都有80%。因此,针对这样类别不平衡的数据(分类数据),我们需要进行数据的平衡处理。

10.2 处理方法

降采样

​ 有一个最简单的思路:把数据多的类别降采样到和类别少的一样的数据量即可。比如上面我们直接从400个A数据中抽样100个A数据,这样A和B的数据量就相同了。

​ 它的优缺点非常明显:

  • 优点
    • 计算开销小,思路简单
  • 缺点
    • 丢弃了很多数据,导致训练样本集合比初始小很多
    • 另外,有时候数据量本身就少,你还降采样,不合适

过采样

​ 好的,不能降采样,那么我们直接对数据量少的类别过采样总行吧。

​ 但是,如何过采样呢?最简单的思路就是重复一些样本,但是这样非常容易导致过拟合,比如你100条B类别,现在你重复采样,变为了400条B类别,最低的比例都是每条数据重复4次。

​ 因此,这样的思路不可取,而常用的过采样思路是SMOTE算法,它通过对训练集的少样本对象进行差值计算来产生新的样例

基于学习的策略

​ 第三种思路是基于学习的策略来调整。

​ 一个思路如下:

​ 我们知道在分类的时候,实际上是把模型输出值y与一个阈值进行比较(比如0.5),大于这个阈值则为正例,小于则为负例。那么,几率y/1-y就是正例概率与负例概率的比值,原先针对y阈值为0.5,那么这里变为了1(0.5 / (1-0.5) = 1)。

​ 而由于正反例数据量不同,我们可以设置一个观测几率,其值为m+ / m-,其中m+表示正例数量,m-表示负例数量

​ 那么,可以认为:(下式是关注了数量关系)

y/1-y   >   m+/1- ,认为是正例 

​ 但是,实际上却是:(下式只是符合客观印象)

y/1-y   >   1 ,认为是正例

​ 因此,可以做出一定的修整:

在这里插入图片描述

基于上述原理,我们可以先让模型直接学习不平衡的数据,但是在进行决策的时候按照上述公式进行决策,这样相当于对数据进行了一定程度的缩放,实现了解决类别不平衡的目的

11. 评价指标

11.1 回归任务评价指标

​ 即我们前面讲解过的MAE、MSE等都是它的评价指标,主要衡量真实值与预测值之间的差距

​ 除此之外,还有一个评价指标,衡量拟合程度好坏的指标,称之为相关系数/决定系数,或者R2,公式如下:

在这里插入图片描述

11.2 混肴矩阵

分类任务常用评价指标

​ 矩阵形式如下:

在这里插入图片描述

​ 可以得出以下几个指标:

  • 精确度/查准率

在这里插入图片描述

  • 召回率/查全率

在这里插入图片描述

​ 两者是一对矛盾的量,一者大另外一者就偏小。

​ 将两者的值画作曲线,称之为P-R曲线

在这里插入图片描述

上图中一个曲线被另外一个曲线包住,说明了前者性能低于后者(从查全率和查准率的值可以看出来),而所谓的平衡点就是查全率等于查准率的点而已

12. 多分类任务

​ 我们算法讲解的时候,为了方便起见,一般都是以二分类任务为例子进行讲解的,那么二分类任务如何拓展到多分类任务呢?

12.1 One vs One

​ 简称为OvO(看起来就像表情包<_<),中文称为一对一。

​ 假设有N个类别,我们可以将这N个类别随机抽取两个组成一个二分类任务,那么一共有N*(N-1)/2个分类任务,也可以得到N*(N-1)/2个分类结果,那么最终的结果就是有投票表决,即哪一个类别出现的次数最多,说明就是哪个类别

12.2 One vs Rest

​ 简称OvR,中文称为一对剩余。

​ 即N个类别,每次抽取1个类别,并将其他类别作为一个整体,分类器就判断是否属于这个类别就行。那么,一共产生N个分类器,那么最终结果就是分类器输出该类别的类别(分类器输出Yes表示为该类别,No表示为其他类别)

12.3 Many vs Many

​ 简称MvM,中文称为多对多。

​ 即,每次抽取诺干为正例,诺干为负例,当然,抽取是根据一定规则抽取的,不过具体的规则有很多,这里就不细说了,有兴趣的可以看看西瓜书等资料。

13. 总结

​ 本篇主要讲解了一些机器学习的基础前置知识,当然上面的内容肯定没有包含全,后期我想起来了也会继续补充的。

​ 下一篇,讲解线性回归的原理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/974643.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SI24R1/NRF24L01P引脚及软硬件中文开发资料

NRF24L01P芯片兼容通信。从而被打上了国产NRF24L01P的标签&#xff0c;更有甚者居然磨掉芯片原本的SI24R1的LOGO打成NRF24L01P&#xff0c;给很多客户产生了很多不必要的损失。大家定向的理解&#xff0c;国产的东西总是会比国外进口的相差到哪里哪里&#xff0c;如此云云。其实…

冠达管理:融创中国获纳入港股通标的,股价涨幅超20%

到发稿&#xff0c;港股融创我国股价报1.53港元&#xff0c;涨21.43%。 9月5日&#xff0c;港股融创我国高开&#xff0c;到发稿&#xff0c;股价报1.53港元&#xff0c;涨21.43%。 ​ 消息面上&#xff0c;根据上交所、深交所公告&#xff0c;港通下港股通标的名单发生调整…

电商为什么要做小程序商城?

微信小程序出现之后&#xff0c;便迅速在网络上走红&#xff0c;并且开放很多接口&#xff0c;最重要的是&#xff0c;微信小程序可以和公众号密切关联消息&#xff0c;这样给企业带来了更多商机。特别是微信小程序商城得到了微信平台的大力扶持&#xff0c;这样一来&#xff0…

企业做微信小程序开发的好处

一、引言 在移动优先的时代&#xff0c;微信小程序为企业提供了新的营销方式和用户交互方式。微信小程序具有轻便、易用、可跨平台等特性&#xff0c;使得企业可以快速触达广大用户。本文将详细探讨企业做微信小程序开发的好处。 二、微信小程序对企业的好处 增加品牌知名度&…

mysql 大表如何ddl

大家好&#xff0c;我是蓝胖子&#xff0c;mysql对大表(千万级数据)的ddl语句&#xff0c;在生产上执行时一定要千万小心&#xff0c;一不小心就有可能造成业务阻塞&#xff0c;数据库io和cpu飙高的情况。今天我们就来看看如何针对大表执行ddl语句。 通过这篇文章&#xff0c;…

射频功率放大器的指标有哪些内容

射频功率放大器是射频系统中至关重要的组件&#xff0c;用于放大射频信号的功率。本文将详细介绍射频功率放大器的指标&#xff0c;包括功率增益、带宽、线性度、效率、稳定性等关键指标。 一、功率增益 功率增益是射频功率放大器最基本的指标之一&#xff0c;表示放大器将输入…

FaceChain应用生态爆发?无限可能的人物应用等你加入探索!

1 核心功能进展 在过去的不到一个月&#xff0c;FaceChain开源项目从无到有&#xff0c;成功突破了相关技术瓶颈&#xff0c;GitHub&#xff08;GitHub - modelscope/facechain: FaceChain is a deep-learning toolchain for generating your Digital-Twin.&#xff09;获得了…

松下GF9使用心得

文章目录 规格参数关键特征USB接口充电功能旋转显示屏WiFi直连4K拍摄和后对焦模式 快速指南机身按键及功能拍摄模式屏显信息拍摄时回放时 菜单列表拍摄菜单动态影像菜单自定义菜单设置菜单回放菜单 核心功能拍摄模式智能自动模式程序 AE 模式、光圈优先 AE 模式、快门优先 AE 模…

恒运资本:股市涨跌如何预测?如何避免股价的泡沫?

股市的涨跌受到多种要素影响&#xff0c;其直接关系到投资者的收益。那么股市涨跌怎么猜测&#xff1f;怎么防止股价的泡沫&#xff1f;恒运资本也为我们准备了相关内容&#xff0c;以供参阅。 股市涨跌怎么猜测&#xff1f; 股市涨跌具有不确定性&#xff0c;没有方法能够确保…

vue基于Echarts、百度地图MapVGL实现可视化大屏数据展示

一、布局 常见的大屏数据展示布局&#xff0c;一般会将地图作为整个屏幕的背景&#xff0c;在地图上以九宫格布局展示各类数据图表。实现这一效果可以使地图的z-index1,在地图上的图表等z-index>1,下面会详细描述这种设计该如何实现&#xff1a; <div style"width…

如何通过构建遥感光谱反射信号与地表参数之间的关系模型来准确估算植被参数?植被参数光学遥感反演方法(Python)及遥感与生态模型数据同化算法

目录 专题一 植被参数遥感反演理论 专题二 植被叶片及冠层反射率模拟与处理 专题三 植被遥感模型参数敏感性分析 专题四 基于查找表(LUT)方法反演植被参数 专题五 基于优化算法反演植被参数 专题六 基于机器学习反演植被参数 专题七 遥感数据同化理论 专题八 同化遥感反…

浅谈一下酒吧和酒馆的不同

相信有很多朋友还不怎么清楚酒吧和酒馆的区别是什么&#xff0c;这里为大家简单介绍一下两者的不同&#xff0c;个人见解&#xff0c;如有错漏&#xff0c;欢迎指出。一、首先是他们的经营范围不同酒馆经营通常包含酒水和餐饮&#xff0c;适合朋友聚会或者是和商业伙伴聊天。而…

/etc/ssh/sshd_config 配置文件中的 PasswordAuthentication PermitRootLogin 参数作用

1、PasswordAuthentication PasswordAuthentications是一种身份验证方式&#xff0c;通常用于远程服务器的登录。当用户连接到远程服务器并进行身份验证时&#xff0c;服务器会根据 用户名进行验证&#xff0c;如果验证成功允许用户访问服务器。在SSH中&#xff0c;PasswordAut…

Docker容器日志和宿主机的时间问题

容器与主机的时间 我们在部署完docker之后往往会发现&#xff0c;容器的时间和主机的时间其实是对不上的&#xff0c;因为宿主机设置了时区&#xff0c;而Docker容器并没有设置&#xff0c;导致Docker容器的时间和宿主机时间不同步&#xff0c;导致两者相差8小时。我们可以进入…

常用命令之mysql命令之show命令

一、mysql show命令简介 mysql数据库中show命令是一个非常实用的命令&#xff0c;SHOW命令用于显示MySQL数据库中的信息。它可以用于显示数据库、表、列、索引和用户等各种对象的信息。我们常用的有show databases&#xff0c;show tables&#xff0c;show full processlist等&…

KreadoAI:国产免费用的AI数字人视频工具

hi&#xff0c;同学们&#xff0c;我是赤辰&#xff0c;本期是赤辰第4篇AI工具类教程&#xff0c;文章底部准备了粉丝福利&#xff0c;看完可以领取&#xff01; 今天来给大家分享一个可以免费生成虚拟数字人视频的网站。操作简单&#xff0c;一学就会&#xff0c;你也可以很方…

typescript 支持与本地调试

typescript 支持与本地调试 typescript 支持与本地调试 前言支持 typescript函数的本地调试 启用 node-terminal 调试invoke localserverless-offline Next Chapter完整示例及文章仓库地址 前言 在上一章节&#xff0c;我们创建了一个 hello world 函数&#xff0c;并把它顺…

用「渣男」心态去面试,爽翻!

转载自博学谷公众号&#xff01; 面试是一场“销售”自己的考试&#xff0c;很多程序员掌握的技术、知识都非常过关&#xff0c;但在面试中却不能完全展现出来&#xff0c;屡屡发挥失常。 同样是天选打工人 别人的offer&#xff0c;像猴子摘苞谷&#xff0c;应接不暇 而你的of…

双亲委派机制的作用

文章目录 类加载过程一、java有哪些类加载器&#xff1f;二、双亲委派机制自定义String类 总结 类加载过程 先简单说一下java的类加载器 类加载器&#xff0c;顾名思义就是一个可以将Java字节码加载为java.lang.Class实例的工具。这个过程包括&#xff0c;读取字节数组、验证…

喜讯!Cancer Res(IF:11.2)发表胃癌PICH的转录调控机制

2023年8月30日&#xff0c;兰州大学第二医院焦作义教授团队在肿瘤学Top期刊Cancer Research&#xff08;IF:11.2&#xff09;发表“PICH activates Cyclin A1 transcription to drive S-phase progression and chemoresistance in gastric cancer”的研究论文。该研究鉴定了SNF…