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 相关文章推荐
Python中类的继承代码实例
Oct 28 Python
python连接远程ftp服务器并列出目录下文件的方法
Apr 01 Python
Python3指定路径寻找符合匹配模式文件
May 22 Python
Python对list列表结构中的值进行去重的方法总结
May 07 Python
python机器学习案例教程——K最近邻算法的实现
Dec 28 Python
用Python读取几十万行文本数据
Dec 24 Python
浅谈python标准库--functools.partial
Mar 13 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
Sep 06 Python
Python2及Python3如何实现兼容切换
Sep 01 Python
python 制作本地应用搜索工具
Feb 27 Python
Python办公自动化解决world文件批量转换
Sep 15 Python
Python爬虫入门案例之爬取二手房源数据
Oct 16 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使用指定字符列表生成随机字符串的方法
2015/04/18 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
2019/07/26 PHP
js 调整select 位置的函数
2008/02/21 Javascript
Js四则运算函数代码
2012/07/21 Javascript
用js获取电脑信息(是使用与IE浏览器)
2013/01/15 Javascript
jQuery中index()方法用法实例
2014/12/27 Javascript
js实现仿爱微网两级导航菜单效果代码
2015/08/31 Javascript
jquery实现页面常用的返回顶部效果
2016/03/04 Javascript
基于javascript制作微信聊天面板
2020/08/09 Javascript
全面了解构造函数继承关键apply call
2016/07/26 Javascript
javascript cookie基础应用之记录用户名的方法
2016/09/20 Javascript
js判断是否为空和typeof的用法(详解)
2016/10/07 Javascript
jQuery使用EasyUi实现三级联动下拉框效果
2017/03/08 Javascript
vue实现个人信息查看和密码修改功能
2018/05/06 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
Vue父组件监听子组件生命周期
2020/09/03 Javascript
基于vue hash模式微信分享#号的解决
2020/09/07 Javascript
vue-amap根据地址回显地图并mark的操作
2020/11/03 Javascript
[01:31]完美与DOTA2历程
2014/07/31 DOTA
python图片验证码生成代码
2016/07/02 Python
Python守护线程用法实例
2017/06/23 Python
Python3实现带附件的定时发送邮件功能
2020/12/22 Python
Python3编码问题 Unicode utf-8 bytes互转方法
2018/10/26 Python
如何利用Pyecharts可视化微信好友
2019/07/04 Python
python 画出使用分类器得到的决策边界
2019/08/21 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
2019/08/27 Python
python datetime处理时间小结
2020/04/16 Python
Python Selenium截图功能实现代码
2020/04/26 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
Python 数据分析之逐块读取文本的实现
2020/12/14 Python
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
英国折扣零售连锁店:QD Stores
2018/12/08 全球购物
阿联酋优惠券服务:Living Kool
2019/12/12 全球购物
2014年社会实践活动总结范文
2014/04/29 职场文书
个人四风问题对照检查材料
2014/09/26 职场文书
2014年小学数学教师工作总结
2014/12/03 职场文书