机器学习数学基础(1)--线性回归与逻辑回归

news2024/11/19 6:30:24

声明:本文章是根据网上资料,加上自己整理和理解而成,仅为记录自己学习的点点滴滴。可能有错误,欢迎大家指正。


1  线性回归和逻辑回归与机器学习的关系

线性回归属于机器学习 – 监督学习 – 回归 – 线性回归,

逻辑回归属于机器学习 – 监督学习 – 分类 – 逻辑回归,如下图所示。

1.1 什么是监督学习

监督学习是机器学习中的一种训练方式/学习方式。监督学习需要有明确的目标,很清楚自己想要什么结果。比如:使用大量标记为“猫”、“狗”、“汽车”等类别的图片数据集训练模型,让模型学习如何区分不同的类别。当给出新的未标记图片时(如猫的图片),模型能够预测其所属的类别(能归类为猫)。

1.2 监督学习的主要流程

主要流程为:

  • 选择一个适合目标任务的数学模型
  • 先把一部分已知的“问题和答案”(训练集)给机器去学习
  • 机器总结出了自己的“方法论”
  • 人类把”新的问题”(测试集)给机器,让他去解答

具体点,例如我们想要完成文章分类的任务,则是下面的方式:

  • 选择一个合适的数学模型
  • 把一堆已经分好类的文章和他们的分类给机器
  • 机器学会了分类的“方法论”
  • 机器学会后,再丢给他一些新的文章(不带分类),让机器预测这些文章的分类

1.3 监督学习的主要任务

监督学习有2个主要的任务:回归和分类

  • 回归:预测连续的、具体的数值。比如:支付宝里的芝麻信用分数
  • 分类:对各种事物分门别类,用于离散型(什么是离散?)预测。

1.4 主流的监督学习算法

算法类型简介
朴素贝叶斯分类贝叶斯分类法是基于贝叶斯定定理的统计学分类方法。它通过预测一个给定的元组属于一个特定类的概率,来进行分类。朴素贝叶斯分类法假定一个属性值在给定类的影响独立于其他属性的 —— 类条件独立性。
决策树分类决策树是一种简单但广泛使用的分类器,它通过训练数据构建决策树,对未知的数据进行分类。
SVM分类支持向量机把分类问题转化为寻找分类平面的问题,并通过最大化分类边界点距离分类平面的距离来实现分类。
逻辑回归分类逻辑回归是用于处理因变量为分类变量的回归问题,常见的是二分类或二项分布问题,也可以处理多分类问题,它实际上是属于一种分类方法。
线性回归回归线性回归是处理回归任务最常用的算法之一。该算法的形式十分简单,它期望使用一个超平面拟合数据集(只有两个变量的时候就是一条直线)。
回归树回归回归树(决策树的一种)通过将数据集重复分割为不同的分支而实现分层学习,分割的标准是最大化每一次分离的信息增益。这种分支结构让回归树很自然地学习到非线性关系。
K邻近分类+回归通过搜索K个最相似的实例(邻居)的整个训练集并总结那些K个实例的输出变量,对新数据点进行预测。
Adaboosting分类+回归Adaboost目的就是从训练数据中学习一系列的弱分类器或基本分类器,然后将这些弱分类器组合成一个强分类器。
神经网络分类+回归它从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同的连接方式组成不同的网络。

2 线性回归(Linear Regression)

2.1  什么是线性(Linearity)

“越…,越…”符合这种说法的就可能是线性个关系:如「房子」越大,「租金」就越高,「汉堡」买的越多,花的「钱」就越多,杯子里的「水」越多,「重量」就越大。

从数学上来讲,线性指的是变量间存在一种直接的、成比例的关系。如果一个函数或关系可以用一个直线方程来描述,那么它就是线性的。例如,𝑦=2𝑥+3是一个线性方程,其中𝑦与𝑥成正比,比例系数为2。线性关系通常意味着系统的行为是可预测的,因为小的变化会导致成比例的小的响应。

