如何使用python来进行回归分析

文章主要介绍两种常见的回归分析方法,以及其对应的Python实现操作。
目录:
什么是回归分析
为什么使用回归分析
回归分析技术有哪些
使用Python实现回归分析

什么是回归分析

在统计学中,回归分析(regression analysis)指的是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。
在大数据分析中,回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。

回归分析是通过规定的因变量和自变量来确定变量间的关系,建立回归模型,并根据实测数据来求解模型的各参数,然后评价回归模型是否能够很好的拟合实测数据;如果能够很好的拟合,则可以根据自变量作进一步预测。

举例来说,我们可以通过回归分析来研究和预测员工的流失情况与员工的各种特征之间的关系;预测股票波动与各种股票特征之间的关系等等。回归分析还可以用于比较那些通过不同变量之间的相互影响,如商品价格变动与促销活动数量之间的关系。

回归分析与相关分析不同,相关分析表明的是变量间的相关关系的性质和程度,一般不区分因变量和自变量;而回归分析研究是的影响关系如何,需要确定具体的因变量和自变量间的相关的数学形式。所以一般都会先进行相关分析后,确认存在相关再进行回归分析。

为什么使用回归分析
如上所说,我们可以看出:

回归分析可以表明因变量和自变量之间的显著关系;也可以表明自变量对因变量的影响程度。

利用回归分析,我们可以更好的了解哪些变量对因变量的影响程度更大,从而决定采取什么样的方式去解决问题或者达到目标。

回归分析技术有哪些
比较常见的回归分析有线性回归、逻辑回归,除了这两种,还有多项式回归、逐步回归、岭回归、套索回归和弹性网络回归也都比较常见。

接下来我们对这些比较常见的两种回归方法进行分析:

1.Linear Regression线性回归

线性回归是最为人熟知的建模技术之一。线性回归通常是人们在学习预测模型时首选的技术之一。在这种技术中,因变量是连续的,自变量可以是连续的也可以是离散的,回归线的性质是线性的。

线性回归使用最佳的拟合直线(也就是回归线)在因变量(Y)和一个或多个自变量(X)之间建立一种关系。

线性回归可以表示为 [公式] ;通常,a是截距,b表示斜率。

接下来,我们需要去衡量自变量x与因变量y的相关程度。

举例来看:这里有20名学生,以及他们为考试花费时间和最后的考试成绩,我们需要研究自变量花费时间和因变量成绩的相关关系:
在这里插入图片描述先画一个散点图看下:

在这里插入图片描述
可以看出来,随着学习时间越大,考试成绩也是越高的,我们也可以看下相关系数,相关系数为0.93,我们可以说,学习时间和考试成绩是强相关。
在这里插入图片描述
或许你会对相关系数比较陌生,不要着急,补充一下什么是相关系数。

再说相关系数之前,先介绍一下协方差

在概率论和统计学中,协方差用于衡量两个变量的总体误差。

期望值分别为E[x]与E[y]的两个实随机变量x与y之间的协方差Cov(x,y)定义为:
在这里插入图片描述
直观来看,协方差表示的是两个变量总体误差的期望。协方差可以表示两个变量相关性方向,也可以表示相关性大小衡量两个变量相关程度,但是协方差会因为变量的变化幅度不同,导致差异较大。为了消除变量的变化幅度带来的影响,我们可以使用相关系数。

相关系数是用以反映变量之间相关关系密切程度的统计指标。

相关系数r表达式:
在这里插入图片描述
相关系数在-1到1之间, [公式],可以说,相关系数是标准化后的协方差,单纯反映两个变量每单位的变化的相似程度。相关系数同样可以表示两个变量相关性方向,也可以表示相关性大小衡量两个变量相关程度。

回到案例中,如果我们想要通过学习时间来预测考试成绩,怎么办呢?我们可以在这些散点中穿过一条直线,使得这条直线尽量的接近每个数据点。这条直线就是“最佳拟合线”。我们无法保证这条线穿过每一个点,但是如果存在线性相关性,应该可以保证,每一个点合理的接近这条“最佳拟合线”,这样我们就可以通过学习时间来预测考试的成绩了。

我们一开始有提到,简单线性回归的表达式为y = bx+a,那我们怎么求最佳拟合线的a和b的值?我们可以通过最小二乘法来完成。

最小二乘法通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。

一个点的误差 = 实际值 - 预测值

误差平方和SSE = ∑(实际值 - 预测值)²

而最小二乘法可以使得误差平方和SSE最小

通过上述,我们已经可以建立模型。那接下来就是需要对模型的精度进行评估。

决定系数R平方来评估模型的性能。

决定系数R²反应了y的波动有多少百分比能被x的波动所描述,即表征依变数Y的变异中有多少百分比,可由控制的自变数X来解释。

