机器学习4-多元线性回归

多元线性回归(Multiple Linear Regression)是线性回归的一种扩展形式,用于建立因变量与多个自变量之间的关系。在简单线性回归中,我们考虑一个因变量和一个自变量之间的线性关系,而多元线性回归允许我们考虑多个自变量对因变量的影响。

一般的多元线性回归模型的数学表达式如下:

Y=\beta_{0}+\beta_{1}X_{1}+\beta_{2}X_{2}+...++\beta_{n}X_{n}+\varepsilon

其中:

  • Y 是因变量(要预测的目标)。
  • X1​,X2​,…,Xn​ 是自变量(特征)。
  • β0​ 是截距(模型在X1​,X2​,…,Xn​ 都为0时的预测值)。
  • β1​,β2​,…,βn​ 是各自变量的回归系数,表示自变量对因变量的影响。
  • ε 是误差项,表示模型无法捕捉到的影响因素和随机误差。

多元线性回归的目标是找到合适的回归系数 β0​,β1​,…,βn​ 来最小化实际观测值 Y 与模型预测值之间的误差,通常使用最小二乘法进行优化。

模型训练后,可以使用这个模型进行预测。当有新的自变量值 X1​,X2​,…,Xn​ 时,通过带入这些值,就可以预测相应的因变量值 Y

多元线性回归在实际应用中非常常见,例如在经济学中预测商品销售额,医学中预测疾病发生率,工程学中预测产品性能等。

需求:

根据现有数据预测公司的利润

数据示例:

R&D SpendAdministrationMarketing SpendStateProfit
165349.2136897.8471784.1New York192261.83
162597.7151377.59443898.53California191792.06

程序:

## Step 1: Data Preprocessing### Importing the libraries
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np### Importing the dataset
dataset = pd.read_csv('50_Startups.csv')
X = dataset.iloc[:, :-1].values
Y = dataset.iloc[:, 4].values### Encoding Categorical data
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
from sklearn.compose import ColumnTransformerlabelencoder = LabelEncoder()
X[:, 3] = labelencoder.fit_transform(X[:, 3])# Use ColumnTransformer for one-hot encoding
ct = ColumnTransformer(transformers=[('onehot', OneHotEncoder(), [3])  # Apply one-hot encoding to column 3],remainder='passthrough'  # Keep the rest of the columns unchanged
)X = np.array(ct.fit_transform(X), dtype=np.float64)### Avoiding Dummy Variable Trap
X = X[:, 1:]### Splitting the dataset into the Training set and Test set
from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=0)## Step 2: Fitting Multiple Linear Regression to the Training set
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train, Y_train)## Step 3: Predicting the Test set results
Y_pred = regressor.predict(X_test)print(Y_pred)# Step 4: Visualizing the results
plt.scatter(Y_test, Y_pred, color='blue')
plt.plot([min(Y_test), max(Y_test)], [min(Y_test), max(Y_test)], linestyle='--', color='red', linewidth=2, label='Regression Line')plt.title('Actual vs Predicted Profit')
plt.xlabel('Actual Profit')
plt.ylabel('Predicted Profit')
plt.show()

结果:

结论:

10个结果数据的预测值与真实值相差不多,大体落在线性回归模型的范围内。

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

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

相关文章

轻松录制视频,WPS录屏功能全攻略

“有人知道wps怎么录屏吗?老师要求我们录制一段视频,是关于课堂教学的,可是我不会录制文档,眼看就快到提交的时间了,现在真的很着急,希望大家帮帮我!” 随着信息技术的发展,录制屏幕…

数字图像处理(实践篇)三十二 OpenCV-Python比较两张图片的差异

目录 一 方案 二 实践 ​通过计算两张图像像素值的均方误差(MSE)来比较两张图像。差异大的两张图片具有较大的均方差值,相反,相似的图片间则具有较小的均方差值。需要注意的是。待比较的两张图像要具有相同的高度、宽度和通道数。 一 方案 ①导入依赖库 import cv2 import…

ROR之.nil? .empty? .blank?的用法

1、出处 Ruby的方法:.nil?、.empty? Rails的方法:.blank? 2、意义: .nil? 判断对象是否存在; .empty? 对象已经存在,判断是否为空字段 .blank? 相当于同时满足.nil?和.empty? 注:Rails API中…

幻兽帕鲁专用服务器延迟高怎么解决?

幻兽帕鲁专用服务器延迟高的问题,可能是由于网络环境、服务器负载、数据传输等原因导致的。下面将针对这些问题,提供一些解决方案和建议,帮助您解决延迟高的问题,提升游戏体验。 1.检查网络环境。网络环境不稳定或者带宽较低&…

mysql navicat 定时执行sql脚本

1、查看数据库是否开启定时任务。 show variables like event_scheduler;2、没有开起的话,执行以下开启命令。 set global event_scheduler on;3、选择数据库,创建事件。 4、创建定义的执行函数或者存储过程。我自己写的是存储过程,如下。…

