tensorflow实现简单逻辑回归


Posted in Python onSeptember 07, 2018

逻辑回归是机器学习中很简答的一个栗子,这篇文章就是要介绍如何使用tensorflow实现一个简单的逻辑回归算法。

逻辑回归可以看作只有一层网络的前向神经网络,并且参数连接的权重只是一个值,而非矩阵。公式为:y_predict=logistic(X*W+b),其中X为输入,W为输入与隐含层之间的权重,b为隐含层神经元的偏置,而logistic为激活函数,一般为sigmoid或者tanh, y_predict为最终预测结果。

逻辑回归是一种分类器模型,需要木便函数不断的优化参数,这里目标函数为y_predict与真实标签Y之间的L2距离,使用随机梯度下降算法来更新权重和偏置。 废话不多说,贴代码:

# -*- coding:utf-8 -*-
#功能: 使用tensorflow实现一个简单的逻辑回归
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
 
#创建占位符
X=tf.placeholder(tf.float32)
Y=tf.placeholder(tf.float32)
 
#创建变量
#tf.random_normal([1])返回一个符合正太分布的随机数
w=tf.Variable(tf.random_normal([1],name='weight'))
b=tf.Variable(tf.random_normal([1],name='bias'))
 
y_predict=tf.sigmoid(tf.add(tf.mul(X,w),b))
num_samples=400
cost=tf.reduce_sum(tf.pow(y_predict-Y,2.0))/num_samples
 
#学习率
lr=0.01
optimizer=tf.train.AdamOptimizer().minimize(cost)
 
#创建session 并初始化所有变量
num_epoch=500
cost_accum=[]
cost_prev=0
#np.linspace()创建agiel等差数组,元素个素为num_samples
xs=np.linspace(-5,5,num_samples)
ys=np.sin(xs)+np.random.normal(0,0.01,num_samples)
 
with tf.Session() as sess:
  #初始化所有变量
  sess.run(tf.initialize_all_variables())
  #开始训练
  for epoch in range(num_epoch):
    for x,y in zip(xs,ys):
      sess.run(optimizer,feed_dict={X:x,Y:y})
    train_cost=sess.run(cost,feed_dict={X:x,Y:y})
    cost_accum.append(train_cost)
    print "train_cost is:",str(train_cost)
 
    #当误差小于10-6时 终止训练
    if np.abs(cost_prev-train_cost)<1e-6:
      break
    #保存最终的误差
    cost_prev=train_cost
#画图 画出每一轮训练所有样本之后的误差
plt.plot(range(len(cost_accum)),cost_accum,'r')
plt.title('Logic Regression Cost Curve')
plt.xlabel('epoch')
plt.ylabel('cost')
plt.show()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python多进程操作实例
Nov 21 Python
Python3通过Luhn算法快速验证信用卡卡号的方法
May 14 Python
详解Python的Lambda函数与排序
Oct 25 Python
matplotlib绘制符合论文要求的图片实例(必看篇)
Jun 02 Python
详解使用 pyenv 管理多个版本 python 环境
Oct 19 Python
Python中的pack和unpack的使用
Mar 12 Python
python批量修改图片大小的方法
Jul 24 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
Aug 05 Python
python3 webp转gif格式的实现示例
Dec 10 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
Feb 28 Python
Python return语句如何实现结果返回调用
Oct 15 Python
python实现Nao机器人的单目测距
Sep 04 Python
Tensorflow使用支持向量机拟合线性回归
Sep 07 #Python
TensorFlow实现iris数据集线性回归
Sep 07 #Python
TensorFlow实现模型评估
Sep 07 #Python
使用tensorflow实现线性svm
Sep 07 #Python
Python多进程池 multiprocessing Pool用法示例
Sep 07 #Python
详解python while 函数及while和for的区别
Sep 07 #Python
使用TensorFlow实现SVM
Sep 06 #Python
You might like
PHP函数preg_match_all正则表达式的基本使用详细解析
2013/08/31 PHP
php字符编码转换之gb2312转为utf8
2013/10/28 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(七)
2014/06/23 PHP
PHP实现爬虫爬取图片代码实例
2021/03/03 PHP
仿服务器端脚本方式的JS模板实现方法
2007/04/27 Javascript
基于JQuery制作可编辑的表格特效
2014/12/23 Javascript
chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式
2015/10/09 Javascript
JavaScript对象数组排序实例方法浅析
2016/06/15 Javascript
JS全局变量和局部变量最新解析
2016/06/24 Javascript
jQuery实现自动输入email、时间和域名的方法
2016/08/24 Javascript
AngularJS 应用身份认证的技巧总结
2016/11/07 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
easyui combogrid实现本地模糊搜索过滤多列
2017/05/13 Javascript
微信小程序之几种常见的弹框提示信息实现详解
2019/07/11 Javascript
vue 路由懒加载中给 Webpack Chunks 命名的方法
2020/04/24 Javascript
Python lxml模块安装教程
2015/06/02 Python
Python3多线程爬虫实例讲解代码
2018/01/05 Python
python list元素为tuple时的排序方法
2018/04/18 Python
python中文分词库jieba使用方法详解
2020/02/11 Python
Python类的动态绑定实现原理
2020/03/21 Python
PYQT5 vscode联合操作qtdesigner的方法
2020/03/24 Python
python画环形图的方法
2020/03/25 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
django rest framework使用django-filter用法
2020/07/15 Python
用python对excel进行操作(读,写,修改)
2020/12/25 Python
详解python日志输出使用配置文件格式
2021/02/10 Python
帕克纽约:PARKER NY
2018/12/09 全球购物
泰海淘:泰国king Power王权免税集团旗下跨境海淘综合型电商
2020/07/26 全球购物
幼儿园小班教学反思
2014/02/02 职场文书
甜品蛋糕店创业计划书
2014/09/21 职场文书
工程催款通知书
2015/04/17 职场文书
简爱读书笔记
2015/06/26 职场文书
2016年教师节感恩寄语
2015/12/04 职场文书
Python爬虫之爬取最新更新的小说网站
2021/05/06 Python
windows安装python超详细图文教程
2021/05/21 Python
Python Pygame实战在打砖块游戏的实现
2022/03/17 Python