机器学习(2) - KNN识别MNIST】的更多相关文章

机器学习是时下非常流行的话题,而Tensorflow是机器学习中最有名的工具包.TensorflowSharp是Tensorflow的C#语言表述.本文会对TensorflowSharp的使用进行一个简单的介绍. 本文会先介绍Tensorflow的一些基本概念,然后实现一些基本操作例如数字相加等运算.然后,实现求两个点(x1,y1)和(x2,y2)的距离.最后,通过这些前置基础和一些C#代码,实现使用KNN方法识别MNIST手写数字集合(前半部分).阅读本文绝对不需要任何机器学习基础,因为我现在…
代码 https://github.com/s055523/MNISTTensorFlowSharp 数据的获得 数据可以由http://yann.lecun.com/exdb/mnist/下载.之后,储存在trainDir中,下次就不需要下载了. /// <summary> /// 如果文件不存在就去下载 /// </summary> /// <param name="urlBase">下载地址</param> /// <para…
领导让我每天手工录入BI系统中的数据并判断数据是否存在异常,若有异常点,则检测是系统问题还是业务问题.为了解放双手,我决定写个程序完成每天录入管理驾驶舱数据的任务.首先用按键精灵录了一套脚本把系统中的数据都截图保存下来,然后就是图像识别的事了. 图像文本识别的步骤一般为图像预处理,图片切割,特征提取.文本分类和图像文本输出几个步骤,我们也可以按这个步骤来识别图像中的数字. 一.图像预处理 在图像预处理中,验证码识别还要对图像进行去燥,文字还原等比较复杂的处理,由于我的图像没什么干扰因素,所以直接…
由于KNN的计算量太大,还没有使用KD-tree进行优化,所以对于60000训练集,10000测试集的数据计算比较慢.这里只是想测试观察一下KNN的效果而已,不调参. K选择之前看过貌似最好不要超过20,因此,此处选择了K=10,距离为欧式距离.如果需要改进,可以再调整K来选择最好的成绩. 先跑了一遍不经过scale的,也就是直接使用像素灰度值来计算欧式距离进行比较.发现开始基本稳定在95%的正确率上,吓了一跳.因为本来觉得KNN算是没有怎么“学习”的机器学习算法了,猜测它的特点可能会是在任何情…
官方文档: MNIST For ML Beginners - https://www.tensorflow.org/get_started/mnist/beginners Deep MNIST for Experts - https://www.tensorflow.org/get_started/mnist/pros 版本: TensorFlow 1.2.0 + Flask 0.12 + Gunicorn 19.6 相关文章: TensorFlow 之 入门体验 TensorFlow 之 手写…
TensorFlow 入门之手写识别(MNIST) 数据处理 一 MNIST Fly softmax回归 准备数据 解压 与 重构 手写识别入门 MNIST手写数据集 图片以及标签的数据格式处理 准备数据 MNIST是在机器学习领域中的一个经典问题.该问题解决的是把28x28像素的灰度手写数字图片识别为相应的数字,其中数字的范围从0到9. from IPython.display import Image  import base64  Image(data=base64.decodestrin…
机器学习-SVM-手写识别问题 这里我们解决的还是之前用KNN曾经解决过的手写识别问题(https://www.cnblogs.com/jiading/p/11622019.html),但相比于KNN,SVM好的地方在于一旦我们的模型训练完成,我们就可以得到一个确定的决策超平面,当然这个超平面的w是用所有的支持向量来描述的,这就表示我们发布模型的时候只需要包括所有的支持向量在内就可以了,剩下所有的向量都可以舍弃,和每次都需要所有向量的KNN相比,这就大大减小了模型的大小. 注意,这里举的是一个二…
机器学习算法应用·KNN算法 一.问题描述 验证码目前在互联网上非常常见,从学校的教务系统到12306购票系统,充当着防火墙的功能.但是随着OCR技术的发展,验证码暴露出的安全问题越来越严峻.目前对验证码的识别已经有了许多方法,例如CNN,可以直接输入图片进行识别.验证码分为许多种类,本文以传统的字符验证码作为研究对象,进行图片分割成单一图片作为训练集,构架以测KNN,决策树或者朴素贝叶斯这三个算法为核心的验证码识别算法,进一步体会三个算法的特点. 二.数据准备 2.1数据说明 对于比较简单的字…
TensorFlow 入门之手写识别(MNIST) softmax算法 MNIST flyu6 softmax回归 softmax回归算法 TensorFlow实现softmax softmax回归算法 我们知道MNIST的每一张图片都表示一个数字,从0到9.我们希望得到给定图片代表每个数字的概率.比如说,我们的模型可能推测一张包含9的图片代表数字9的概率是80%但是判断它是8的概率是5%(因为8和9都有上半部分的小圆),然后给予它代表其他数字的概率更小的值. 这是一个使用softmax回归(s…
记得上次练习了神经网络分类,不过当时应该有些地方写的还是不对. 这次用神经网络识别mnist手写数据集,主要参考了深度学习工具包的一些代码. mnist数据集训练数据一共有28*28*60000个像素,标签有60000个. 测试数据一共有28*28*10000个,标签10000个. 这里神经网络输入层是784个像素,用了100个隐含层,最终10个输出结果. arc代表的是神经网络结构,可以增加隐含层,不过我试了没太大效果,毕竟梯度消失. 因为是最普通的神经网络,最终识别错误率大概在5%左右. 迭…