回归分析:预测和建模

回归分析:预测和建模

  • 写在开头
  • 1. 回归分析的基本概念
  • 2. 回归分析的方法
    • 2.1 简单线性回归
      • 2.1.1 数学知识
      • 2.1.2 应用举例
    • 2.2 多元线性回归
      • 2.2.1 数学公式和应用
      • 2.2.1 应用场景举例
    • 2.3 多项式回归
      • 2.3.1 数学公式和应用
      • 2.3.2 应用场景举例
    • 2.4 逻辑回归
      • 2.4.1 数学公式和应用
      • 2.4.2 应用场景举例
  • 3.模型评估
    • 3.1 均方误差(Mean Squared Error,MSE):
    • 3.2 均方根误差(RMSE):
    • 3.3 决定系数(Coefficient of Determination,R²)
    • 3.4 平均绝对误差(Mean Absolute Error,MAE)
    • 3.5 拟合优度(Goodness of Fit)
    • 3.6 交叉验证
  • 写在最后

写在开头

回归分析是数据科学中一项不可或缺的工具,为我们提供了洞察变量之间关系的能力,使我们能够更准确地预测未来趋势并进行有力的建模。在本篇博客中,我们将深入探讨回归分析的核心概念和方法,通过具体场景、实例代码以及深刻的统计学知识,助力读者在预测与建模的复杂领域中游刃有余。

1. 回归分析的基本概念

回归分析旨在探讨一个或多个自变量与因变量之间的关系。其中,自变量是影响因变量的因素,而因变量是我们希望预测或解释的变量。简而言之,回归分析可以帮助我们了解变量之间的相互作用,并用这些关系进行预测。

2. 回归分析的方法

下面是回归分析的一些对比和介绍,可以帮助你更好的理解回归分析。

回归类型优点缺点适用范围注意事项应用场景举例
简单线性回归- 易于理解和实现。- 仅适用于线性关系。- 适用于仅包含一个自变量和一个因变量的简单关系。- 确保数据符合线性假设。- 广告费用与销售额之间的关系。
多元线性回归- 考虑多个自变量,能够更准确地建模真实世界复杂关系。- 对多重共线性敏感。- 适用于多个自变量与一个因变量之间的复杂关系。- 检测和处理多重共线性。- 房价与面积、卧室数量、浴室数量等因素的关系。
多项式回归- 能够拟合非线性关系。- 对高阶多项式的拟合可能过度复杂,容易过拟合。- 适用于数据呈现非线性关系,但避免使用过高阶多项式。- 谨慎选择多项式的阶数,避免过拟合。- 温度与销售额之间可能存在非线性关系。
逻辑回归- 用于二分类问题,输出结果可解释为概率。- 对多类别问题不直接适用。- 适用于二分类问题,如是/否、成功/失败等。- 确保样本均衡,避免过拟合。- 产品是否被购买的预测,疾病是否发病的概率预测。

在选择回归分析方法时,需要综合考虑数据的性质、问题的复杂程度以及模型的可解释性。不同类型的回归方法各有优劣,合适的方法应根据具体情况进行选择。注意事项的遵循可以提高建模的准确性和可靠性,确保模型的实际应用效果更好.

2.1 简单线性回归

简单线性回归是一种统计分析方法,用于研究两个变量之间的关系。它假设有一个自变量(输入变量)和一个因变量(输出变量)之间存在线性关系。简单线性回归的目标是建立一条直线,描述自变量和因变量之间的关系,使得通过该直线可以预测或解释因变量的值。

2.1.1 数学知识

简单线性回归模型的数学表示为: y = β 0 + β 1 x + ε y = \beta_0 + \beta_1x + \varepsilon y=β0+β1x+ε

其中, y y y是因变量, x x x是自变量, β 0 \beta_0 β0 β 1 \beta_1 β1是回归方程的截距和斜率, ε \varepsilon ε是误差项,代表模型无法解释的随机误差。

在简单线性回归中,通过收集一组包含自变量和因变量值的数据,使用统计方法拟合直线,以找到最适合数据的回归线。这条拟合的直线可以帮助理解自变量和因变量之间的关系,并用于预测新的因变量值,基于给定的自变量值。简单线性回归是回归分析中的基础,它可以用于探索和量化两个变量之间的线性关系,但需要注意,它仅适用于具有线性关系的数据,并且在应用时需要满足一些假设前提。

2.1.2 应用举例

在python中来构建线性回归的模型非常多,比如scikit-learn,Statsmodels,TensorFlow,PyTorch,XGBoost,LightGBM,CatBoost等等,非常之多。在这里我们以 Python 中的 scikit-learn 库展示相应的代码。

