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实现的简单文本类游戏实例
Apr 28 Python
python 开发的三种运行模式详细介绍
Jan 18 Python
python3基于OpenCV实现证件照背景替换
Jul 18 Python
Face++ API实现手势识别系统设计
Nov 21 Python
django celery redis使用具体实践
Apr 08 Python
使用 Python 处理 JSON 格式的数据
Jul 22 Python
在 Jupyter 中重新导入特定的 Python 文件(场景分析)
Oct 27 Python
解决paramiko执行命令超时的问题
Apr 16 Python
Keras-多输入多输出实例(多任务)
Jun 22 Python
python的数学算法函数及公式用法
Nov 18 Python
用pip给python安装matplotlib库的详细教程
Feb 24 Python
用python基于appium模块开发一个自动收取能量的小助手
Sep 25 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中文件下载功能实现超详细流程分析
2012/06/13 PHP
php中长文章分页显示实现代码
2012/09/29 PHP
作为程序员必知的16个最佳PHP库
2015/12/09 PHP
CodeIgniter配置之config.php用法实例分析
2016/01/19 PHP
php简单中奖算法(实例)
2017/08/15 PHP
PHP利用DWZ.CN服务生成短网址
2019/08/11 PHP
php实现快速对二维数组某一列进行组装的方法小结
2019/12/04 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
JavaScript计算字符串中每个字符出现次数的小例子
2013/07/02 Javascript
jquery实现文字由下到上循环滚动的实例代码
2013/08/09 Javascript
Js获取下拉框选定项的值和文本的实现代码
2014/02/26 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
2016/12/17 Javascript
jquery实现表单获取短信验证码代码
2017/03/13 Javascript
Angular获取手机验证码实现移动端登录注册功能
2017/05/17 Javascript
原生js实现移动端触摸轮播的示例代码
2017/12/22 Javascript
详解JavaScript中的强制类型转换
2019/04/15 Javascript
基于vue-cli搭建多模块且各模块独立打包的项目
2019/06/12 Javascript
vue实现购物车结算功能
2020/06/18 Javascript
使用Vue实现一个树组件的示例
2020/11/06 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
2020/12/14 Vue.js
[01:28:24]NAVI vs VG Supermajor 败者组 BO3 第三场 6.5
2018/06/06 DOTA
python 打印出所有的对象/模块的属性(实例代码)
2016/09/11 Python
遍历python字典几种方法总结(推荐)
2016/09/11 Python
python3 自动打印出最新版本执行的mysql2redis实例
2020/04/09 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
2020/06/18 Python
Python非单向递归函数如何返回全部结果
2020/12/18 Python
selenium+超级鹰实现模拟登录12306
2021/01/24 Python
allbeauty美国:英国在线美容店
2019/03/11 全球购物
乌克兰鞋类购物网站:Eobuv.com.ua
2020/11/28 全球购物
kfc实习自我鉴定
2013/12/14 职场文书
学习十八大的心得体会
2014/09/12 职场文书
文明医院的标语集锦!
2019/07/24 职场文书
理解深度学习之深度学习简介
2021/04/14 Python
写好Python代码的几条重要技巧
2021/05/21 Python
css弧边选项卡的项目实践
2023/05/07 HTML / CSS