决定系数R²与训练点的数量无关,不受数据集中的数据多少影响;比误差平方和SSE更可靠。
在这里插入图片描述
决定系数R²越大,表示回归模型精度越高。
2.Logistic Regression逻辑回归
还是上述的案例,如果我们去根据学生的学习成绩预测学生考试是否及格(及格&不及格),我们采用逻辑回归

逻辑回归是用来计算“事件=Success”和“事件=Failure”的概率。当因变量的类型属于二元(1 / 0,真/假,是/否)变量时,应该使用逻辑回归。
逻辑回归于线性回归的区别,就是线性回归预测输出的是(-∞,∞),而逻辑回归输出的是{0,1},是离散值。

简单来说, 逻辑回归是一种用于解决二分类(0 or 1)问题的机器学习方法,用于估计某种事物的可能性。好比投硬币预测正面还是反面,结果只有两种。

我们继续回到刚才的案例中,我们增加1个column叫“是否及格”:
在这里插入图片描述
案例中,我们根据学生花费时间作为特征变量,预测是否及格,及格、不及格就是标签。

我们用散点图观察一下:
在这里插入图片描述

如果我们依旧使用线性回归的“最佳拟合线”在这里就是不合适的。

所以我们需要使用逻辑回归。逻辑回归核心就是逻辑回归函数:
在这里插入图片描述
逻辑函数是一个S型曲线,y值是从0-1的函数,曲线函数与Y轴相交于(0,0.5)。
在这里插入图片描述
逻辑函数值表示什么呢?逻辑函数中y表示当分类结果的标签为1时,x对应的概率值;比如说,当学生为考试努力时间x=2时候,函数上y就表示,分类标签为1时的概率为0.25就是通过考试的概率为0.25;

那问题来了,有了这个概率值Y如何应用到我们结果标签0或者1上呢,因为我们是想要知道学生是否通过考试:我们利用决策面,如果逻辑函数得到的结果大于等于0.5,那特征=1,如果y<0.5,那特征-y=0;

这里需要解释一下什么是决策面

决策面,是用于在N维空间,将不同类别样本分开的平面或曲面。

机器学习可以对分类问题定义决策面,决策面通常位于两个不同类中间的地方,机器学习中有许多现成模型供我们生成决策面。

通过上述,我们已经可以建立模型。那接下来就是同样需要对模型的精度进行评估

我们用正确率评估模型的准确率。正确率等于给模型输入数据中,正确数据占所有测试数据比例。

使用Python实现回归分析
1.线性回归的Python实现
① 提取特征x和标签y

# 特征features
exam_x = df.loc[:,'学习时间']
# 标签labels
exam_y = df.loc[:,'成绩']

② 建立训练数据和测试数据

我们需要导入train_test_split,train_test_split是交叉验证中常用的函数,功能是从样本中随机的按比例选取训练数据(train)和测试数据(test)。

# 建立训练数据和测试数据
x_train , x_test , y_train , y_test = train_test_split(exam_x,exam_y,train_size = .8)

train_size:训练数据占比,如果是整数的话就是样本的数量。
③ 输出数据大小

print('原始数据特征',exam_x.shape,',训练数据特征',x_train.shape,',测试数据特征',x_test.shape)
print('原始数据标签',exam_y.shape,',训练数据标签',y_train.shape,',测试数据标签',y_test.shape)

在这里插入图片描述

④ 训练模型

先导入线性回归包:

# 1.导入线性回归
from sklearn.linear_model import LinearRegression

创建模型:

# 2.创建模型:线性回归
model1 = LinearRegression()

训练模型:

# 3.训练模型
x_train = x_train.values.reshape(-1,1)
x_test = x_test.values.reshape(-1,1)
model1.fit(x_train,y_train)

在这里插入图片描述
截距和回归系数:

# 截距
a = model1.intercept_
# 回归系数
b = model1.coef_
print('最佳拟合线:截距a = ',a,'回归系数b = ',b)

在这里插入图片描述
可以看一下图:
在这里插入图片描述
⑤ 模型准确性评估

# 模型评估
model1.score(x_test , y_test)

2.逻辑回归的Python实现

① 提取特征x和标签y

# 特征features
exam_x1 = df.loc[:,'学习时间']
# 标签labels
exam_y1 = df.loc[:,'是否及格']

② 建立训练数据和测试数据

我们同样需要导入train_test_split:

from sklearn.model_selection import train_test_split
# 建立训练数据和测试数据
x1_train , x1_test , y1_train , y1_test = train_test_split(exam_x1,exam_y1,train_size = .8)

③ 输出数据大小:

# 输出数据大小
print('原始数据特征',exam_x1.shape,',训练数据特征',x1_train.shape,',测试数据特征',x1_test.shape)
print('原始数据标签',exam_y1.shape,',训练数据标签',y1_train.shape,',测试数据标签',y1_test.shape)