假设我们有一组包含广告费用和销售额的数据,以此来建立简单的线性回归分析模型,代码如下:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression# 生成模拟数据
np.random.seed(1)
ad_costs = np.random.rand(100, 1) * 50  # 广告费用(假设范围在0到50之间)
sales = 15 + 0.5 * ad_costs + np.random.randn(100, 1) * 5  # 生成销售额数据(加入随机噪声)# 绘制数据散点图
plt.scatter(ad_costs, sales, label='原始数据')
plt.title('广告费用与销售额关系')
plt.xlabel('广告费用')
plt.ylabel('销售额')# 使用线性回归模型拟合数据
model = LinearRegression()
model.fit(ad_costs, sales)# 打印R方,系数和截距
r_squared = model.score(ad_costs, sales)
print('R方值:', r_squared)
print('模型系数 (斜率):', model.coef_[0][0])
print('模型截距:', model.intercept_[0])# 绘制回归线
plt.plot(ad_costs, model.predict(ad_costs), color='red', label='回归线')plt.legend()
plt.show()

运行上述代码后,结果如下图:
1.1
从上面的运行结果来看,建立的数据模型的R方值为0.704,这说明上述的线性回归模型,能解释70.4%的销售额变化。这个构建好的关系表达式为 y = 0.4685 ∗ x + 16.1848 y = 0.4685 * x +16.1848 y=0.4685x+16.1848。从R方的值来看,这个构建的模型效果还算ok,如果我们追求更高的拟合程度,可以考虑引入更多的特征、构建多项式回归、进行特征工程或使用其他模型。

2.2 多元线性回归

多元线性回归是用于研究多个自变量与一个因变量之间的关系。与简单线性回归不同,多元线性回归包含多个自变量,通过建立一个线性模型来探索和解释这些自变量与因变量之间的关系。

2.2.1 数学公式和应用

多元线性回归模型的数学表示为:
y = β 0 + β 1 x 1 + β 2 x 2 + … + β p x p + ε y = \beta_0 + \beta_1x_1 + \beta_2x_2 + \ldots + \beta_px_p + \varepsilon y=β0+β1x1+β2x2++βpxp+ε

其中, y y y是因变量, x 1 , x 2 , … , x p x_1, x_2, \ldots, x_p x1,x

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

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

相关文章

matlab科学计算

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。关…

如何进行卷积特征可视化

大家好啊,我是董董灿。 之前写过很多关于卷积算法的文章:5分钟理解什么是卷积的特征提取。总的来说,卷积算法的本质是一个特征提取器。 那么既然卷积神经网络在图像分类、图像检测、图像分割以及其他领域有这么好的表现,卷积到底…

【动手学深度学习】(六)权重衰退

文章目录 一、理论知识二、代码实现2.1从零开始实现2.2简洁实现 【相关总结】 主要解决过拟合 一、理论知识 1、使用均方范数作为硬性限制(不常用) 通过限制参数值的选择范围来控制模型容量 通常不限制偏移b 小的意味着更强的正则项 使用均方范数作为柔…

多项式拟合求解

目录 简介 基本原理 例1 例2 例3 参考资料 简介 多项式拟合可以用最小二乘求解,不管是一元高阶函数,还是多元多项式函数,还是二者的混合,都可以通过统一的方法求解。当然除了最小二乘法,还是其他方法可以求解&…

极兔速递查询,极兔速递单号查询,根据更新量筛选出来需要的单号

批量查询极兔速递单号的物流信息,并根据物流更新量将需要的单号筛选出来。 所需工具: 一个【快递批量查询高手】软件 极兔速递单号若干 操作步骤: 步骤1:运行【快递批量查询高手】软件,第一次使用的伙伴记得先注册&…

express搭建后台node接口

在前端的学习中我们使用express来开发接口结合mysql,然后使用可视化的数据库工具来操作数据, web框架是express 文档是jsdoc swagger 数据库模型是sequelize 部署使用PM2来上服务器, 打包你也可以结合webpack配置target node状态 当然你也可以…

糟了,数据库崩了,又好像没崩

前言 2023 年某一天周末,新手程序员小明因为领导安排的一个活来到公司加班,小明三下五除二,按照领导要求写了一个跑批的数据落库任务在测试环境执行 ,突然间公司停电了,小明大惊,“糟了,MySQL …

cc-product-waterfall仿天猫、淘宝购物车店铺商品列表组件

cc-product-waterfall仿天猫、淘宝购物车店铺商品列表组件 引言 在电商应用中,购物车体验的优化对于提升用户满意度和转化率至关重要。在本文中,我们将深入探讨如何使用cc-product-waterfall组件,结合uni-number-box和xg-widget,…

软著项目推荐 深度学习手势识别算法实现 - opencv python

