kaggle-------DigitRecognition

这篇博客介绍了作者在kaggle上参与的Digit Recognition比赛,通过KNN算法实现手写数字识别。文章强调了数据预处理和模型训练过程,分享了使用KNN算法实现模型的思路,并提供了两个版本的代码,分别用于训练模型和对测试数据进行预测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

kaggle上的一个比赛,主要是识别数字的,具体描述可以去官网看一下,然后里面也有数据集,可以下载下来在本地跑,也可以在kaggle的平台上跑,注意去setting下面把GPU的开关打开~~
这里

我之前也写过手写体识别的,在这里 ,用的是logistic regression+softmax 数据集是放在两个文件夹下面,没一个样本是存成一个txt文件的,就是这里导入数据集比较麻烦。
现在的数据要比之前大很多,而且存的是像素值,不过实质是一样的都可以作为特征训练,我这次使用的knn,,没有调现成的包,如果你是想了解算法的原理,这篇文章也许会对你有帮助~~

knn的原理我这里就不再赘述了,思想都在代码中体现了,我最开始建立一个模型,就是把训练数据集拆分80%训练,20%测试,结果预测准确率82%:
这样
然后我使用了前500条数据来跑,然后对测试数据也就预测了100条,写到preditions.csv文件中,结果如下:
图1

然后对于全部数据是在kaggle上面跑的~跑了好久还没出结果~~~
图2

接下来我把两个版本的代码都放上来:
第一个是训练模型的,没有对测试集合进行预测,主要是看模型的好坏~:

# -*- coding: utf-8 -*-
"""
Created on Fri May 11 20:38:13 2018

@author: xuanxuan
"""
from itertools import islice 
import numpy as np
from sklearn.cross_validation import train_test_split

def load_data():
    filename="E:/pyhtonworkspace/py3-pratice/bymyself_practice/python_game/Data/Kaggel/digit-recognizer/digit-recognizer/train.csv"
    file=open(filename)   
    data=[]
    label=[]
    for line in islice(file,1, None):  
        data_line=[]
        line=line.strip().split(',')
        for num in line:
            data_line.append(int(num))
        data.append(data_line[1:])
        label.append(data_line[0])
    data_mat,label_mat=np.mat(data),np.mat(label).T
    #print(data_mat.shape)  #(42000,784)
    #print(data_mat[:20])
    #pri
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值