线性关系不仅仅只能存在 2 个变量(二维平面)。3 个变量时(三维空间),线性关系就是一个平面,4 个变量时(四维空间),线性关系就是一个体。以此类推…

 2.2  什么是回归(Regression)

(1)回 归概念

从前面介绍可知,回归的目的是为了预测,比如预测明天的天气温度,预测股票的走势…

从数学上来讲,回归是一种统计方法,用于研究一组随机变量(通常称为因变量)与另一组变量(通常称为自变量)之间的关系。

回归之所以能预测是因为他通过历史数据,摸透了“套路”,然后通过这个套路来预测未来的结果。

回归可以是线性的,也可以是非线性的,取决于变量之间的关系类型。回归分析的一个主要目标是建立一个模型,用以预测或解释因变量的值。

(2)回归和拟合的关系

关于回归和拟合,从它们的求解过程以及结果来看,两者似乎没有太大差别,事实也的确如此。从本质上说,回归属于数理统计问题,研究解释变量与响应变量之间的关系以及相关性等问题。而拟合是把平面的一系列点,用一条光滑曲线连接起来,并且让更多的点在曲线上或曲线附近。更确切的说,拟合是回归用到的一种数学方法,而拟合与回归的应用场合不同。拟合常用的方法有最小二乘法、梯度下降法、高斯牛顿(即迭代最小二乘)、列-马算法。其中最最常用的就是最小二乘法。并且拟合可以分为线性拟合与非线性拟合,非线性拟合比较常用的是多项式拟合。根据自变量的个数,拟合也可以分为曲线拟合与曲面拟合等。

2.3 什么是线性回归

线性回归(或叫线性拟合)是最简单的拟合方法。线性回归本来是是统计学里的概念,现在经常被用在机器学习中。

线性回归假设因变量和自变量之间存在线性关系。即如果 2 个或者多个变量之间存在“线性关系”,那么我们就可以通过历史数据,摸清变量之间的“套路”,建立一个有效的模型,来预测未来的变量结果。通俗的说就是在一系列点中间画一条线,这条线能够代表所有点的特征(或者称之为,关系、发展趋势等等),目的很明确就是对线性问题进行估计(预测),当然线性问题也是最简单的规律,如下图所示。

例如,在简单线性回归中,模型通常表示为 y=ax+b+\epsilon ,其中:

  • y是因变量,即我们想要预测或解释的变量。
  • x是自变量,即用来预测因变量的变量。
  •  b 是截距,表示当x=0y的值。
  • a是斜率,表示x每变化一个单位,y预期变化的量。
  • ϵ 是误差项,代表模型无法解释的随机变异。

2.4 线性回归的优缺点

优点:

  1. 建模速度快,不需要很复杂的计算,在数据量大的情况下依然运行速度很快。
  2. 可以根据系数给出每个变量的理解和解释

缺点:不能很好地拟合非线性数据。所以需要先判断变量之间是否是线性关系。

2.5. 线性回归分类

2.5.1 一元线性回归

线性回归分析中,如果仅有一个自变量与一个因变量,且其关系大致可以用一条直线表示,则称之为 简单线性回归分析。
  如果发现因变量 Y 和自变量 X 之间存在高度的正相关,则可以确定一条直线方程,使得所有的数据点尽可能接近这条拟合的直线。

数学表达式为:y=ax+b+\epsilon其中y 为因变量,x是自变量,b 为截距,a是斜率,ϵ 是误差。

例如,你想要预测房屋的价格,而你唯一知道的变量是房屋的面积(以平方米为单位)。在这个情况下,你可以使用单变量线性回归模型。模型可以表示为:

房价=b​+a×面积

  • b 是截距,表示在面积为0时的房价。
  • 是斜率,表示每增加1平方米,房价增加的金额。

假设你收集了一些数据点,如下:

面积 (平方米)房价 (万元)
50100
70150
90200
120240

通过这些数据,你可以使用最小二乘法来估计 a​ 和 b​。假设你计算得到的模型是:

房价=30+1.5×面积

这意味着,每增加1平方米的面积,房价平均增加1.5万元。如果有人告诉你一个房屋的面积是100平方米,你可以预测其价格为:房价=30+1.5×100=180万元

