关于线性模型的底层逻辑解读 (机器学习 细读01)

这篇具有很好参考价值的文章主要介绍了关于线性模型的底层逻辑解读 (机器学习 细读01)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一 线性回归

         线性回归是机器学习中 有监督机器学习 下的一种算法。 回归问题主要关注的是因变量(需要预测的值,可以是一个也可以是多个)和一个或多个数值型的自变量(预测变量)之间的关系。

  1. 需要预测的值:即目标变量,target,y,连续值预测变量
  2. 影响目标变量的因素: ... ,可以是连续值也可以是离散值。
  3. 因变量和自变量之间的关系:即模型,model,是我们要求解的。

1.1 简单线性回归

前面提到过,算法说白了就是公式,简单线性回归属于一个算法,它所对应的公式。

        关于线性模型的底层逻辑解读 (机器学习 细读01),机器学习,机器学习,人工智能

这个公式中,y 是目标变量即未来要预测的值,x 是影响 y 的因素,w,b 是公式上的参数即要求的模型。其实 b 就是咱们的截距,w 是斜率嘛! 所以很明显如果模型求出来了,未来影响 y 值的未知数就是一个 x 值,也可以说影响 y 值 的因素只有一个,所以这是就叫简单线性回归的原因。

1.2 最优解

  • Actual value: 真实值,一般使用 y 表示。
  • Predicted value预测值,是把已知的 x 带入到公式里面和猜出来的参数 w,b 计算得到的,一般使用 表示。
  • Error误差,预测值和真实值的差距,一般使用 表示。
  • 最优解: 尽可能的找到一个模型使得整体的 误差最小,整体的误差通常叫做损失 Loss。
  • Loss: 整体的误差,Loss 通过损失函数 Loss function 计算得到。

1.3 多元线性回归

现实生活中,往往影响结果 y 的因素不止一个,这时 x 就从一个变成了 n 个,.....同时简单线性回归的公式也就不在适用了。多元线性回归公式如下:

        关于线性模型的底层逻辑解读 (机器学习 细读01),机器学习,机器学习,人工智能

使用向量来表示:

        

二 高斯函数

2.1 正太分布

正态分布(Normal Distribution),也被称为高斯分布(Gaussian Distribution),正态分布在实际应用中非常有用,因为许多自然现象和人类行为都近似遵循正态分布。例如,身高、体重、智商、测量误差等都可以用正态分布来描述。在统计分析中,许多参数估计和假设检验方法都基于正态分布的假设。在统计建模中,通常默认每次线性模型计算的误差与正确值的误差符合正态分布。基于这一假设,可以通过计算使误差最小的正态分布值来估算线性模型的权重。这种方法有助于拟合模型以更好地解释数据和进行预测。主要特点:

  1. 对称性:正态分布是一个对称分布,其均值、中位数和众数都位于分布的中心,也就是分布的峰值。

  2. 集中趋势:正态分布具有集中趋势,数据点更有可能接近均值,而在离均值越远的地方概率逐渐减小。

  3. 定义性:正态分布由两个参数决定,均值(μ)和方差(σ^2),这些参数决定了分布的中心和分散度。

  4. 标准正态分布:当均值为0,方差为1时,正态分布被称为标准正态分布(Standard Normal Distribution)。标准正态分布的概率密度函数可以用标准正态分布表来查找。

  5. 经典的钟形曲线:正态分布的概率密度函数呈现出典型的钟形曲线,两侧尾部逐渐减小,且在均值处达到峰值。

正态分布的概率密度函数(Probability Density Function)为:

关于线性模型的底层逻辑解读 (机器学习 细读01),机器学习,机器学习,人工智能

2.2 误差分析

假定所有的样本的误差都是独立的,有上下的震荡,震荡认为是随机变量,足够多的随机变量叠加之后形成的分布,它服从的就是正态分布,因为它是正常状态下的分布,也就是高斯分布!均值是某一个值,方差是某一个值。 方差我们先不管,均值我们总有办法让它去等于零 0 的,因为我们这里是有截距b, 所有误差我们就可以认为是独立分布的,1<=i<=n,服从均值为 0,方差为某定值的高斯分布。机器学习中我们假设误差符合均值为0,方差为定值的正态分布!!!

        

