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_脚本CGI、特点、应用、开发环境(详解)
May 23 Python
python使用opencv读取图片的实例
Aug 17 Python
python先序遍历二叉树问题
Nov 10 Python
Python进阶之尾递归的用法实例
Jan 31 Python
numpy.transpose对三维数组的转置方法
Apr 17 Python
ZABBIX3.2使用python脚本实现监控报表的方法
Jul 02 Python
python爬虫 urllib模块发起post请求过程解析
Aug 20 Python
PyCharm搭建Spark开发环境的实现步骤
Sep 05 Python
浅谈python3 构造函数和析构函数
Mar 12 Python
django API 中接口的互相调用实例
Apr 01 Python
基于python实现模拟数据结构模型
Jun 12 Python
Python eval函数原理及用法解析
Nov 14 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
基于数据库的在线人数,日访问量等统计
2006/10/09 PHP
php旋转图片90度的方法
2013/11/07 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
Yii框架页面渲染操作实例详解
2019/07/19 PHP
js读取本地excel文档数据的代码
2010/11/11 Javascript
Web开发之JavaScript
2012/03/29 Javascript
JS delegate与live浅析
2013/12/21 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
2014/11/24 Javascript
javascript下拉列表中显示树形菜单的实现方法
2015/11/17 Javascript
jquery分页插件jquery.pagination.js实现无刷新分页
2016/04/01 Javascript
js获取html的span标签的值方法(超简单)
2016/07/26 Javascript
Vue2.x中的父子组件相互通信的实现方法
2017/05/02 Javascript
Vue中对iframe实现keep alive无刷新的方法
2019/07/23 Javascript
vue实现全匹配搜索列表内容
2019/09/26 Javascript
vue路由切换之淡入淡出的简单实现
2019/10/31 Javascript
python基础教程之五种数据类型详解
2017/01/12 Python
Python的mysql数据库的更新如何实现
2017/07/31 Python
django2 快速安装指南分享
2018/01/05 Python
Python实现SQL注入检测插件实例代码
2019/02/02 Python
python爬取盘搜的有效链接实现代码
2019/07/20 Python
python使用正则来处理各种匹配问题
2019/12/22 Python
python torch.utils.data.DataLoader使用方法
2020/04/02 Python
Python自动化xpath实现自动抢票抢货
2020/09/19 Python
沙龙级头发造型工具:FOXYBAE
2018/07/01 全球购物
英国健身仓库:Bodybuilding Warehouse
2019/03/06 全球购物
极度干燥澳大利亚官方网站:Superdry澳大利亚
2019/03/28 全球购物
internal修饰符起什么作用
2013/12/16 面试题
吃空饷专项治理工作实施方案
2014/03/04 职场文书
媒矿安全生产承诺书
2014/05/23 职场文书
2014年大学班长工作总结
2014/11/14 职场文书
2014年文明创建工作总结
2014/11/25 职场文书
销售员岗位职责
2015/02/10 职场文书
倡议书格式及范文
2015/04/29 职场文书
多属性、多分类MySQL模式设计
2021/04/05 MySQL
Golang生成Excel文档的方法步骤
2021/06/09 Golang
JavaScript 定时器详情
2021/11/11 Javascript