逻辑回归实现多分类任务(python+TensorFlow+mnist)

逻辑回归是统计学中的一种经典方法,虽然叫回归,但在机器学习领域,逻辑回归通常情况下当成一个分类任务,softmax就是由其演变而来,逻辑回归一般用于二分类任务,但通过softmax可以轻易的扩展至多分类任务。

下面的程序,通过逻辑回归实现对手写数字的分类:

  • 环境:python3.6、TensorFlow框架
  • 数据集:MNIST
# 逻辑回归实现手写数字分类
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
import numpy as np
import matplotlib.pyplot as pltmnist = input_data.read_data_sets('D:\MNIST_data', one_hot=True)x = tf.placeholder(tf.float32, [None, 784])
y = tf.placeholder(tf.float32, [None, 10])
W = tf.Variable(tf.zeros([784, 10]), tf.float32)
b = tf.Variable(tf.zeros([10]), tf.float32)
pre = tf.nn.softmax(tf.matmul(x, W) + b)
# cost function
cost = tf.reduce_mean(tf.reduce_sum(-y*tf.log(pre), reduction_indices=1))
train = tf.train.GradientDescentOptimizer(0.01).minimize(cost)
pred = tf.equal(tf.argmax(y, 1), tf.argmax(pre, 1))
# accuracy
acc = tf.reduce_mean(tf.cast(pred, tf.float32))# initializer
init = tf.global_variables_initializer()
batch_size = 100
display_step = 5
step = 100
with tf.Session() as sess:sess.run(init)num_batch = int(mnist.train.num_examples/batch_size)for i in range(step):for j in range(num_batch):batch_xs, batch_ys = mnist.train.next_batch(100)sess.run(train, feed_dict={x: batch_xs, y: batch_ys})if i % display_step == 0:train_acc = sess.run(acc, feed_dict={x: batch_xs, y: batch_ys})test_acc = sess.run(acc, feed_dict={x: mnist.test.images, y: mnist.test.labels})print('Train accuracy:%2f'% train_acc, '  Test accuracy:%2f' % test_acc)

训练100次之后的测试精度为:

Train accuracy:0.940000 Test accuracy:0.921500

逻辑回归实现多分类任务(python+TensorFlow+mnist)相关推荐

  1. 鸢尾花分类python_二元逻辑回归实现鸢尾花数据分类(python)

    说明: 本文利用python实现二元逻辑回归,没有加正则项.挑选iris数据前100个样本作为训练集,他们分属于两个类别,样本特征选择第1列(花萼长度x1)和第2列(花萼宽度x2). 程序以函数形式实 ...

  2. Keras【Deep Learning With Python】逻辑回归·softmax多分类与交叉熵

    文章目录 1 逻辑回归 1.2 Sigmod函数 1.2 逻辑回归损失函数 2 交叉熵 3 softmax分类 1 逻辑回归 回答0或1 1.2 Sigmod函数 0.9是好人 0.1是坏人 二分类 ...

  3. 吴恩达《机器学习》学习笔记八——逻辑回归(多分类)代码

    吴恩达<机器学习>笔记八--逻辑回归(多分类)代码 导入模块及加载数据 sigmoid函数与假设函数 代价函数 梯度下降 一对多分类 预测验证 课程链接:https://www.bilib ...

  4. 吴恩达《机器学习》学习笔记七——逻辑回归(二分类)代码

    吴恩达<机器学习>学习笔记七--逻辑回归(二分类)代码 一.无正则项的逻辑回归 1.问题描述 2.导入模块 3.准备数据 4.假设函数 5.代价函数 6.梯度下降 7.拟合参数 8.用训练 ...

  5. 逻辑回归原理梳理_以python为工具 【Python机器学习系列(九)】

    逻辑回归原理梳理_以python为工具 [Python机器学习系列(九)] 文章目录 1.传统线性回归 2.引入sigmoid函数并复合 3. 代价函数 4.似然函数也可以 5. python梯度下降 ...

  6. stanford coursera 机器学习编程作业 exercise 3(逻辑回归实现多分类问题)

    本作业使用逻辑回归(logistic regression)和神经网络(neural networks)识别手写的阿拉伯数字(0-9) 关于逻辑回归的一个编程练习,可参考:http://www.cnb ...

  7. 【机器学习基础】(三):理解逻辑回归及二分类、多分类代码实践

    本文是机器学习系列的第三篇,算上前置机器学习系列是第八篇.本文的概念相对简单,主要侧重于代码实践. 上一篇文章说到,我们可以用线性回归做预测,但显然现实生活中不止有预测的问题还有分类的问题.我们可以从 ...

  8. 机器学习算法应用30篇(十一)-理解逻辑回归及二分类、多分类代码实践

    一.逻辑回归:二分类 1.1 理解逻辑回归 我们把连续的预测值进行人工定义,边界的一边定义为1,另一边定义为0.这样我们就把回归问题转换成了分类问题. 如上图,我们把连续的变量分布压制在0-1的范围内 ...

  9. 降维后输入分类器分类时报错_逻辑回归解决多分类方法及其优缺点分析

    众所周知,逻辑回归常用于解决二分类任务,但是在工作/学习/项目中,我们也经常要解决多分类问题.本文总结了 3 种逻辑回归解决多分类的方法,并分析了他们的优缺点. 一.One-Vs-Rest 假设我们要 ...

最新文章

  1. EasyTransaction 1.3.0 发布,一站式分布式事务解决方案
  2. extern的关键字用法(C# 参考)
  3. JS百度地图高德地图API的接入与使用
  4. SpringMVC拦截器之介绍和搭建环境
  5. 2012 IBM软件技术峰会:IBM与开发者谈四大热门领域看法
  6. 仅有 100k 参数的高效显著性目标检测方法
  7. 3-1-Servlet技术
  8. NoSQL Redis的学习笔记
  9. 【iOS】使用SQLite3的时候Swift3.、XCode8报错:Unsupported architecture - 'arm/arch.h'file not found - Could not
  10. 【WPF/WAF】使用System.Windows.Interactivity交互事件
  11. nyoj--38--布线问题
  12. 类的继承与派生的基础学习
  13. 【水果识别】基于matlab GUI RGB+HSV水果成熟度分级系统【含Matlab源码 825期】
  14. 面向对象七大设计原则
  15. 电子元器件商城与数据手册下载网站汇总
  16. css相对单位和绝对单位
  17. 抢红包算法 c++_“抠抠族”的出行利器,斤斤计较的几何C为了节能果然够拼
  18. silverlight mysql_Silverlight中衔接MySQL数据库实例详解
  19. 简易五子棋程序(C语言实现)
  20. 优秀笔记课件——WORD使用技巧

热门文章

  1. 安装linux出现基础系统出错,Linux系统出错提示信息详解
  2. (十九)【AAAI2021】Knowledge-Enhanced Hierarchical Graph Transformer Network for Multi-Behavior Recommend
  3. 从论文到PPT,一键生成!从此报告不用愁!
  4. 细数一行代码改变结局的炼丹骚操作
  5. 【完结】史上最萌最认真的机器学习/深度学习/模式识别入门指导手册(四)
  6. Redis系列教程(三):如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
  7. 论文浅尝 | KGAT: 用于推荐的知识图注意力网络
  8. Spring+SpringMVC+Mybatis项目—企业权限管理系统(2)
  9. 匹夫细说C#:庖丁解牛迭代器,那些藏在幕后的秘密
  10. Union与Union All的区别