④ 训练模型

先导入逻辑回归:

# 训练模型
# 1.导入逻辑回归
from sklearn.linear_model import LogisticRegression
# 2.创建模型:逻辑回归
model2 = LogisticRegression()
# 3.模型训练
x1_train = x1_train.values.reshape(-1,1)
x1_test = x1_test.values.reshape(-1,1)
model2.fit(x1_train,y1_train)

在这里插入图片描述
⑤ 评估模型的准确率

# 评估模型的准确率
model2.score(x1_test,y1_test)

在这里插入图片描述
总结一下分类和回归的区别:

输出类型不同:分类输出的是离散数据(预测是否通过),回归输出的是连续数据(预测分数)
分类得到的是决策面,用于对数据集中的数据进行分类;回归得到的是最优拟合线,这个线条可以最好的接近数据的每个点;
对模型评估指标不一样:如何评估监督分类,通常使用正确率作为指标;回归中通常使用决定系数R平方表示模型评估的好坏,R平方可以表示有多少百分比的y波动被回归线所描述。

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

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

相关文章

用stata做面板数据回归分析基础作业

目录 1.导入数据集 2.面板数据有关信息 3.混合回归 4.随机效应模型 4.1随机效应模型or混合回归模型的选择&#xff1a;LM检验 4.2随机效应模型&#xff1a;两种估计方法 A.FGLS法&#xff1a;广义离差模型 B.MLE法&#xff1a;极大似然估计 4.3双向随机效应模型 5.固定…

2月8日第壹简报,星期三,农历正月十八

2月8日第壹简报&#xff0c;星期三&#xff0c;农历正月十八坚持阅读&#xff0c;静待花开1. 土耳其强震已致土叙两国超5000人遇难、两万余人受伤&#xff0c;土总统宣布&#xff1a;实施国家紧急状态3个月&#xff1b;中国救援队82名队员赴土耳其实施国际救援&#xff0c;携搜…

“我经历了长达十年的‘洗脑’:现代 Web 开发,非 JavaScript 框架不可!”

【CSDN 编者按】说起 Web 开发&#xff0c;总是很容易想起 JavaScript&#xff0c;很少有人质疑过它的性能和必要性&#xff0c;而本文作者则认为&#xff1a;“这是一种洗脑”。 原文链接&#xff1a;https://www.spicyweb.dev/the-great-gaslighting-of-the-js-age/ 未经授权…

语音笔记APP哪个好 用它直接录音并整理很方便

很多人在记笔记的时候&#xff0c;喜欢用录音来辅助以便提高效率&#xff0c;尤其是当领导临时布置了一个比较复杂的任务或者听到了一段包含重要信息的话&#xff0c;你又来不及打字&#xff0c;那么就可以采取录音的方法&#xff0c;能够在一定程度上避免遗漏某些重要内容。录…

当ChatGPT应用在汽车行业,具体有哪些场景?

​ ChatGPT有潜力彻底改变汽车行业并将其提升到新的高度。在ChatGPT的加持下&#xff0c;该行业的多个领域都将取得重大变化。 利用ChatGPT作更高级的虚拟助理 你可能用过现有的虚拟助理&#xff0c;它们一系列的回复有时候让人不得不感叹一句“人工智障”&#xff01;然而&a…

chatgpt赋能python:Python如何办公自动化

Python如何办公自动化 近年来&#xff0c;Python的应用越来越广泛&#xff0c;不仅在数据分析和机器学习领域得到了广泛的应用&#xff0c;还在办公自动化方面也越来越得到人们的关注。Python语言强大的数据处理能力、API调用能力和自动化能力&#xff0c;为我们提供了一种有效…

chatgpt赋能python:Python怎么办公自动化?

Python怎么办公自动化&#xff1f; 在现代社会&#xff0c;信息技术已经为我们带来了诸多便利。在工作和生活中&#xff0c;我们不仅需要处理许多数据&#xff0c;还需要按照一定流程进行操作。这样的任务可能非常琐碎而重复&#xff0c;让人感到疲惫。而采用Python进行自动化…

智能排班系统 【开源说明】

文章目录 引言说明讲讲开源开源要做什么了解开源协议项目的信息脱敏写好项目说明文档修改.gitignore 项目不完善点说明管理系统前端页面自适应做得不好部分页面体验不好 管理系统后端接口缺乏数据校验数据管理接口查询不够完善接口可以更加完善 开源仓库地址智能排班系统相关文…

借力表单设计器开源,助力实现办公自动化发展!

