当前位置: 首页 > news >正文

线性回归(Linear Regression)

什么是机器学习

线性回归是一种用于建立变量之间线性关系的统计模型。在简单线性回归中,我们考虑一个自变量和一个因变量的关系,而在多元线性回归中,我们考虑多个自变量和一个因变量之间的关系。

简单线性回归

简单线性回归模型可以表示为:

其中:

  • y 是因变量
  • x 是自变量
  • m 是斜率(表示变量之间的关系强度)
  • b 是截距(表示在自变量为 0 时,因变量的值)

训练简单线性回归模型的目标是找到最适合数据的直线,使得预测值与实际值的差距最小化。通常采用最小二乘法来拟合这条直线。

多元线性回归

多元线性回归考虑了多个自变量的情况,模型可以表示为:

在这里插入图片描述

其中:

  • y 是因变量
  • x1, x2, ..., xn 是多个自变量
  • b0 是截距
  • b1, b2, ... , bn 是各自变量的系数

训练多元线性回归模型的目标是找到一组系数,使得预测值与实际值的差距最小化。

模型训练步骤

  1. 收集数据: 收集包含因变量和自变量的数据。
  2. 定义模型: 根据问题的性质选择简单线性回归或多元线性回归,并定义回归方程。
  3. 拟合模型: 使用训练数据拟合回归方程,找到最优的系数。
  4. 预测: 使用模型对新数据进行预测。
  5. 评估: 使用评估指标(如均方误差、决定系数等)评估模型的性能。

代码示例(使用 Python 和 scikit-learn

以下是一个简单线性回归的示例:

from sklearn.linear_model import LinearRegression
import numpy as np
import matplotlib.pyplot as plt# 生成随机数据
np.random.seed(0)
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)# 创建线性回归模型
model = LinearRegression()# 拟合模型
model.fit(X, y)# 打印系数和截距
print("斜率 (m):", model.coef_[0][0])
print("截距 (b):", model.intercept_[0])# 预测新数据
X_new = np.array([[1.5]])
y_pred = model.predict(X_new)
print("预测结果:", y_pred[0][0])# 绘制散点图和拟合的直线
plt.scatter(X, y, color='blue')
plt.plot(X, model.predict(X), color='red', linewidth=3)
plt.xlabel("自变量")
plt.ylabel("因变量")
plt.title("简单线性回归")
plt.show()

在这个例子中,我们使用 scikit-learn 库进行线性回归模型的训练和预测。

http://www.lryc.cn/news/278226.html

相关文章:

  • matlab绘图修改坐标轴数字字体大小及坐标轴自定义间隔设置
  • C++入门教程,C++基础教程(第一部分:从C到C++)七
  • 【数据库】视图索引执行计划多表查询笔试题
  • CentOS7本地部署分布式开源监控系统Zabbix并结合内网穿透实现远程访问
  • 虚拟主机 如何上传大于100M的文件 php网站程序
  • 登录模块的实现
  • Asp .Net Core系列:基于MySQL的DBHelper帮助类和SQL Server的DBHelper帮助类
  • 【排序】对各种排序的总结
  • Apache ActiveMQ RCE CNVD-2023-69477 CVE-2023-46604
  • C语言可变参数输入
  • 飞天使-k8s知识点10-kubernetes资源对象3-controller
  • 【Vue技巧】Vue2和Vue3组件上使用v-model的实现原理
  • 博客随手记
  • 【2023】java常用HTTP客户端对比以及使用(HttpClient/OkHttp/WebClient)
  • 微信小程序获取来源场景值
  • Vue3:vue-cli项目创建及vue.config.js配置
  • 关于CAD导入**地球的一些问题讨论
  • Semaphore信号量详解
  • Python的核心知识点整理大全66(已完结撒花)
  • k8s的存储卷
  • Git 实战指南:常用指令精要手册(持续更新)
  • 关于SpringMVC前后端传值总结
  • 【排序】归并排序(C语言实现)
  • 127. 单词接龙
  • 计算机算法贪心算法
  • 基于css实现动画效果
  • 18.将文件上传至云服务器 + 优化网站的性能
  • Linux: module: kheaders;CONFIG_IKHEADERS
  • Page 251~254 Win32 GUI项目
  • Kafka(七)可靠性