2.5.2 多元线性回归

多元线性回归分析是简单线性回归分析的推广,指的是多个因变量对多个自变量的回归分析。其中最常用的是只限于一个因变量但有多个自变量的情况,也叫做多重回归分析。
数学表达式为:y=a_{1}x_{1}+a_{2}x_{2}+...+a_{n}x_{n}+b+\epsilon

其中:

  • y 是因变量,也就是我们想要预测或解释的变量。
  • x_{1},x_{2},...,x_{n}是自变量,也就是我们用来预测因变量的变量。
  • b​ 是截距项,表示当所有自变量为零时,因变量的期望值。
  • a_{1},a_{2},...,a_{n} 是系数,表示相应自变量每变化一个单位,因变量预期的变化量。
  • 𝜖 是误差项,代表了模型无法解释的随机变异。

如下图所示,一元线性回归图形为一条直线。而二元线性回归,拟合的为一个平面。多元线性回归拟合出的图像为以超平面;

假设你想要预测学生的考试成绩,而你拥有的数据包括学生的学习时间(小时/周)和每周课外活动的时间(小时/周)。在这个情况下,你可以使用多变量线性回归模型。模型可以表示为:

考试成绩=b+a1×学习时间+a2×课外活动时间考试成绩=b+a1​×学习时间+a2​×课外活动时间

假设你收集了一些数据点,如下:

学习时间 (小时/周)课外活动时间 (小时/周)考试成绩
5280
6385
7290
8195

通过这些数据,你可以使用最小二乘法来估计 b、a1​ 和 a2​。假设你计算得到的模型是:

考试成绩=60+10×学习时间−5×课外活动时间考试成绩=60+10×学习时间−5×课外活动时间

这意味着:

  • 学习时间每增加1小时,考试成绩增加10分。
  • 课外活动时间每增加1小时,考试成绩减少5分。

如果一个学生每周学习7小时,课外活动2小时,你可以预测其考试成绩为:

考试成绩=60+10×7−5×2=95

3. 狭义线性模型和广义线性模型

3.1 狭义线性模型(普通线性回归模型)

  • 定义:狭义线性模型通常指的是最简单的线性回归模型,它假设因变量(响应变量)与自变量(解释变量)之间存在线性关系,并且因变量的误差项服从正态分布。如上面所讲的线性回归
  • 数学表达:这种模型可以表示为: y=a_{1}x_{1}+a_{2}x_{2}+...+a_{n}x_{n}+b+\epsilon其中,y是因变量,x_{1},x_{2},...,x_{n}是自变量,a_{1},a_{2},...,a_{n}是模型参数,ϵ 是误差项。
  • 假设:这种模型通常假设误差项 𝜖服从正态分布,具有均值为0和常数方差。
  • 应用:主要用于预测连续的因变量,如房价、温度、销售额等。

3.2  广义线性模型(Generalized Linear Model, GLM)

我们知道了”回归“一般是用于预测样本的值,这个值通常是连续的。但是受限于其连续的特性,一般用它来进行分类的效果往往很不理想。为了保留线性回归”简单效果有不错“的特点,又想让它能够进行分类,因此需要对预测值再做一次处理。这个多出来的处理过程,就是广义线性模型GLM所做的最主要的事。而处理过程的这个函数,我们把它叫做连接函数。

如下图是一个广义模型的流程:

图中,当一个处理样本的回归模型是线性模型,且连接函数满足一定特性(特性下面说明)时,我们把模型叫做广义线性模型。因为广义模型的最后输出可以为离散,也可以为连续,因此,用广义模型进行分类、回归都是可以的。

但是为什么线性回归是广义线性模型的子类呢,因为连接函数是f(x) = x本身的时候,也就是不做任何处理时,它其实就是一个线性回归啦。所以模型的问题就转化成获得合适的连接函数?以及有了连接函数,怎么求其预测函数

