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实现新浪博客备份的方法
Apr 27 Python
浅谈python可视化包Bokeh
Feb 07 Python
python八皇后问题的解决方法
Sep 27 Python
Windows系统下PhantomJS的安装和基本用法
Oct 21 Python
Python文件循环写入行时防止覆盖的解决方法
Nov 09 Python
用Python读取几十万行文本数据
Dec 24 Python
Python实现微信消息防撤回功能的实例代码
Apr 29 Python
Python流程控制 while循环实现解析
Sep 02 Python
在PyCharm中遇到pip安装 失败问题及解决方案(pip失效时的解决方案)
Mar 10 Python
python中的垃圾回收(GC)机制
Sep 21 Python
使用py-spy解决scrapy卡死的问题方法
Sep 29 Python
Pandas 数据编码的十种方法
Apr 20 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
用PHP将数据导入到Foxmail的实现代码
2010/09/05 PHP
详解PHP中的mb_detect_encoding函数使用方法
2015/08/18 PHP
php实现的操作excel类详解
2016/01/15 PHP
jquery遍历select元素(实例讲解)
2013/12/31 Javascript
JS+CSS实现仿新浪微博搜索框的方法
2015/02/24 Javascript
网页禁用右键菜单和鼠标拖动选择方法小结
2015/02/25 Javascript
JavaScript中iframe实现局部刷新的几种方法汇总
2016/01/06 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
2016/03/01 Javascript
javascript事件委托的用法及其好处简析
2016/04/04 Javascript
浅析javascript异步执行函数导致的变量变化问题解决思路
2016/05/13 Javascript
jquery中live()方法和bind()方法区别分析
2016/06/23 Javascript
很实用的js选项卡切换效果
2016/08/12 Javascript
聊聊JS动画库 Velocity.js的使用
2018/03/13 Javascript
Vue中computed与methods的区别详解
2018/03/24 Javascript
微信小程序wx.uploadfile 本地文件转base64的实现代码
2018/06/28 Javascript
原生JS实现列表子元素顺序反转的方法分析
2018/07/02 Javascript
NodeJs项目中关闭ESLint的方法
2018/08/09 NodeJs
微信小程序bindtap事件与冒泡阻止详解
2019/08/08 Javascript
JS删除对象中某一属性案例详解
2020/09/08 Javascript
[03:35]2018年度DOTA2最佳辅助位选手5号位-完美盛典
2018/12/17 DOTA
python网络编程学习笔记(二):socket建立网络客户端
2014/06/09 Python
python&MongoDB爬取图书馆借阅记录
2016/02/05 Python
TensorFlow模型保存和提取的方法
2018/03/08 Python
用Python从0开始实现一个中文拼音输入法的思路详解
2019/07/20 Python
美国知名女性服饰品牌:New York & Company
2017/03/23 全球购物
医药专业推荐信
2013/11/15 职场文书
物业管理专业个人的自我评价
2013/11/19 职场文书
本科毕业生求职自荐信
2014/02/03 职场文书
安全大检查实施方案
2014/02/22 职场文书
讲文明树新风公益广告宣传方案
2014/02/25 职场文书
服务理念标语
2014/06/18 职场文书
统计学教授推荐信
2014/09/18 职场文书
学生逃课检讨书
2015/02/17 职场文书
离婚协议书范文2016
2016/03/18 职场文书
聘任书的格式及模板
2019/10/28 职场文书
Django migrate报错的解决方案
2021/05/20 Python