python实现简单的单变量线性回归方法


Posted in Python onNovember 08, 2018

线性回归是机器学习中的基础算法之一,属于监督学习中的回归问题,算法的关键在于如何最小化代价函数,通常使用梯度下降或者正规方程(最小二乘法),在这里对算法原理不过多赘述,建议看吴恩达发布在斯坦福大学上的课程进行入门学习。

这里主要使用python的sklearn实现一个简单的单变量线性回归。

sklearn对机器学习方法封装的十分好,基本使用fit,predict,score,来训练,预测,评价模型,

一个简单的事例如下:

from pandas import DataFrame
from pandas import DataFrame
import pandas as pd
import matplotlib.pyplot as plt
from sklearn import datasets,linear_model
 
X=[]
Y=[]
with open("C:\\Users\\www\\ex1data1.txt","r") as f:  #读取txt文件。
 for line in f:
  p_tmp, E_tmp = [float(i) for i in line.split(',')]
  X.append(p_tmp)
  Y.append(E_tmp)
 #'data=np.loadtxt('ex1data1.txt',delimiter=',')
# X=data[0]
# Y=data[1]
data=DataFrame(X,columns={'a'})
data['b']=b
X=DataFrame(X)
 
fig = plt.figure()         
ax1 = fig.add_subplot(1,1,1)
plt.scatter(data['a'],data['b'])   #显示X,Y的散点图
 
def linear_model_main(X,Y,predict_value): #定义一个使用线性回归的函数
 regr=linear_model.LinearRegression()
 regr.fit(X,Y)  #训练模型
 predict_output=regr.predict(predict_value) #预测
 predictions={}        #用一个集合装以下元素
 predictions['intercept']=regr.intercept_  #截距
 predictions['codfficient']=regr.coef_   #斜率(参数)
 predictions['predict_value']=predict_output  #预测值
 return predictions
 
result = linear_model_main(X,Y,1500)    #调用函数
print(result['predict_value'])
 
 
def show_predict(X,Y):
 regr=linear_model.LinearRegression()
 regr.fit(X,Y) 
 plt.scatter(X,Y,color='blue')
 plt.plot(X,regr.predict(X),color='red')
 
show_predict(X,Y)

最后拟合结果如图:

python实现简单的单变量线性回归方法

以上这篇python实现简单的单变量线性回归方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中三元表达式的几种写法介绍
Mar 04 Python
python实现小球弹跳效果
May 10 Python
django 类视图的使用方法详解
Jul 24 Python
python实现文件批量编码转换及注意事项
Oct 14 Python
python 视频逐帧保存为图片的完整实例
Dec 10 Python
Python实现随机生成任意数量车牌号
Jan 21 Python
Python Tornado批量上传图片并显示功能
Mar 26 Python
Python使用Chrome插件实现爬虫过程图解
Jun 09 Python
Python判断远程服务器上Excel文件是否被人打开的方法
Jul 13 Python
基于Python的图像阈值化分割(迭代法)
Nov 20 Python
python 自动识别并连接串口的实现
Jan 19 Python
Python对excel的基本操作方法
Feb 18 Python
python/sympy求解矩阵方程的方法
Nov 08 #Python
python生成lmdb格式的文件实例
Nov 08 #Python
python实现嵌套列表平铺的两种方法
Nov 08 #Python
python用列表生成式写嵌套循环的方法
Nov 08 #Python
在Python中实现shuffle给列表洗牌
Nov 08 #Python
python实现RabbitMQ的消息队列的示例代码
Nov 08 #Python
对Python 3.5拼接列表的新语法详解
Nov 08 #Python
You might like
php5.3以后的版本连接sqlserver2000的方法
2014/07/28 PHP
PHP中的随机性 你觉得自己幸运吗?
2016/01/22 PHP
php根据数据id自动生成编号的实现方法
2016/10/16 PHP
jQuery 隔行换色 支持键盘上下键,按Enter选定值
2009/08/02 Javascript
JavaScript Serializer序列化时间处理示例
2014/07/31 Javascript
jQuery实现DIV层淡入淡出拖动特效的方法
2015/02/13 Javascript
每天一篇javascript学习小结(基础知识)
2015/11/10 Javascript
javaScript知识点总结(必看篇)
2016/06/10 Javascript
网页瀑布流布局jQuery实现代码
2016/10/21 Javascript
原生js实现手风琴功能(支持横纵向调用)
2017/01/13 Javascript
vue.js从安装到搭建过程详解
2017/03/17 Javascript
微信小程序组件 marquee实例详解
2017/06/23 Javascript
node下使用UglifyJS压缩合并JS文件的方法
2018/03/07 Javascript
简单了解微信小程序的目录结构
2019/07/01 Javascript
javascript canvas API内容整理
2020/02/16 Javascript
Python的内存泄漏及gc模块的使用分析
2014/07/16 Python
跟老齐学Python之编写类之一创建实例
2014/10/11 Python
python os.listdir按文件存取时间顺序列出目录的实例
2018/10/21 Python
Selenium chrome配置代理Python版的方法
2018/11/29 Python
Python程序包的构建和发布过程示例详解
2019/06/09 Python
基于 HTML5 Canvas实现 的交互式地铁线路图
2018/03/05 HTML / CSS
IE9对HTML5中部分属性不支持的原因分析
2014/10/15 HTML / CSS
Qoo10马来西亚:全球时尚和引领潮流的购物市场
2016/08/25 全球购物
客服端调用EJB对象的几个基本步骤
2012/01/15 面试题
毕业生自我推荐
2013/11/04 职场文书
会计找工作求职信范文
2013/12/09 职场文书
菜篮子工程实施方案
2014/03/08 职场文书
入党介绍人评语
2014/05/06 职场文书
新闻学专业求职信
2014/07/28 职场文书
委托书的格式
2014/08/01 职场文书
政协调研汇报材料
2014/08/15 职场文书
给妈妈洗脚活动方案
2014/08/16 职场文书
个人委托函范文
2015/01/29 职场文书
团组织推荐意见
2015/06/05 职场文书
《惊弓之鸟》教学反思
2016/02/20 职场文书
nginx sticky实现基于cookie负载均衡示例详解
2022/12/24 Servers