下面介绍GLM相关知识:

  • 定义:广义线性模型是线性回归模型的扩展,它允许因变量的分布属于指数分布族,而不仅仅是正态分布。这意味着广义线性模型可以处理更广泛的数据类型,包括二元数据、计数数据、比例数据等。
  • 数学表达:广义线性模型的基本形式是:g(\mu )=a_{1}x_{1}+a_{2}x_{2}+...+a_{n}x_{n}+b+\epsilon 其中,g是链接函数,\mu是因变量的期望值,a_{1},a_{2},...,a_{n}是模型参数。
  • 连接函数:连接函数将线性预测量 𝜂与因变量的期望值 𝜇联系起来。不同的数据类型可能需要不同的链接函数,如:
    • 对于正态分布数据,g可以是恒等链接:(g(\mu )=\mu),即没有转换,直接使用线性预测量作为期望值。适用于连续数据,如线性回归。
    • 对于二项分布数据,g可以是逻辑回归链接:(g( \mu )=log(\mu/(1−\mu)))也称为Logit链接。适用于二分类问题。
    • 对于泊松分布数据,g可以是自然对数链接:(g( \mu )=log(\mu))。适用于计数数据,如事件发生次数。
    • 对于伽马分布数据,g可以是对数链接倒数链接g( \mu)=1/ \mu或 g(\mu )=log(\mu )。适用于正的连续数据,如时间到事件数据。

    • 对于贝塔分布数据,g可以是对数-对数链接g( \mu )=log(\mu)。适用于介于0和1之间的比例数据。

    • 对于多项分布数据,g可以是多项逻辑回归链接:使用多项分布的Logit函数。适用于多分类问题。

连接函数是广义线性模型中将线性关系扩展到非正态分布数据的关键,它使得模型能够适应各种数据类型和分布特性。它能确保模型的预测值在因变量的取值范围内,例如,逻辑回归的预测值在0和1之间。还允许我们对模型参数进行解释,例如,在逻辑回归中,参数的估计值表示自变量对事件发生概率的对数几率(log odds)的影响。

  • 应用:广义线性模型可以应用于各种类型的数据,如:二元数据(如疾病诊断结果);计数数据(如交通事故次数);比例数据(如市场份额)。

总的来说,

  • 狭义线性模型:主要用于处理连续数据假设数据服从正态分布,模型形式简单。
  • 广义线性模型:扩展了线性模型的应用范围,可以处理多种类型的数据,通过引入链接函数和指数分布族的概念,提供了更灵活的模型选择。

4. 逻辑回归

4.1 什么是逻辑回归

逻辑回归(Logistic Regression)主要解决二分类问题,用来表示某件事情发生的可能性

比如:一封邮件是垃圾邮件的可能性(是、不是);你购买一件商品的可能性(买、不买)

逻辑回归也被称为广义线性回归模型,它与线性回归模型的形式基本上相同,最大的区别就在于它们的因变量不同,如果是连续的,就是多重线性回归;如果是二项分布,就是逻辑回归(Logistic);逻辑回归实际上是一种分类方法,主要用于二分类问题(即输出只有两种,分别代表两个类别)。
  逻辑回归的过程:面对一个回归或者分类问题,建立代价函数,然后通过优化方法迭代求解出最优的模型参数,然后测试验证这个求解模型的好坏。

假设我们有一个简单的逻辑回归模型,用于预测邮件是否为垃圾邮件。模型可能考虑以下特征:

  • 邮件中包含的特定关键词数量。
  • 邮件发送者是否在用户的联系人列表中。

模型可以表示为: log⁡(𝑝/(1−𝑝))=𝛽0+𝛽1×关键词数量+𝛽2×发送者信誉

其中:

  • 𝑝 是邮件为垃圾邮件的概率。
  • \beta 0​,\beta 1​,\beta 2​是模型参数。
  • 关键词数量关键词数量 和 发送者信誉发送者信誉 是输入特征。

通过最大似然估计,我们可以找到最优的参数值,使得模型预测的概率与实际观测到的垃圾邮件标签最匹配。这样,我们就可以预测新邮件是否为垃圾邮件。

4.2 逻辑回归优缺点

