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检测远程服务器tcp端口的方法
Mar 14 Python
python单元测试unittest实例详解
May 11 Python
Python  pip安装lxml出错的问题解决办法
Feb 10 Python
浅谈python中的__init__、__new__和__call__方法
Jul 18 Python
教你用一行Python代码实现并行任务(附代码)
Feb 02 Python
Flask框架配置与调试操作示例
Jul 23 Python
python 猴子补丁(monkey patch)
Jun 26 Python
python小项目之五子棋游戏
Dec 26 Python
基于TensorFlow常量、序列以及随机值生成实例
Jan 04 Python
Python中实现输入一个整数的案例
May 03 Python
pytorch中[..., 0]的用法说明
May 20 Python
Python函数中apply、map、applymap的区别
Nov 27 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
后宫无数却洁身自好的男主,唐三只爱小舞
2020/03/02 国漫
PHP脚本数据库功能详解(中)
2006/10/09 PHP
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
2011/11/02 PHP
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
PHP实现生成唯一会员卡号
2015/08/24 PHP
PHP从数组中删除元素的四种方法实例
2017/05/12 PHP
javascript新手语法小结
2008/06/15 Javascript
jQuery使用hide方法隐藏指定元素class样式用法实例
2015/03/30 Javascript
浅谈JavaScript字符串拼接
2015/06/25 Javascript
网页收藏夹显示ICO图标(代码少)
2015/08/04 Javascript
javascript实现五星评价代码(源码下载)
2015/08/11 Javascript
AngularJS ng-controller 指令简单实例
2016/08/01 Javascript
Vue中render函数的使用方法
2018/01/31 Javascript
原生JS实现循环Nodelist Dom列表的4种方式示例
2018/02/11 Javascript
seajs下require书写约定实例分析
2018/05/16 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
如何使用VuePress搭建一个类型element ui文档
2019/02/14 Javascript
Electron + vue 打包桌面操作流程详解
2019/06/24 Javascript
基于Vue中使用节流Lodash throttle详解
2019/10/30 Javascript
JS实现压缩上传图片base64长度功能
2019/12/03 Javascript
JavaScript获取当前url路径过程解析
2019/12/27 Javascript
python得到一个excel的全部sheet标签值方法
2018/12/10 Python
通过shell+python实现企业微信预警
2019/03/07 Python
详解Python基础random模块随机数的生成
2019/03/23 Python
PyQt5固定窗口大小的方法
2019/06/18 Python
利用python下载scihub成文献为PDF操作
2020/07/09 Python
利用 CSS3 实现的无缝轮播功能代码
2017/09/25 HTML / CSS
暑期社会实践学生的自我评价
2014/01/09 职场文书
创业计划书如何编写
2014/02/06 职场文书
乐观自信演讲稿范文
2014/05/21 职场文书
学校综治宣传月活动总结
2014/07/02 职场文书
后勤管理员岗位职责
2014/08/27 职场文书
公务员上班玩游戏检讨书
2014/09/17 职场文书
2016秋季小学开学寄语
2015/12/03 职场文书
MySQL InnoDB ReplicaSet(副本集)简单介绍
2021/04/24 MySQL
Java异常处理try catch的基本用法
2021/12/06 Java/Android