文章目录 1 前言2 项目背景3 任务描述4 环境搭配5 项目实现5.1 准备数据5.2 构建网络5.3 开始训练5.4 模型评估 6 识别效果7 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习手势识别算法实现 - opencv python 该项目较为新颖…

计算机网络 | 物理层下 传输媒介、信道复用技术,带宽接入技术

文章目录 3. 物理层下面的传输媒介3.1 导引型传输媒介3.2 非导引型传输媒介 4 信道复用技术5 数字传输系统5.1 旧的数字系统5.2 新数字系统 6 带宽接入技术6.1 DSL(数字用户线)6.2HFC 光纤同轴混合网6.2.1 接入 6.3 FTTx技术 3. 物理层下面的传输媒介 传…

FL Studio 21.2.1.3859中文破解激活版2024免费下载安装图文教程

FL Studio 21.2.1.3859中文破解激活版是我见过更新迭代最快的宿主软件,没有之一。FL Studio12、FL Studio20、FL Studio21等等。有时甚至我刚刚下载好了最新版本,熟悉了新版本一些好用的操作,Fl Studio就又推出了更新的版本,而且F…

WebGL笔记:矩阵平移的数学原理和实现

矩阵平移的数学原理 让向量OA位移 x方向&#xff0c;txy方向&#xff0c;tyz方向&#xff0c;tz 最终得到向量OB 矩阵平移的应用 再比如我要让顶点的x移动0.1&#xff0c;y移动0.2&#xff0c;z移动0.3 1 &#xff09;顶点着色器核心代码 <script id"vertexShader&…

面试官:说说Vue中Proxy与Object.defineProperty的用法与区别

前言 面试时&#xff0c;我们说完Vue响应式原理&#xff0c;或者Vue2和Vue3的区别时&#xff0c;通常会引出Vue3使用了Proxy来优化响应式&#xff0c;而面试官会继续深挖&#xff1a;说说Proxy与Object.defineProperty的区别。 我们不能只说Proxy直接代理一个对象&#xff0c…

带头双向循环链表:一种高效的数据结构

&#x1f493; 博客主页&#xff1a;江池俊的博客⏩ 收录专栏&#xff1a;数据结构探索&#x1f449;专栏推荐&#xff1a;✅cpolar ✅C语言进阶之路&#x1f4bb;代码仓库&#xff1a;江池俊的代码仓库&#x1f525;编译环境&#xff1a;Visual Studio 2022&#x1f389;欢迎大…

基于maobox-gl 纯前端绘制全球色斑图

基于maobox-gl.js、turf.js 绘制全球色斑图绘制 1、准备全球的某一类的点位数据&#xff0c;可以使用turf.js 随机生成点&#xff0c;并点数据赋properties属性 let points turf.randomPoint(30, { bbox: [-180, -90, 180, 90]}); let interpolateOptions {gridType: "…

Linux下Python调用C语言

一&#xff1a;Python调用C语言场景 1&#xff0c;已经写好的C语言代码&#xff0c;不容易用Python实现&#xff0c;想直接通过Python调用写好的C语言代码 2&#xff0c;C比Python快&#xff08;只是从语言层面&#xff0c;不能绝对说C程序就是比Python快&#xff09; 3&…

遥感方向期刊总结

开眼看期刊~ 期刊分区信息搜索网址中国科学院文献情报中心期刊分区表升级版科研通期刊查询&#xff1a; 遥感领域常见期刊Nature CommunicationsRemote Sensing of EnvironmentProceedings of the National Academy of Sciences &#xff08;PNAS&#xff09;ISPRS Journal of …

yolov5 7.0版本部署手机端。通过pnnx导出ncnn。

yolov5 7.0版本部署手机端。通过pnnx导出ncnn。 流程配置ncnn android yolov5导出自己模型的ncnn修改yolo.py文件导出TorchScript文件pnnx转torchscript为ncnn 安卓运行权重路径输入输出anchors 大小类别名generate_proposals方法修改 结果 流程 网络yolov5 的部署已经有很多了…

最新最全的Postman接口测试: postman实现参数化

什么时候会用到参数化 比如&#xff1a;一个模块要用多组不同数据进行测试 验证业务的正确性 Login模块&#xff1a;正确的用户名&#xff0c;密码 成功&#xff1b;错误的用户名&#xff0c;正确的密码 失败 postman实现参数化 在实际的接口测试中&#xff0c;部分参数…

2023第二届全国大学生数据分析大赛AB题代码

看大家需求量比较大&#xff0c;所以更新了一下A、B题的示例代码&#xff0c;部分截图如下 A题部分截图 B题部分截图 免费获取代码 关注威信公众号 Python风控模型与数据分析&#xff0c;回复 23年数据分析大赛代码 文末查看如何免费获取代码&#xff1b;编写不易&#xff0c;…