tensorflow实现KNN识别MNIST


Posted in Python onMarch 12, 2018

KNN算法算是最简单的机器学习算法之一了,这个算法最大的特点是没有训练过程,是一种懒惰学习,这种结构也可以在tensorflow实现。

KNN的最核心就是距离度量方式,官方例程给出的是L1范数的例子,我这里改成了L2范数,也就是我们常说的欧几里得距离度量,另外,虽然是叫KNN,意思是选取k个最接近的元素来投票产生分类,但是这里只是用了最近的那个数据的标签作为预测值了。

__author__ = 'freedom' 
import tensorflow as tf 
import numpy as np 
 
def loadMNIST(): 
 from tensorflow.examples.tutorials.mnist import input_data 
 mnist = input_data.read_data_sets('MNIST_data',one_hot=True) 
 return mnist 
def KNN(mnist): 
 train_x,train_y = mnist.train.next_batch(5000) 
 test_x,test_y = mnist.train.next_batch(200) 
 
 xtr = tf.placeholder(tf.float32,[None,784]) 
 xte = tf.placeholder(tf.float32,[784]) 
 distance = tf.sqrt(tf.reduce_sum(tf.pow(tf.add(xtr,tf.neg(xte)),2),reduction_indices=1)) 
 
 pred = tf.argmin(distance,0) 
 
 init = tf.initialize_all_variables() 
 
 sess = tf.Session() 
 sess.run(init) 
 
 right = 0 
 for i in range(200): 
  ansIndex = sess.run(pred,{xtr:train_x,xte:test_x[i,:]}) 
  print 'prediction is ',np.argmax(train_y[ansIndex]) 
  print 'true value is ',np.argmax(test_y[i]) 
  if np.argmax(test_y[i]) == np.argmax(train_y[ansIndex]): 
   right += 1.0 
 accracy = right/200.0 
 print accracy 
 
if __name__ == "__main__": 
 mnist = loadMNIST() 
 KNN(mnist)

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

Python 相关文章推荐
wxpython学习笔记(推荐查看)
Jun 09 Python
Python守护进程用法实例分析
Jun 04 Python
python中__slots__用法实例
Jun 04 Python
K-means聚类算法介绍与利用python实现的代码示例
Nov 13 Python
浅谈flask源码之请求过程
Jul 26 Python
pandas 空的dataframe 插入列名的示例
Oct 30 Python
Python时间序列处理之ARIMA模型的使用讲解
Apr 02 Python
Python向excel中写入数据的方法
May 05 Python
使用pandas 将DataFrame转化成dict
Dec 10 Python
OpenCV 之按位运算举例解析
Jun 19 Python
Pycharm创建文件时自动生成文件头注释(自定义设置作者日期)
Nov 24 Python
openstack中的rpc远程调用的方法
Jul 09 Python
Python操作MySQL模拟银行转账
Mar 12 #Python
python3 图片referer防盗链的实现方法
Mar 12 #Python
tensorflow构建BP神经网络的方法
Mar 12 #Python
Python管理Windows服务小脚本
Mar 12 #Python
python实现教务管理系统
Mar 12 #Python
python编写弹球游戏的实现代码
Mar 12 #Python
python学生管理系统代码实现
Apr 05 #Python
You might like
PHP入门学习的几个不错的实例代码
2008/07/13 PHP
php加密解密函数authcode的用法详细解析
2013/10/28 PHP
PHP实现无限分类的实现方法
2016/11/14 PHP
PHP中Laravel 关联查询返回错误id的解决方法
2017/04/01 PHP
PHP编程获取各个时间段具体时间的方法
2017/05/26 PHP
JS input 数字验证代码
2009/07/30 Javascript
js下关于onmouseout、事件冒泡的问题经验小结
2010/12/09 Javascript
Jquery 绑定时间实现代码
2011/05/03 Javascript
jQuery使用addClass()方法给元素添加多个class样式
2015/03/26 Javascript
javascript表格的渲染组件
2015/07/03 Javascript
jQuery实现类似淘宝网图片放大效果的方法
2015/07/08 Javascript
jQuery实现图片渐入渐出切换展示效果
2015/08/15 Javascript
谈谈JavaScript中function多重理解
2015/08/28 Javascript
AngularJS 视图详解及示例代码
2016/08/17 Javascript
使用React实现轮播效果组件示例代码
2016/09/05 Javascript
微信小程序  wx.request合法域名配置详解
2016/11/23 Javascript
jQuery弹出窗口打开链接的实现代码
2016/12/24 Javascript
BootStrap模态框和select2合用时input无法获取焦点的解决方法
2017/09/01 Javascript
Vue使用axios出现options请求方法
2019/05/30 Javascript
js实现单元格拖拽效果
2020/02/10 Javascript
Vue.extend 登录注册模态框的实现
2020/12/29 Vue.js
python实现telnet客户端的方法
2015/04/15 Python
对python制作自己的数据集实例讲解
2018/12/12 Python
python 发送邮件的四种方法汇总
2020/12/02 Python
CSS3中设置3D变形的transform-style属性详解
2016/05/23 HTML / CSS
CSS3 @keyframes简单动画实现
2018/02/24 HTML / CSS
Html5游戏开发之乒乓Ping Pong游戏示例(一)
2013/01/21 HTML / CSS
捷克建筑材料网上商店:DEK.cz
2021/03/06 全球购物
儿科护理实习自我鉴定
2013/09/19 职场文书
酒后驾驶检讨书
2014/01/27 职场文书
知识就是力量演讲稿
2014/09/13 职场文书
机关作风整顿个人整改措施2014
2014/09/17 职场文书
企业与个人合作经营协议书
2014/11/01 职场文书
2015年老干部工作总结
2015/04/23 职场文书
鸦片战争观后感
2015/06/09 职场文书
2016年保险公众宣传日活动总结
2016/04/05 职场文书