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 相关文章推荐
HTML中使用python屏蔽一些基本功能的方法
Jul 07 Python
Python下实现的RSA加密/解密及签名/验证功能示例
Jul 17 Python
分享Python切分字符串的一个不错方法
Dec 14 Python
Python实现查找二叉搜索树第k大的节点功能示例
Jan 24 Python
Python3模拟登录操作实例分析
Mar 12 Python
Python内存管理实例分析
Jul 10 Python
浅谈Python中(&,|)和(and,or)之间的区别
Aug 07 Python
Python学习笔记之Break和Continue用法分析
Aug 14 Python
python+mysql实现个人论文管理系统
Oct 25 Python
Python GUI自动化实现绕过验证码登录
Jan 10 Python
Python如何重新加载模块
Jul 29 Python
python之PySide2安装使用及QT Designer UI设计案例教程
Jul 26 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
当年上海收录机产品生产,进口和价格情况
2021/03/04 无线电
php实现过滤表单提交中html标签的方法
2014/10/17 PHP
Jquery AJAX 框架的使用方法
2009/11/03 Javascript
用js判断页面是否加载完成实现代码
2012/12/11 Javascript
只需一行代码,轻松实现一个在线编辑器
2013/11/12 Javascript
jquery简单实现图片切换效果的方法
2015/05/12 Javascript
提高jQuery性能优化的技巧
2015/08/03 Javascript
深入浅析javascript立即执行函数
2015/10/23 Javascript
判断JS对象是否拥有某属性的方法推荐
2016/05/12 Javascript
jquery树形菜单效果的简单实例
2016/06/06 Javascript
$.browser.msie 为空或不是对象问题的多种解决方法
2017/03/19 Javascript
移动端效果之Swiper详解
2017/10/09 Javascript
详解ES6语法之可迭代协议和迭代器协议
2018/01/13 Javascript
解决vue-router中的query动态传参问题
2018/03/20 Javascript
vue2中,根据list的id进入对应的详情页并修改title方法
2018/08/24 Javascript
微信小程序wx.request的简单封装
2019/11/13 Javascript
vue+elementUI 实现内容区域高度自适应的示例
2020/09/26 Javascript
[49:54]Ti4 循环赛第三日 LGD vs Titan
2014/07/12 DOTA
[03:35]2018年度DOTA2最佳辅助位选手5号位-完美盛典
2018/12/17 DOTA
用python实现批量重命名文件的代码
2012/05/25 Python
遗传算法之Python实现代码
2017/10/10 Python
Python中import机制详解
2017/11/14 Python
Python设计模式之桥接模式原理与用法实例分析
2019/01/10 Python
python使用Plotly绘图工具绘制水平条形图
2020/03/25 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
2019/05/13 Python
python打造爬虫代理池过程解析
2019/08/15 Python
给 TensorFlow 变量进行赋值的方式
2020/02/10 Python
完美解决IE8下不兼容rgba()的问题
2017/03/31 HTML / CSS
HTML5 新表单类型示例代码
2018/03/20 HTML / CSS
法国创作个性化T恤衫和其他定制产品平台:Tostadora
2018/04/08 全球购物
大学生入党思想汇报
2014/01/14 职场文书
业绩倒数第一的检讨书
2014/09/24 职场文书
2014年四风个人对照检查及整改措施
2014/10/28 职场文书
2014年党风廉政建设工作总结
2014/11/19 职场文书
2014幼儿园教育教学工作总结
2014/12/17 职场文书
python神经网络编程之手写数字识别
2021/05/08 Python