Python多项式回归的实现方法


Posted in Python onMarch 11, 2019

多项式回归是一种线性回归形式,其中自变量x和因变量y之间的关系被建模为n次多项式。多项式回归拟合x的值与y的相应条件均值之间的非线性关系,表示为E(y | x)

为什么多项式回归:

  • 研究人员假设的某些关系是曲线的。显然,这种类型的案例将包括多项式项。
  • 检查残差。如果我们尝试将线性模型拟合到曲线数据,则预测变量(X轴)上的残差(Y轴)的散点图将在中间具有许多正残差的斑块。因此,在这种情况下,这是不合适的。
  • 通常的多元线性回归分析的假设是所有自变量都是独立的。在多项式回归模型中,不满足该假设。

多项式回归的使用:

这些基本上用于定义或描述非线性现象,例如:

  • 组织生长速度。
  • 疾病流行病的进展
  • 湖泊沉积物中碳同位素的分布

回归分析的基本目标是根据自变量x的值来模拟因变量y的期望值。在简单回归中,我们使用以下等式 y = a + bx + e

这里y是因变量,a是y截距,b是斜率,e是误差率。

在许多情况下,这种线性模型将无法解决。例如,如果我们在这种情况下根据合成温度分析化学合成的产生,我们使用二次模型y = a + b1x + b2 ^ 2 + e

这里y是x的因变量,a是y截距,e是误差率。

通常,我们可以将其建模为第n个值。y = a + b1x + b2x ^ 2 + .... + bnx ^ n

由于回归函数在未知变量方面是线性的,因此这些模型从估计的角度来看是线性的。

因此,通过最小二乘技术,让我们计算y的响应值。

Python中的多项式回归:

要获得用于分析多项式回归的数据集,请单击此处。

步骤1:导入库和数据集

导入重要的库和我们用于执行多项式回归的数据集。

# Importing the libraries 
import numpy as np 
import matplotlib.pyplot as plt 
import pandas as pd 

# Importing the dataset 
datas = pd.read_csv('data.csv') 
datas

Python多项式回归的实现方法

第2步:将数据集分为2个组件

将数据集划分为两个组件,即X和yX将包含1到2之间的列.y将包含2列。

X = datas.iloc[:, 1:2].values 
y = datas.iloc[:, 2].values

第3步:将线性回归拟合到数据集

拟合线性回归模型在两个组件上。

# Fitting Linear Regression to the dataset 
from sklearn.linear_model import LinearRegression 
lin = LinearRegression() 

lin.fit(X, y)

第4步:将多项式回归拟合到数据集

将多项式回归模型拟合到两个分量X和y上。

# Fitting Polynomial Regression to the dataset 
from sklearn.preprocessing import PolynomialFeatures 

poly = PolynomialFeatures(degree = 4) 
X_poly = poly.fit_transform(X) 

poly.fit(X_poly, y) 
lin2 = LinearRegression() 
lin2.fit(X_poly, y)

步骤5:在此步骤中,我们使用散点图可视化线性回归结果。

# Visualising the Linear Regression results 
plt.scatter(X, y, color = 'blue') 

plt.plot(X, lin.predict(X), color = 'red') 
plt.title('Linear Regression') 
plt.xlabel('Temperature') 
plt.ylabel('Pressure') 

plt.show()

Python多项式回归的实现方法

步骤6:使用散点图可视化多项式回归结果。

# Visualising the Polynomial Regression results 
plt.scatter(X, y, color = 'blue') 

plt.plot(X, lin2.predict(poly.fit_transform(X)), color = 'red') 
plt.title('Polynomial Regression') 
plt.xlabel('Temperature') 
plt.ylabel('Pressure') 

plt.show()

Python多项式回归的实现方法

步骤7:使用线性和多项式回归预测新结果。

# Predicting a new result with Linear Regression 
lin.predict(110.0)

Python多项式回归的实现方法

# Predicting a new result with Polynomial Regression 
lin2.predict(poly.fit_transform(110.0))

Python多项式回归的实现方法