数字化转型是当今的发展潮流&#xff0c;有越来越多的企业对于数据管理和办公自动化发展深有体会&#xff0c;也习惯于采用低代码开发平台来实现更高效率的办公。在传统表单失去发展优势的当下&#xff0c;借力表单设计器开源工具&#xff0c;可以给企业带来提质增效的办公效率…

chatgpt赋能python:如何利用Python进行自动化办公

如何利用Python进行自动化办公 在现代办公环境中&#xff0c;自动化成为了一种趋势。利用计算机程序自动处理重复性劳动&#xff0c;可以提高生产效率和工作质量&#xff0c;同时也能够让工作更加轻松。Python作为一种常用的编程语言&#xff0c;在自动化办公中发挥了重要作用…

如何实现办公自动化?

办公自动化&#xff08;OA&#xff09;允许数据在没有人工干预的情况下流动。由于人工操作被排除在外&#xff0c;所以没有人为错误的风险。如今&#xff0c;办公自动化已经发展成无数的自动化和电子工具&#xff0c;改变了人们的工作方式。 办公自动化的好处 企业或多或少依…

Paper Reading:《Zeno:An Interactive Framework for Behavioral Evaluation of Machine Learning》

一枚科研小白的论文的阅读笔记&#xff0c;主要是为了记录自己的学习过程&#xff0c;前期读论文很多时候还是停留在解决语言障碍的阶段… 这篇文章也是极其粗浅的阅读 文章目录 一.论文简介二.常识、语料、术语积累1.术语2.生词3.表达积累 三.工作流总结 一.论文简介 论文放出…

最新RLHF拯救语言模型「胡说八道」!微调效果比ChatGPT更好,两名华人共同一作...

西风 发自 凹非寺量子位 | 公众号 QbitAI RLHF&#xff08;基于人类反馈的强化学习&#xff09;的一大缺点&#xff0c;终于被解决了&#xff01; 没错&#xff0c;虽然RLHF是大语言模型“核心技巧”之一&#xff0c;然而这种方法也存在一个问题—— 它只会判断生成文本的整体效…

幼儿-综合素质【2】

1.材料分析题&#xff1a;材料&#xff1a;一天早上&#xff0c;陈一航蹦蹦跳跳地走进教室&#xff0c;在搬椅子时&#xff0c;他发现旁边小朋友的椅子上有一本书没有收好&#xff0c;便大声喊道&#xff1a;“余老师&#xff0c;这儿有一本书没有收。”余老师笑看说&#xff1…

教师资格考试--中学综合素质

综合素质 教育观 素质教育的基本内涵★★ 素质教育以提高国民素质为根本宗旨素质教育是面向全体学生的教育素质教育是促进学生全面发展的教育素质教育是促进学生个性发展的教育素质教育是以培养学生的创新精神个时间能力为重点的教育 记忆口诀&#xff1a;提素个性创两全 …

中学-综合素质【3】

1.量子概念的提出&#xff0c;第一次把能量的不连续性引入对自然过程的深入认识&#xff0c;对其后量子理论的进一步发展起到了重要作用。这一概念的提出者是&#xff08;&#xff09;. A.普朗克 B.洛伦兹 C.爱因斯坦 D.麦克斯韦 2.公元395年&#xff0c;罗马帝国分裂为东、西…

幼儿-综合素质【1】

1.某幼儿园一直试着让幼儿做一些力所能及的事&#xff0c;如发勺子、分碗、搬凳子等。一天&#xff0c;小樱用乞求的目光注视着老师&#xff0c;轻声说&#xff1a;“老师&#xff0c;让我发一次勺子好吗&#xff1f;”老师说&#xff1a;“每次吃饭最慢&#xff0c;上课从不举…

中学-综合素质【1】

1.彤彤性格内向&#xff0c;基本不跟其他同学交往&#xff0c;课间常一个人在座位上看书。罗老师对她说:“你看同学们玩得多开心啊&#xff0c;你应该参加一些课外活动&#xff0c;多跟大家一起玩。下列说法中不恰当的是&#xff08;&#xff09;. A.罗老师注重学生个性发展 B…

中学-综合素质【2】

1.量子概念的提出&#xff0c;第一次把能量的不连续性引入对自然过程的深入认识&#xff0c;对其后量子理论的进一步发展起到了重要作用。这一概念的提出者是&#xff08;&#xff09;. A.普朗克 B.洛伦兹 C.爱因斯坦 D.麦克斯韦 2.公元395年&#xff0c;罗马帝国分裂为东、西…

数据流程图 状态图 流程图

数据流程图 状态图 流程图 数据流程图 数据流程图&#xff08;DFD&#xff09;提供了通过系统的数据流的图形表示。它逻辑上显示了我们的系统进程和外部接口或数据存储交换了哪些信息&#xff0c;但是它没有明确显示信息交换的时间或顺序。数据流程图是结构化系统分析和设计方…