kaggle经典比赛总结(二)CNN入门-数字识别

Introduction to CNN Keras — Acc 0.997

数字识别-CNN介绍

Kaggle链接:https://www.kaggle.com/yassineghouzam/introduction-to-cnn-keras-0-997-top-6/comments

数字识别是kaggle上关于深度学习的入门比赛,等同与深度学习的hello world程序。

1. 介绍
2. 数据处理
3. CNN模型
4. 模型评价
5. 预测和提交

1.介绍

本文打算在数字识别数据集上训练5层卷积神经网络,并且使用以Tensorflow为后端的Keras API实现。并且在单CPU的情况下训练CNN模型2个半小时达到了99.671%的准确率。由于计算能力的原因,这里设置迭代的次数为2,如果想达到更多的准确率99%+可以将迭代次数设置为30或者更高。
本文主要分为三个部分:
(1)数据处理
(2)CNN模型和评价
(3)预测结果

实现CNN,需要安装如下python包,有关keras包,可以直接在pycharm中安装或者通过pip手动安装(python的环境建议直接安装anaconda3):

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as img
import seaborn as sns
import itertools

from sklearn.model_selection import train_test_split
from sklearn.metrics import confusion_matrix

from keras.utils.np_utils import to_categorical
from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPool2D
from keras.optimizers import RMSprop
from keras.preprocessing.image import ImageDataGenerator
from keras.callbacks import ReduceLROnPlateau

2.数据处理
2.1 加载数据集

# 2.1 加载数据集 28 * 28 = 784
train = pd.read_csv('/Users/xudong/kaggleData/digit-recognizer/train.csv')
test = pd.read_csv('/Users/xudong/kaggleData/digit-recognizer/test.csv')
print(train.head(5))

# 标签列
Y_train = train['label']

# 丢弃label列
X_train = train.drop(labels=['label'], axis=1)

# 删除train,释放空间
del train

# 画出数据的统计图
sns.set(style='white', context='notebook', palette='deep')
snss = sns.countplot(Y_train)
plt.show()
print(Y_train.value_counts())

可以画图显示当前所有类别数字的数量统计(0~9):


2.2 数据预处理

这个部分主要是对数据进行处理,包括检查缺失数据、数据标准化、数据转化、类别标签的编码和划分数据集。

# 1 检查所有的null或者缺失数据
print(X_train.isnull().any().describe())
# print(test.isnull().any().describe())

# 2 数据标准化 本来就是0-255
# CNN在0-1上收敛要更快
X_train = X_train / 255.0
test = test / 255.0

print(X_train.head(
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值