优点:

  • 实现简单,广泛的应用于工业问题上;
  • 分类时计算量非常小,速度很快,存储资源低;
  • 便利的观测样本概率分数;
  • 对逻辑回归而言,多重共线性并不是问题,它可以结合L2正则化来解决该问题;
  • 计算代价不高,易于理解和实现;

缺点:

  • 当特征空间很大时,逻辑回归的性能不是很好;
  • 容易欠拟合,一般准确度不太高
  • 不能很好地处理大量多类特征或变量;
  • 只能处理两分类问题(在此基础上衍生出来的softmax可以用于多分类),且必须线性可分
  • 对于非线性特征,需要进行转换;

4.3 逻辑回归VS线性回归

  • 线性回归只能用于回归问题,逻辑回归虽然名字叫回归,但是更多用于分类问题
  • 线性回归要求因变量是连续性数值变量,而逻辑回归要求因变量是离散的变量
  • 线性回归要求自变量和因变量呈线性关系,而逻辑回归不要求自变量和因变量呈线性关系
  • 线性回归可以直观的表达自变量和因变量之间的关系,逻辑回归则无法表达变量之间的关系

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

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

相关文章

Apache DolphinScheduler Worker Task执行原理解析

大家好,我是蔡顺峰,是白鲸开源的高级数据工程师,同时也是Apache DolphinScheduler社区的committer和PMC member。今天我要分享的主题是《Worker Task执行原理》。 整个分享会分为三个章节: Apache DolphinScheduler的介绍Apache …

数据结构——二叉树定义

一、二叉树概念 二叉树是一种树形数据结构,其中每个节点最多有两个子节点,通常称为左子节点和右子节点。每个子节点本身又可以是一个二叉树。二叉树在计算机科学中有着广泛的应用,例如在搜索算法、排序算法等领域 二叉树(Binary Tree)是n(n…

告别繁琐,2024年PDF合并神器搜罗

有时候我们下载得到的PDF文件可能是被拆分成多份文档,这样对于我们查看文件就会造成一定的困扰。这时候如果把他们合并为一份文件就能方便很多。这次我就介绍几款pdf合并工具来解决这个问题吧。 第一款EIDTOR 福昕PDF 链接:https://editor.foxitsoftwar…

C++ STL 容器之deque

deque与vector同属C STL容器,二者有些相似。deque 采用动态数组来管理元素,提供随机存取,它与vector 几乎一摸一样的接口。不同的是:deque的动态数组头尾都开放,能在头尾两端进行快速安插和散出。下面是deque与vector的…

android前台服务

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。 未经允许不得转载 目录 一、导读二、使用2.1 添加权限2.2 新建…

nginx 版本升级

Nginx 的版本最开始使用的是 Nginx-1.18.0 , 由于服务升级,需要将 Nginx 的版本升级到 Nginx-1.19.7 ,要求 Nginx 不能中断提供服务。 为了应对上述的需求,提供两种解决方案: 方案1: make upgrade 完成升…

(二十四)进阶算法

文章目录 (一)埃氏筛法1. 原理2. 代码3. 特点 (二)欧拉筛法1. 原理2. 代码3. 特点 (三)分解质因数1. 原理2. 代码 (四)斐波那契数列1. 递推式2. 代码(1) 方法1(2) 方法2 经过12天的“…

[240728] Wikidata 介绍 | 微软与 Lumen 合作提升人工智能算力

目录 Wikidata 介绍微软与 Lumen 合作提升人工智能算力 Wikidata 介绍 中文: 文言: 粤语: 来源: https://www.wikidata.org/wiki/Wikidata:Introduction/zh 微软与 Lumen 合作提升人工智能算力 为了满足人工智能工作负载不断增长的需求&am…

(2024,通用逼近定理(UAT),函数逼近,Kolmogorov–Arnold定理(KAT),任意深度/宽度的网络逼近)综述

A Survey on Universal Approximation Theorems 公和众与号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群) 目录 0. 摘要 1. 简介 2. 神经网络(NN) 3. 通用逼近定理&#xff0…