使用多项式回归的优点:

  • 广泛的功能可以适应它。
  • 多项式基本上适合宽范围的曲率。
  • 多项式提供了依赖变量和自变量之间关系的最佳近似。

使用多项式回归的缺点

  • 这些对异常值过于敏感。
  • 数据中存在一个或两个异常值会严重影响非线性分析的结果。
  • 此外,遗憾的是,用于检测非线性回归中的异常值的模型验证工具少于线性回归。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用Python编写一个简单的FUSE文件系统的教程
Apr 02 Python
python PIL模块与随机生成中文验证码
Feb 27 Python
python3.4用函数操作mysql5.7数据库
Jun 23 Python
python编程实现12306的一个小爬虫实例
Dec 27 Python
利用python画出折线图
Jul 26 Python
Window 64位下python3.6.2环境搭建图文教程
Sep 19 Python
python scatter散点图用循环分类法加图例
Mar 19 Python
Python3.5基础之函数的定义与使用实例详解【参数、作用域、递归、重载等】
Apr 26 Python
Python API 自动化实战详解(纯代码)
Jun 11 Python
django的model操作汇整详解
Jul 26 Python
浅谈SciPy中的optimize.minimize实现受限优化问题
Feb 29 Python
利用Python网络爬虫爬取各大音乐评论的代码
Apr 13 Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
Mar 11 #Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
Mar 11 #Python
python使用selenium实现批量文件下载
Mar 11 #Python
利用Python实现微信找房机器人实例教程
Mar 10 #Python
谈谈Python中的while循环语句
Mar 10 #Python
15行Python代码实现网易云热门歌单实例教程
Mar 10 #Python
Python如何爬取实时变化的WebSocket数据的方法
Mar 09 #Python
You might like
php目录管理函数小结
2008/09/10 PHP
php 用checkbox一次性删除多条记录的方法
2010/02/23 PHP
php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
2011/05/09 PHP
php+mysqli使用面向对象方式查询数据库实例
2015/01/29 PHP
CodeIgniter表单验证方法实例详解
2016/03/03 PHP
PHP内置加密函数详解
2016/11/20 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
JavaScript DOM学习第六章 表单实例
2010/02/19 Javascript
Jquery乱码的一次解决过程 图解教程
2010/02/20 Javascript
让IE6支持min-width和max-width的方法
2010/06/25 Javascript
Js组件的一些写法
2010/09/10 Javascript
如何制作浮动广告 JavaScript制作浮动广告代码
2012/12/30 Javascript
Jquery中使用show()与hide()方法动画显示和隐藏图片
2015/10/08 Javascript
jquery实现点击其他区域时隐藏下拉div和遮罩层的方法
2015/12/23 Javascript
第七篇Bootstrap表单布局实例代码详解(三种表单布局)
2016/06/21 Javascript
AngularJS实现给动态生成的元素绑定事件的方法
2016/12/14 Javascript
Vue.directive自定义指令的使用详解
2017/03/10 Javascript
微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)
2017/12/08 Javascript
javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
2018/02/05 Javascript
Layui表格行工具事件与数据回填方法
2019/09/13 Javascript
vue项目或网页上实现文字转换成语音播放功能
2020/06/09 Javascript
Node.js fs模块原理及常见用途
2020/10/22 Javascript
vue打包通过image-webpack-loader插件对图片压缩优化操作
2020/11/12 Javascript
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
Python循环语句之break与continue的用法
2015/10/14 Python
python的变量与赋值详细分析
2017/11/08 Python
浅析python继承与多重继承
2018/09/13 Python
python简易实现任意位数的水仙花实例
2018/11/13 Python
python Dijkstra算法实现最短路径问题的方法
2019/09/19 Python
pytorch标签转onehot形式实例
2020/01/02 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
2021/02/25 Python
音乐表演专业毕业生求职信
2013/10/14 职场文书
公开承诺书格式
2014/05/21 职场文书
平面设计专业求职信
2014/08/09 职场文书
民主生活会对照检查材料思想汇报
2014/09/27 职场文书
2015年美容师个人工作总结
2015/10/14 职场文书