正太分布公式

        

随着参数μ和σ变化,概率分布也产生变化。 下面重要的步骤来了,我们要把一组数据误差出现的总似然,也就是一组数据之所以对应误差出现的 整体可能性 表达出来了,因为数据的误差我们假设服从一个高斯分布,并且通过截距项来平移整体分布的位置从而使得μ=0,所以样本的误差我们可以表达其概率密度函数的值如下:

        

误差正太分布,简化去掉均值 μ

        

2.3 误差总似然

累乘问题:

        

根据前面公式  可以推导出来如下公式:

        

公式中的未知变量就是 ,即方程的系数,系数包含截距~如果,把上面当成一个方程,就是概率P关于W的方程!其余符号,都是常量!

        

通过,求对数把累乘问题,转变为累加问题:

        

简化:

                        

                        

上面公式是最大似然求对数后的变形,其中 都是常量,而  肯定大于!上面求最大值问题,即可转变为如下求最小值问题:

        

L代表Loss,表示损失函数,损失函数越小,那么上面最大似然就越大~

有的书本上公式,也可以这样写,用表示一个意思,的角色就是W:

        

                 

进一步推导

        

其中:

   表示全部数据,是矩阵,X表示多个数据,进行矩阵乘法时,放在前面;

   表示第i个数据,是向量,所以进行乘法时,其中一方需要转置。

因为最大似然公式中有个负号,所以最大总似然变成了最小化负号后面的部分。 到这里,我们就已经推导出来了 MSE 损失函数 ,从公式我们也可以看出来 MSE 名字的来 历,mean squared error,上式也叫做 最小二乘法

        这种最小二乘法估计,其实我们就可以认为,假定了误差服从正太分布,认为样本误差的出现是随机的,独立的,使用最大似然估计思想,利用损失函数最小化 MSE 就能求出最优解!所以反过来说,如果我们的数据误差不是互相独立的,或者不是随机出现的,那么就不适合去假设为正太分布,就不能去用正太分布的概率密度函数带入到总似然的函数中,故而就不能用 MSE 作为损失函数去求解最优解了!所以最小二乘法不是万能的~
        还有譬如假设误差服从泊松分布,或其他分布那就得用其他分布的概率密度函数去推导出损失函数了。
        所以有时我们也可以把线性回归看成是广义线性回归。比如,逻辑回归,泊松回归都属于广义线性回归的一种,这里我们线性回归可以说是最小二乘线性回归。

三 正规方程

3.1 最小二乘法矩阵表示

最小二乘法可以将误差方程转化为有确定解的代数方程组(其方程式数目正好等于未知数的个数),从而可求解出这些未知参数。这个有确定解的代数方程组称为最小二乘法估计的正规方程。公式如下:

          或者 

最小二乘法公式如下:

        

使用矩阵表示:

        

3.2 矩阵转置公式与求导公式:

关于线性模型的底层逻辑解读 (机器学习 细读01),机器学习,机器学习,人工智能

3.2.1 公式展开

关于线性模型的底层逻辑解读 (机器学习 细读01),机器学习,机器学习,人工智能

3.2.2 求导

关于线性模型的底层逻辑解读 (机器学习 细读01),机器学习,机器学习,人工智能

3.2.3 推导

          令导数   

3.2.4 使用逆矩阵进行转化

公式推导结束:

关于线性模型的底层逻辑解读 (机器学习 细读01),机器学习,机器学习,人工智能

四 使用代码计算

4.1 简单线性回归

        关于线性模型的底层逻辑解读 (机器学习 细读01),机器学习,机器学习,人工智能

4.1.1 数据生成

import numpy as np
import matplotlib.pyplot as plt