openssh服务升级到最新版本OpenSSH-9.8p1完全手册---- (只适用于centos6)

[年] 在centos6下编译openssh-9.8p1的rpm包 1、创建用于rpm编译的目录 mkdir -p /root/rpmbuild/SPEC mkdir -p /root/rpmbuild/SOURCES 2、安装rpmbuild和一些其它的基本依赖 yum install gcc gcc-c rpm-build -y 3、上传openssh-9.8p1.tar.gz 这个源码包到centos6服务器上&am…

一篇文章教你如何读懂 JMeter聚合报告参数!

在进行性能测试时,JMeter是一款备受推崇的开源工具。而其中的聚合报告(Aggregate Report)是我们分析测试结果、了解系统性能的重要依据。今天,我们就来深入探讨如何读懂JMeter聚合报告中的各项参数。 面对复杂的聚合报告&#xf…

MySQL创建表完全指南-从零开始学习数据库设计

MySQL创建表快速指南 在大数据时代,掌握数据库技能至关重要。无论你是刚入门的开发者,还是经验丰富的数据分析师,了解如何创建MySQL表格都是必备技能。本文将为你详细讲解MySQL创建表格的全过程,帮助你快速上手数据库设计。 1. 连接到MySQL服务器 首先,确保你已经安装了MyS…

Linux 的超级记事本(代码编辑器) —— vim

Linux 的超级记事本(代码编辑器) —— vim 关于 vimvim 的使用入门级使用——多模式基础使用——多模式插入模式(Insert mode)理解 命令模式(command mode)理解命令集 底行模式(last line mode&…

Logback 快速入门

一、简介 Java 开源日志框架,以继承改善 log4j 为目的而生,是 log4j 创始人 Ceki Glc 的开源产品。 它声称有极佳的性能,占用空间更小,且提供其他日志系统缺失但很有用的特性。 其一大特色是,在 logback-classic 中本…

5G 基站特有的 5 个关键同步挑战

随着 5G 的推出和 O-RAN 联盟等举措,移动设备领域正在遭遇相当大的颠覆,这当然适用于基站和移动回程。 从手机到物联网设备,设备数量呈爆炸式增长,再加上移动视频流、工业物联网和汽车应用等新应用,给移动网络带来了容…

自学JavaScript(放假在家自学第一天)

目录 JavaScript介绍分为以下几点 1.1 JavaScript 是什么 1.2JavaScript书写位置 1.3 Javascript注释 1.4 Javascript结束符 1.5 Javascript输入输出语法 JavaScript(是什么?) 是一种运行在客户端(浏览器)的编程语言,实现人机交互效果。 2.作用(做什么?)网…

算法-插入排序

插入排序步骤 前面文章分享了两种排序算法:冒泡排序和选择排序。虽然它们的效率都是O(N2),但其实选择排序比冒泡排序快一倍。现在来学第三种排序算法——插入排序。你会发现,顾及最坏情况以外的场景将是多么有用。 插入排序包括以下步骤。 …

从0开始搭建vue + flask 旅游景点数据分析系统(一):创建前端项目

根据前面的爬虫课程,我们重新开一个坑,就是基于爬取到的数据,搭建一个vueflask的前后端分离的数据分析系统 1 通过这个系列教程可以学习到什么? 从0开始搭建一个 vue flask 的数据分析系统;了解系统的整体架构&…

BSPTool工具

BSPTool工具 链接:https://pan.baidu.com/s/1UxMPjJtCHHkadFwnOfLqww?pwd1234 提取码:1234 1.使用方式 下载下来后,双击exe即可 2.MTK常用工具 2.1 MTK导出日志功能 2.2 导fulldump日志 2.3 .合并日志: 2.4 ADB指令集合 2.5 Fastboot指…

传统自然语言处理(NLP)与大规模语言模型(LLM)详解

自然语言处理(NLP)和大规模语言模型(LLM)是理解和生成人类语言的两种主要方法。本文将介绍传统NLP和LLM的介绍、运行步骤以及它们之间的比较,帮助新手了解这两个领域的基础知识。 传统自然语言处理(NLP&…