python编程线性回归代码示例


Posted in Python onDecember 07, 2017

 用python进行线性回归分析非常方便,有现成的库可以使用比如:numpy.linalog.lstsq例子、scipy.stats.linregress例子、pandas.ols例子等。

不过本文使用sklearn库的linear_model.LinearRegression,支持任意维度,非常好用。

一、二维直线的例子

预备知识:线性方程y=a∗x+b。y=a∗x+b表示平面一直线

下面的例子中,我们根据房屋面积、房屋价格的历史数据,建立线性回归模型。

然后,根据给出的房屋面积,来预测房屋价格。这里是数据来源

import pandas as pd 
from io import StringIO  
from sklearn import linear_model  
import matplotlib.pyplot as plt 
# 房屋面积与价格历史数据(csv文件) 
csv_data = 'square_feet,price\n150,6450\n200,7450\n250,8450\n300,9450\n350,11450\n400,15450\n600,18450\n' 
 
# 读入dataframe 
df = pd.read_csv(StringIO(csv_data)) 
print(df)  
# 建立线性回归模型 
regr = linear_model.LinearRegression()  
# 拟合 
regr.fit(df['square_feet'].reshape(-1, 1), df['price']) # 注意此处.reshape(-1, 1),因为X是一维的! 
# 不难得到直线的斜率、截距 
a, b = regr.coef_, regr.intercept_ 
 
# 给出待预测面积 
area = 238.5 
 
# 方式1:根据直线方程计算的价格 
print(a * area + b) 
# 方式2:根据predict方法预测的价格 
print(regr.predict(area))  
# 画图 
# 1.真实的点 
plt.scatter(df['square_feet'], df['price'], color='blue')  
# 2.拟合的直线 
plt.plot(df['square_feet'], regr.predict(df['square_feet'].reshape(-1,1)), color='red', linewidth=4) 
 
plt.show()

python编程线性回归代码示例

二、三维平面的例子

预备知识:线性方程z=a∗x+b∗y+c。z=a∗x+b∗y+c 表示空间一平面

由于找不到真实数据,只好自己虚拟一组数据。

import numpy as np  
from sklearn import linear_model  
from mpl_toolkits.mplot3d import Axes3D 
import matplotlib.pyplot as plt  
xx, yy = np.meshgrid(np.linspace(0,10,10), np.linspace(0,100,10)) 
zz = 1.0 * xx + 3.5 * yy + np.random.randint(0,100,(10,10))  
# 构建成特征、值的形式 
X, Z = np.column_stack((xx.flatten(),yy.flatten())), zz.flatten() 
 
# 建立线性回归模型 
regr = linear_model.LinearRegression() 
 
# 拟合 
regr.fit(X, Z) 
# 不难得到平面的系数、截距 
a, b = regr.coef_, regr.intercept_  
# 给出待预测的一个特征 
x = np.array([[5.8, 78.3]])  
# 方式1:根据线性方程计算待预测的特征x对应的值z(注意:np.sum) 
print(np.sum(a * x) + b)  
# 方式2:根据predict方法预测的值z 
print(regr.predict(x))  
# 画图 
fig = plt.figure() 
ax = fig.gca(projection='3d')  
# 1.画出真实的点 
ax.scatter(xx, yy, zz) 
# 2.画出拟合的平面 
ax.plot_wireframe(xx, yy, regr.predict(X).reshape(10,10)) 
ax.plot_surface(xx, yy, regr.predict(X).reshape(10,10), alpha=0.3) 

plt.show()

效果图

python编程线性回归代码示例

总结

以上就是本文关于python编程线性回归代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
零基础写python爬虫之打包生成exe文件
Nov 06 Python
Python爬取京东的商品分类与链接
Aug 26 Python
python django 访问静态文件出现404或500错误
Jan 20 Python
Python 转义字符详细介绍
Mar 21 Python
Pandas 对Dataframe结构排序的实现方法
Apr 10 Python
详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)
May 27 Python
django框架防止XSS注入的方法分析
Jun 21 Python
Pandas的read_csv函数参数分析详解
Jul 02 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
Jan 25 Python
Python调用shell命令常用方法(4种)
May 11 Python
Python实现EM算法实例代码
Oct 04 Python
Python3中最常用的5种线程锁实例总结
Jul 07 Python
基于Django的ModelForm组件(详解)
Dec 07 #Python
利用python编写一个图片主色转换的脚本
Dec 07 #Python
python八大排序算法速度实例对比
Dec 06 #Python
Python语言实现将图片转化为html页面
Dec 06 #Python
Python实现比较扑克牌大小程序代码示例
Dec 06 #Python
Python3简单实例计算同花的概率代码
Dec 06 #Python
Python基于回溯法解决01背包问题实例
Dec 06 #Python
You might like
基于xcache的配置与使用详解
2013/06/18 PHP
php模板原理讲解
2013/11/13 PHP
关于js和php对url编码的处理方法
2014/03/04 PHP
ThinkPHP中的关联模型注意点
2014/06/16 PHP
PHP has encountered a Stack overflow问题解决方法
2014/11/03 PHP
PHP list() 将数组中的值赋给变量的简单实例
2016/06/13 PHP
js href的用法
2010/05/13 Javascript
文本有关的样式和jQuery求对象的高宽问题分别说明
2013/08/30 Javascript
非html5实现js版弹球游戏示例代码
2013/09/22 Javascript
js 设置缓存及获取设置的缓存
2014/05/08 Javascript
jQuery实现动画效果circle实例
2015/08/06 Javascript
有关JavaScript中call()和apply() 的一些理解
2016/05/20 Javascript
使用JS轻松实现ionic调用键盘搜索功能(超实用)
2016/09/06 Javascript
Node.js与MySQL交互操作及其注意事项
2016/10/05 Javascript
vue.js如何更改默认端口号8080为指定端口的方法
2017/07/14 Javascript
js实现日期显示的一些操作(实例讲解)
2017/07/27 Javascript
vue-router 组件复用问题详解
2018/01/22 Javascript
详解plotly.js 绘图库入门使用教程
2018/02/23 Javascript
element-ui中select组件绑定值改变,触发change事件方法
2018/08/24 Javascript
javascript的this关键字详解
2019/05/20 Javascript
微信公众号平台接口开发 菜单管理的实现
2019/08/14 Javascript
Vue如何循环提取对象数组中的值
2020/11/18 Vue.js
[05:02][DOTA2]DOTA进化论 第一期
2013/09/27 DOTA
[45:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第二场 6.2
2018/06/04 DOTA
基于Python开发chrome插件的方法分析
2018/07/07 Python
Python实现的多叉树寻找最短路径算法示例
2018/07/30 Python
Python之修改图片像素值的方法
2019/07/03 Python
什么是smarty? Smarty的优点是什么?
2013/08/11 面试题
停车场管理协议书范本
2014/10/08 职场文书
买房协议书范本
2014/10/23 职场文书
2015年教务工作总结
2015/05/23 职场文书
春节晚会开场白
2015/05/29 职场文书
2016廉洁教育心得体会
2016/01/20 职场文书
标准演讲稿格式结尾应该怎么书写?
2019/07/17 职场文书
导游词之山西关帝庙
2019/11/01 职场文书
Go语言安装并操作redis的go-redis库
2022/04/14 Golang