# 转化为矩阵
X = np.linspace(0, 10, num=30).reshape(-1, 1)
# 斜率和截距,随机生成
w = np.random.randint(1,5,size = 1)
b = np.random.randint(1,10,size = 1)
# 根据一元一次方程计算目标值y,并加上“噪声”,数据有上下波动~
y = X * w + b + np.random.randn(30,1)
print(f'w:{w}, b:{b}')  # w:[4], b:[1]
plt.scatter(X,y)  # "scatter" 表示"散点"

关于线性模型的底层逻辑解读 (机器学习 细读01),机器学习,机器学习,人工智能

4.1.2 正规方程求解

求导公式:

          

np.concatenate 是 NumPy 库中用于数组拼接和连接的函数:

关于线性模型的底层逻辑解读 (机器学习 细读01),机器学习,机器学习,人工智能

plt.scatter(X,y)
# 重新构造X, 不相当于截距,给b一个权重1,方便矩阵计算
"""np.concatenate 是 NumPy 库中用于数组拼接和连接的函数"""
X = np.concatenate([X, np.full(shape = (30, 1), fill_value=1)], axis=1)

# 正规方程求解  
""""
1 np.linalg.inv 是 NumPy 中的线性代数函数,用于计算矩阵的逆
2 np.dot() 计算了它们的矩阵乘法。  
3 使用 .T 属性来获取矩阵的转置
4 .round(2) 是 Python 中用于四舍五入数字到指定小数位数的方法。
"""
a = np.linalg.inv(X.T.dot(X)).dot(X.T).dot(y).round(2)
print(f'查看正规方程求解结果:', a)  # [[3.98] [3.88]]
plt.plot(X[:, 0], X.dot(a), color='green')

关于线性模型的底层逻辑解读 (机器学习 细读01),机器学习,机器学习,人工智能

4.2 多元线性回归求解

        关于线性模型的底层逻辑解读 (机器学习 细读01),机器学习,机器学习,人工智能

        

求解公式:θ = np.linalg.inv(X.T.dot(X)).dot(X.T).dot(y).round(2)

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D # 绘制三维图像
# 转化成矩阵
x1 = np.random.randint(-150,150,size = (300,1))
x2 = np.random.randint(0,300,size = (300,1))
# 斜率和截距,随机生成
w = np.random.randint(1,5,size = 2)
b = np.random.randint(1,10,size = 1)
# 根据二元一次方程计算目标值y,并加上“噪声”,数据有上下波动~
y = x1 * w[0] + x2 * w[1] + b + np.random.randn(300,1)
fig = plt.figure(figsize=(15, 12))
ax = fig.add_subplot(projection='3d')
ax.scatter(x1,x2,y) # 三维散点图
ax.view_init(elev=10, azim=-20) # 调整视角
# 重新构造X,将x1、x2以及截距b,相当于系数w0,前面统一乘以1进行数据合并
X = np.concatenate([x1,x2,np.full(shape = (300,1),fill_value=1)],axis = 1)
w = np.concatenate([w,b])
# 正规方程求解
θ = np.linalg.inv(X.T.dot(X)).dot(X.T).dot(y).round(2)  # 计算公式
print('二元一次方程真实的斜率和截距是:',w)
print('通过正规方程求解的斜率和截距是:',θ.reshape(-1))
# # 根据求解的斜率和截距绘制线性回归线型图
x = np.linspace(-150,150,100)
y = np.linspace(0,300,100)
z = x * θ[0] + y * θ[1] + θ[2]
ax.plot(x,y,z ,color = 'red')

关于线性模型的底层逻辑解读 (机器学习 细读01),机器学习,机器学习,人工智能文章来源地址https://www.toymoban.com/news/detail-730644.html

到了这里,关于关于线性模型的底层逻辑解读 (机器学习 细读01)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【机器学习300问】61、逻辑回归与线性回归的异同?

            本文讲述两个经典机器学习逻辑回归(Logistic Regression)和线性回归(Linear Regression)算法的异同,有助于我们在面对实际问题时更好的进行模型选择。也能帮助我们加深对两者的理解,掌握这两类基础模型有助于进一步理解更复杂的模型结构,例如逻辑回归是许多复

    2024年04月12日
    浏览(28)
  • 机器学习算法:线性回归、逻辑回归、决策树和随机森林解析

    引言 机器学习算法是人工智能领域的核心,它们用于解决各种问题,从预测房价到图像分类。本博客将深入探讨四种常见的机器学习算法:线性回归、逻辑回归、决策树和随机森林。 线性回归 什么是线性回归? 线性回归是一种用于建立连续数值输出的机器学习模型的算法。

    2024年02月10日
    浏览(53)
  • 【AI底层逻辑】——“数学华尔兹”之一元线性回归

    一元线性回归模型 想必大家都耳熟能详,这里不再赘述。但在使用python中机器学习包时一定见过类似模型 评价参数 的输出,这一章我们就讲一讲回归分析里一些模型评价概念! 方差分析是一种用于确定线性回归模型中 不同变量对目标变量解释程度 的统计技术。方差分 析

    2024年02月02日
    浏览(42)
  • 【AI底层逻辑】——“数学华尔兹”之一元线性回归(代码实测)

    目录 一、一元线性回归代码实测 二、统计量分析 1、statsmodels库 2、计算各种统计量 3、F检验、t检验 4、置信区间、预测区间 5、残差正态检验 6、自相关检测 ①导入相关模块 首先导入必要的模块,这里主要使用了 Python的sklearn库里自带的丰富算法模块 !具体每个库的功能可

    2024年02月03日
    浏览(40)
  • 机器学习(六):回归分析——鸢尾花多变量回归、逻辑回归三分类只用numpy,sigmoid、实现RANSAC 线性拟合

    [ 实验1 回归分析] 一、 预备知识 使用梯度下降法求解多变量回归问题 数据集 Iris 鸢尾花数据集是一个经典数据集,在统计学习和机器学习领域都经常被用作示例。数据集内包含 3 类共 150 条记录,每类各 50 个数据,每条记录都有 4 项特征:花萼长度、花萼宽度、花瓣长度、

    2023年04月13日
    浏览(82)
  • 机械学习模型训练常用代码(随机森林、聚类、逻辑回归、svm、线性回归、lasso回归,岭回归)

    更多pandas操作请参考添加链接描述pandas对于文件数据基本操作 导入的包sklearn 字符串编码处理,LabelEncoder TfidfVectorizer结合TruncatedSVD 排除某一列,例如 如果需要用到回归则换成RandomForestRegressor 数据在dc_matrix里面 绘制距离 #加入到表里面 师范,保存文本模型,使用其转换,调

    2023年04月14日
    浏览(52)
  • 【机器学习】线性回归模型详解

    PS:本文有一定阅读门槛,如果有不明白的地方欢迎评论询问! 接下来我们将要学习我们的第一个模型——线性回归。比如说我需要根据数据预测某个面积的房子可以卖多少钱 接下来我们会用到以下符号: m:训练样本数量 x:输入值,又称为属性值 y:输出值,是我们需要的结果

    2024年02月03日
    浏览(62)
  • 【机器学习300问】15、什么是逻辑回归模型?

            逻辑回归(Logistic Regression)是一种广义线性回归分析模型,尤其适用于解决 二分类问题 (输出为两个类别)。 邮件过滤 :判断一封电子邮件是否为垃圾邮件。结果为垃圾邮件(1)或非垃圾邮件(0); 医疗诊断 :判断病人是否患有某种疾病,如癌症。结果为患

    2024年01月22日
    浏览(47)
  • 机器学习:逻辑回归模型算法原理(附案例实战)

    作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍 📜📜📜如果有小伙伴需要数据集和学习交流,文章下方有交流学习区!一起学习进步!💪 订阅专栏案

    2024年01月20日
    浏览(48)
  • 机器学习10—多元线性回归模型

    在市场的经济活动中,经常会遇到某一市场现象的发展和变化取决于几个影响因素的情况,也就是一个因变量和几个自变量有依存关系的情况。而且有时几个影响因素主次难以区分,或者有的因素虽属次要,但也不能略去其作用。例如,某一商品的销售量既与人口的增长变化

    2023年04月24日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包