Digit Recognizer是数字手写体识别。
Kirill Kliavin基于TensorFlow 框架与深度学习算法,给出了准确率高达0.99的解决方法,值得我们学习。
- 阅读本篇的先决条件:需要有一定python基础,一些线性代数的理论基础,尤其是对于矩阵的处理。(矩阵的乘法,转置等)
- 如果你对机器学习的原理感兴趣,推荐你学习Andrew Ng(吴恩达)的coursera的课程:https://www.coursera.org/learn/machine-learning
本篇主要说明Digit Recognizer的分析,代码我已经写了详细的注释,如果你感兴趣,请移步:
https://github.com/Skyamz/Data_Recognizer
1. 明确我们的目标
让机器判断人类的手写体数字是几,并且输出出来。
2. 熟悉kaggle给的数据集
- train.csv是训练集,这些数据用来建立一个模型。数字以图片的形式存储在电脑中,我们将这个数字图片分成784个像素(pixel),存储在一个向量里面。训练集的一行就表示一个向量,也就是一个数字。784列对应的就是784个像素。第一行label表明这一行是数字几。我们的数据有42000行,即有42000个手写的数字图片。第十行的数字‘8‘长这个样子: