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二分法实现实例
Nov 21 Python
Python基础之函数用法实例详解
Sep 10 Python
在Python中用keys()方法返回字典键的教程
May 21 Python
简单谈谈python中的Queue与多进程
Aug 25 Python
Python爬虫设置代理IP的方法(爬虫技巧)
Mar 04 Python
Python numpy实现二维数组和一维数组拼接的方法
Jun 05 Python
浅谈python 导入模块和解决文件句柄找不到问题
Dec 15 Python
Python装饰器用法实例分析
Jan 14 Python
Python检查图片是否损坏及图片类型是否正确过程详解
Sep 30 Python
Pycharm中Python环境配置常见问题解析
Jan 16 Python
利用python做表格数据处理
Apr 13 Python
Python编解码问题及文本文件处理方法详解
Jun 20 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 fastcgi模式上传大文件(大约有300多K)报错
2014/09/28 PHP
php生成图片验证码-附五种验证码
2015/08/19 PHP
php中实现进程锁与多进程的方法
2016/09/18 PHP
老生常谈文本文件和二进制文件的区别
2017/02/27 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
2019/04/03 PHP
使用Json比用string返回数据更友好,也更面向对象一些
2011/09/13 Javascript
使用js写的一个简易的投票
2013/11/27 Javascript
jquery修改网页背景颜色通过css方法实现
2014/06/06 Javascript
zepto.js中tap事件阻止冒泡的实现方法
2015/02/12 Javascript
js库Modernizr的介绍和使用
2015/05/07 Javascript
动态JavaScript所造成一些你不知道的危害
2016/09/25 Javascript
JQuery中解决重复动画的方法
2016/10/17 Javascript
浅谈EasyUI常用控件的禁用方法
2016/11/09 Javascript
jquery对所有input type=text的控件赋值实现方法
2016/12/02 Javascript
利用jQuery来动态为属性添加或者删除属性的简单方法
2016/12/02 Javascript
jQuery中layer分页器的使用
2017/03/13 Javascript
轻松理解JavaScript闭包
2017/03/14 Javascript
JS设计模式之单例模式(一)
2017/09/29 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
2018/02/09 Javascript
vue cli 全面解析
2018/02/28 Javascript
原生JS实现手动轮播图效果实例代码
2018/11/22 Javascript
layui 实现表格某一列显示图标
2019/09/19 Javascript
Vue单文件组件开发实现过程详解
2020/07/30 Javascript
Python求两个圆的交点坐标或三个圆的交点坐标方法
2018/11/07 Python
Python 实现文件读写、坐标寻址、查找替换功能
2019/09/11 Python
Python中的xlrd模块使用原理解析
2020/05/21 Python
基于Python快速处理PDF表格数据
2020/06/03 Python
Linux安装Python3如何和系统自带的Python2并存
2020/07/23 Python
CSS3制作炫酷的自定义发光文字
2016/03/28 HTML / CSS
Origins加拿大官网:雅诗兰黛集团高端植物护肤品牌
2017/11/19 全球购物
迪卡侬比利时官网:Decathlon比利时
2019/12/28 全球购物
中共广东省委常委会党的群众路线教育实践活动整改方案
2014/09/23 职场文书
党员个人总结范文
2015/02/14 职场文书
2016年教师师德师风心得体会
2016/01/12 职场文书
Mysql - 常用函数 每天积极向上
2021/04/05 MySQL
JavaScript异步操作中串行和并行
2021/11/20 Javascript