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 相关文章推荐
python3+PyQt5使用数据库窗口视图
Apr 24 Python
python截取两个单词之间的内容方法
Dec 25 Python
python买卖股票的最佳时机(基于贪心/蛮力算法)
Jul 05 Python
Python 使用指定的网卡发送HTTP请求的实例
Aug 21 Python
在python Numpy中求向量和矩阵的范数实例
Aug 26 Python
Python笔记之观察者模式
Nov 20 Python
Python爬虫爬取煎蛋网图片代码实例
Dec 16 Python
Pycharm配置PyQt5环境的教程
Apr 02 Python
Pycharm生成可执行文件.exe的实现方法
Jun 02 Python
Python数据可视化图实现过程详解
Jun 12 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
Aug 04 Python
Python+MySQL随机试卷及答案生成程序的示例代码
Feb 01 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
不用GD库生成当前时间的PNG格式图象的程序
2006/10/09 PHP
php中var_export与var_dump的区别分析
2010/08/21 PHP
PHP的Trait机制原理与用法分析
2019/10/18 PHP
070823更新的一个[消息提示框]组件 兼容ie7
2007/08/29 Javascript
使用jQuery.Validate进行客户端验证(初级篇) 不使用微软验证控件的理由
2010/06/28 Javascript
javascript跨域刷新实现代码
2011/01/01 Javascript
js获取事件源及触发该事件的对象
2013/10/24 Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
2014/08/27 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
2015/03/01 Javascript
jQuery插件实现静态HTML验证码校验
2015/11/06 Javascript
深入解析Javascript闭包的功能及实现方法
2016/07/10 Javascript
vuejs在解析时出现闪烁的原因及防止闪烁的方法
2016/09/19 Javascript
Vue.js实现列表清单的操作方法
2017/11/15 Javascript
vue微信分享到朋友圈 vue微信发送给好友
2018/11/28 Javascript
如何让node运行es6模块文件及其原理详解
2018/12/11 Javascript
详解Vue 的异常处理机制
2020/11/30 Vue.js
[26:21]浴火之凤-TI4世界冠军Newbee战队纪录片
2014/08/07 DOTA
Python代码的打包与发布详解
2014/07/30 Python
python3+PyQt5使用数据库窗口视图
2018/04/24 Python
Python面向对象类的继承实例详解
2018/06/27 Python
Python 操作 ElasticSearch的完整代码
2019/08/04 Python
用Python徒手撸一个股票回测框架搭建【推荐】
2019/08/05 Python
python-tornado的接口用swagger进行包装的实例
2019/08/29 Python
python 实现将小图片放到另一个较大的白色或黑色背景图片中
2019/12/12 Python
将世界上最美丽的摄影作品转化为艺术作品:Photos.com
2017/11/28 全球购物
美国批发供应商:Kole Imports
2019/04/10 全球购物
Linux中如何用命令创建目录
2015/01/12 面试题
酒店销售主管岗位职责
2014/01/04 职场文书
企业军训感想
2014/02/07 职场文书
2014新年元旦活动策划方案
2014/02/18 职场文书
幼儿园健康教育方案
2014/06/14 职场文书
文员求职信
2014/07/15 职场文书
党校毕业心得体会
2014/09/13 职场文书
大学生社会服务心得体会
2016/01/22 职场文书
实用干货:敬酒词大全,帮你应付各种场合
2019/11/21 职场文书
TV动画《政宗君的复仇》第二季制作决定PV公布
2022/04/02 日漫