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实现对PPT文件进行截图操作的方法
Apr 28 Python
Python中利用原始套接字进行网络编程的示例
May 04 Python
深入理解Python中变量赋值的问题
Jan 12 Python
Python DataFrame设置/更改列表字段/元素类型的方法
Jun 09 Python
总结Python图形用户界面和游戏开发知识点
May 22 Python
python绘制多个子图的实例
Jul 07 Python
如何不用安装python就能在.NET里调用Python库
Jul 12 Python
python+Django实现防止SQL注入的办法
Oct 31 Python
python中提高pip install速度
Feb 14 Python
Windows下实现将Pascal VOC转化为TFRecords
Feb 17 Python
Django静态文件加载失败解决方案
Aug 26 Python
基于python实现复制文件并重命名
Sep 16 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将fileterms函数返回的结果变成可读的形式
2011/04/21 PHP
PHP程序开发范例学习之表单 获取文本框的值
2011/08/08 PHP
php教程之phpize使用方法
2014/02/12 PHP
PHP动态输出JavaScript代码实例
2015/02/12 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
javascript下操作css的float属性的特殊写法
2007/08/22 Javascript
一个判断email合法性的函数[非正则]
2008/12/09 Javascript
javascript控制frame,iframe的src属性代码
2009/12/31 Javascript
Mootools 图片展示插件(lightbox,ImageMenu)收集集合
2010/05/21 Javascript
JavaScript的setAttribute兼容性问题解决方法
2013/11/11 Javascript
DIV始终居中的js代码
2014/02/17 Javascript
js操纵dom生成下拉列表框的方法
2014/02/24 Javascript
JavaScript解析json格式数据简单示例
2014/12/09 Javascript
JavaScript操作HTML DOM节点的基础教程
2016/03/11 Javascript
判断js的Array和Object的实现方法
2016/08/29 Javascript
JSON对象 详解及实例代码
2016/10/18 Javascript
Node.js websocket使用socket.io库实现实时聊天室
2017/02/20 Javascript
vue实现简单表格组件实例详解
2017/04/16 Javascript
jQuery实现一个简单的验证码功能
2017/06/26 jQuery
Vue shopCart 组件开发详解
2018/01/26 Javascript
尝试自己动手用react来写一个分页组件(小结)
2018/02/09 Javascript
vue2配置scss的方法步骤
2019/06/06 Javascript
vue组件是如何解析及渲染的?
2021/01/13 Vue.js
Javascript实现关闭广告效果
2021/01/29 Javascript
Centos7 Python3下安装scrapy的详细步骤
2018/03/15 Python
python覆盖写入,追加写入的实例
2019/06/26 Python
Python高阶函数与装饰器函数的深入讲解
2020/11/10 Python
竞聘副主任科员演讲稿
2014/01/11 职场文书
西门豹教学反思
2014/02/04 职场文书
副总经理岗位职责
2014/03/16 职场文书
雏鹰争章活动总结
2014/05/09 职场文书
志愿者活动总结报告
2014/06/27 职场文书
群众路线教育实践活动个人对照检查材料思想汇报(社区班子)
2014/10/06 职场文书
2016年庆“七一”主题党日活动总结
2016/04/05 职场文书
Nginx反向代理多个服务器的实现方法
2021/03/31 Servers
Python基础之元编程知识总结
2021/05/23 Python