windows下postgresql的安装使用

一、安装 1、安装包安装 1.1 下载exe安装包 选择安装包:官网 或者点击下载:postgresql-12.12-1-windows-x64.exe Tip:此时若报错:There has been an error.An error occured executing the Microsoft VC runtime installer。 参…

阿里云 DMS 执行sql变更

数据库开发-数据变更-无锁变更 选择数据库:比如要更新生产库,搜索生产库名字。 填入变更sql。

V2X,启动高增长引擎

车载通讯的下一个新周期,毋庸置疑是V2X。从4G、5G再到C-V2X,是车载通讯逐步从信息娱乐、行车数据监控到万物互联的关键。 去年5月,全球车载通讯芯片巨头—高通公司宣布,与以色列车联网(V2X)芯片设计公司Aut…

10个关键字让你的谷歌竞价排名瞬间飙升-华媒舍

在现代社会中,搜索引擎已经成为获取信息的主要途径之一。在这其中,谷歌搜索引擎以其强大的搜索算法和智能化的用户体验而闻名。对于企业主来说,如何提高在谷歌搜索结果中的排名,对于他们的品牌推广和获取潜在客户非常重要。 1. 关…

pointer-events: none;解决页面水印导致子节点鼠标事件失效的问题

背景:实现水印功能之后,由于水印是一个遮罩层,导致z-index元素比较低的子元素,鼠标移入事件、点击事件都失效了。 解决方案:给添加水印样式的元素,添加css样式:pointer-events: none;。子元素添…

如何在树莓派安装运行Nginx实现无公网ip环境访问内网静态网站

文章目录 1. Nginx安装2. 安装cpolar3.配置域名访问Nginx4. 固定域名访问5. 配置静态站点 安装 Nginx(发音为“engine-x”)可以将您的树莓派变成一个强大的 Web 服务器,可以用于托管网站或 Web 应用程序。相比其他 Web 服务器,Ngi…

linux☞ Centos 基础篇

切换用户 重启系统、退出 su 用户 ### su switch user 重启系统 reboot 退出当前账户 logout 或者 exit 或者 CtrlD 修改网卡配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33 TYPEEthernet:指明网卡类型为以太网 DEVICEens33:指定当前配置的…

LeetCode 每日一题Day 54 - 61

2859. 计算 K 置位下标对应元素的和 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。 请你用整数形式返回 nums 中的特定元素之 和 ,这些特定元素满足:其对应下标的二进制表示中恰存在 k 个置位。 整数的二进制表示中的 1 就是这个整数的 置位…

Find My点读笔|苹果Find My技术与点读笔结合,智能防丢,全球定位

点读笔是采用国际最新光学图像识别技术和先进的数码语音技术开发而成的新一代智能阅读和学习工具。它体现了电子产品与教育行业的完美融合,实现了科技以人为本的理念。点读笔能同时实现点读、复读、跟读、录音、娱乐等诸多功能。由于小孩贪玩很容易造成点读笔的丢失…

负载均衡下的webshell连接

一、环境配置 1.在Ubuntu上配置docker环境 我们选择用Xshell来将环境资源上传到Ubuntu虚拟机上(比较简单) 我们选择在root模式下进行环境配置,先将资源文件复制到root下(如果你一开始就传输到root下就不用理会这个) …

华为配置接口二三层切换示例

配置接口二三层切换示例 组网图形 图1 配置非自协商模式下速率和双工模式组网图 二三层切换简介配置注意事项组网需求配置思路操作步骤配置文件 二三层切换简介 基于接口板的硬件构造,某些形态设备上接口只能作为二层以太网接口,某些形态设备上接口…

百无聊赖之JavaEE从入门到放弃(十四)异常

目录 一.异常机制 二.异常分类 三.异常的处理方式 1.捕获异常(try-catch-finally) 2.声明异常(throws 子句) 四.try-with-resource 五.自定义异常 六.IDEA 调试 debug 一.异常机制 工作中,程序遇到的情况不可能完美。比如&#xff1a…

神经网络与深度学习Pytorch版 Softmax回归 笔记

Softmax回归 目录 Softmax回归 1. 独热编码 2. Softmax回归的网络架构是一个单层的全连接神经网络。 3. Softmax回归模型概述及其在多分类问题中的应用 4. Softmax运算在多分类问题中的应用及其数学原理 5. 小批量样本分类的矢量计算表达式 6. 交叉熵损失函数 7. 模型预…

记一次某竞赛中的渗透测试(Windows Server 2003靶机漏洞)

靶机简介 Windows Server 2003是微软公司于2003年3月28日发布的服务器操作系统,它基于Windows XP/Windows NT 5.1进行开发,并在同年4月底上市。以下是关于Windows Server 2003的详细介绍: 系统名称与发布历程: 该产品最初被命名为…