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 错误和异常小结
Oct 09 Python
Python实现Linux命令xxd -i功能
Mar 06 Python
python使用matplotlib绘图时图例显示问题的解决
Apr 27 Python
对Python3中的print函数以及与python2的对比分析
May 02 Python
python3实现SMTP发送邮件详细教程
Jun 19 Python
Python基于SMTP协议实现发送邮件功能详解
Aug 14 Python
Python实现大数据收集至excel的思路详解
Jan 03 Python
tensorflow指定GPU与动态分配GPU memory设置
Feb 03 Python
python 操作mysql数据中fetchone()和fetchall()方式
May 15 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
Jun 24 Python
Django serializer优化类视图的实现示例
Jul 16 Python
Python requests上传文件实现步骤
Sep 15 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中判断文件空目录是否有读写权限的函数代码
2012/08/07 PHP
PHP使用mysql_fetch_row查询获得数据行列表的方法
2015/03/18 PHP
Laravel 5框架学习之表单
2015/04/08 PHP
php使用指定字符列表生成随机字符串的方法
2015/04/18 PHP
文本框回车提交与禁止提交示例
2013/09/27 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
利用jQuery实现可以编辑的表格
2014/05/26 Javascript
多个checkbox被选中时如何判断是否有自己想要的
2014/09/22 Javascript
Spring mvc 接收json对象
2015/12/10 Javascript
Mongoose学习全面理解(推荐)
2017/01/21 Javascript
jQuery ajax实现省市县三级联动
2021/03/07 Javascript
layer弹窗插件操作方法详解
2017/05/19 Javascript
Angular4实现动态添加删除表单输入框功能
2017/08/11 Javascript
Vue.js与 ASP.NET Core 服务端渲染功能整合
2017/11/16 Javascript
解决Mac node版本升级失败的问题
2018/05/16 Javascript
vue单页缓存存在的问题及解决方案(小结)
2018/09/25 Javascript
ES6中Set和Map数据结构,Map与其它数据结构互相转换操作实例详解
2019/02/28 Javascript
详解element-ui日期时间选择器的日期格式化问题
2019/04/08 Javascript
用js简单提供增删改查接口
2019/05/12 Javascript
详解javascript void(0)
2020/07/13 Javascript
python错误处理详解
2014/09/28 Python
Python基础教程之正则表达式基本语法以及re模块
2016/03/25 Python
利用Python实现原创工具的Logo与Help
2018/12/03 Python
Python通过Tesseract库实现文字识别
2020/03/05 Python
Python-openCV开运算实例
2020/07/05 Python
Python执行时间的几种计算方法
2020/07/31 Python
Python3使用 GitLab API 进行批量合并分支
2020/10/15 Python
如何创建一个Flask项目并进行简单配置
2020/11/18 Python
python实现简单猜单词游戏
2020/12/24 Python
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
2012/05/30 面试题
2014年幼儿园植树节活动方案
2014/03/02 职场文书
药品营销策划方案
2014/06/15 职场文书
先进人物事迹材料
2014/12/29 职场文书
环保建议书范文
2015/09/14 职场文书
Python 中的 copy()和deepcopy()
2021/11/07 Python
Zabbix6通过ODBC方式监控Oracle 19C的详细过程
2022/09/23 Servers