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实现扫描局域网活动ip(扫描在线电脑)
Apr 28 Python
python保存二维数组到txt文件中的方法
Nov 15 Python
Django中使用Celery的方法示例
Nov 29 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
Feb 26 Python
使用PyQt4 设置TextEdit背景的方法
Jun 14 Python
django drf框架自带的路由及最简化的视图
Sep 10 Python
python中的RSA加密与解密实例解析
Nov 18 Python
pycharm修改file type方式
Nov 19 Python
wxPython修改文本框颜色过程解析
Feb 14 Python
浅谈keras 模型用于预测时的注意事项
Jun 27 Python
Python爬虫与反爬虫大战
Jul 30 Python
python excel和yaml文件的读取封装
Jan 12 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
在字符串指定位置插入一段字符串的php代码
2010/02/16 PHP
PHP简单日历实现方法
2016/07/20 PHP
php图像处理函数imagecopyresampled用法详解
2016/12/02 PHP
老鱼 浅谈javascript面向对象编程
2010/03/04 Javascript
WEB 浏览器兼容 推荐收藏
2010/05/14 Javascript
js实现广告漂浮效果的小例子
2013/07/02 Javascript
nodejs npm package.json中文文档
2014/09/04 NodeJs
JS使用正则表达式除去字符串中重复字符的方法
2015/11/05 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
2016/06/06 Javascript
基于jQuery制作小图标上下滑动特效
2017/01/18 Javascript
解决vue-cli中stylus无法使用的问题方法
2017/06/19 Javascript
详解使用nvm安装node.js
2017/07/18 Javascript
Nodejs把接收图片base64格式保存为文件存储到服务器上
2018/09/26 NodeJs
在JS循环中使用async/await的方法
2018/10/12 Javascript
深入理解vue-class-component源码阅读
2019/02/18 Javascript
关于vue状态过渡transition不起作用的原因解决
2019/04/09 Javascript
echarts大屏字体自适应的方法步骤
2019/07/12 Javascript
使用JS监听键盘按下事件(keydown event)
2019/11/07 Javascript
解决vue-cli@3.xx安装不成功的问题及搭建ts-vue项目
2020/02/09 Javascript
使用Vue 自定义文件选择器组件的实例代码
2020/03/04 Javascript
在Angular项目使用socket.io实现通信的方法
2021/01/05 Javascript
[01:18]DOTA2超级联赛专访hanci ForLove淘汰感言曝光
2013/06/04 DOTA
在Python中使用列表生成式的教程
2015/04/27 Python
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
PyQt5每天必学之关闭窗口
2018/04/19 Python
matlab中imadjust函数的作用及应用举例
2020/02/27 Python
Python多线程Threading、子线程与守护线程实例详解
2020/03/24 Python
Python第三方包之DingDingBot钉钉机器人
2020/04/09 Python
Python环境管理virtualenv&virtualenvwrapper的配置详解
2020/07/01 Python
scrapy在python爬虫中搭建出错的解决方法
2020/11/22 Python
html5实现的便签特效(实战分享)
2013/11/29 HTML / CSS
师德学习感言
2014/01/31 职场文书
个人培训自我鉴定
2014/03/28 职场文书
人事任命书格式
2014/06/05 职场文书
学校运动会广播稿
2014/10/11 职场文书
2015年社区综治工作总结
2015/04/21 职场文书