Kaggle竞赛入门篇--Digit Recognizer 整活

这篇文章主要讲下Kaggle要怎么整活
我们首先进入Kaggle官网,注册自己的账号,然后选中左方的Compete找到Digit Recognizer这个比赛并参加。

接下来,我们可以看到

kaggle competitions download -c digit-recognizer

这样一行命令,这行命令的作用是通过kaggle的api直接下载kaggle的数据集,不得不说,这点确实要比天池做的好,一套齐活了,首先我们要安装下kaggle的接口,做法也简单。

pip3 install -i https://pypi.douban.com/simple kaggle

这样一来就安装好了kaggle的接口,我们就直接把数据集给下载过来吧,下载之后,我们用下面的指令解压一下数据集。

unzip digit-recognizer.zip

接下来我们会看到解压后的三个文件,分别对应训练集,测试集和提交样本,训练集就不解释了,测试集是没有label的,需要我们把测试集的label结果算出来,然后以提交样本的格式来提交csv文件:

sample_submission.csv 提交样本
test.csv 测试集
train.csv 训练集

数据格式一般会在比赛的data页里面声明,

我们看下这个比赛的data页,我们可以知道训练集的设计是采用了第一列标签页,后面特征的方式,同样的,我们也可以看到测试集的数据格式,拥有了数据集之后,我们就可以进行下面一步的计算了。这里由于主要是介绍Kaggle怎么玩,我们不会把太多的时间花费在算法设计上,我们这里就用sklearn里面的随机森林。(其实比较好的方法是先设计一个网络结构计算偏移,然后再设计一个branch识别偏移后的图像,但是这里为了快就不追求成绩了)

from sklearn.ensemble import RandomForestClassifier
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split

def read_train_file(filename):
    data = pd.read_csv(filename)
    data = data.to_numpy()
    Y = np.transpose(data[:, 0])
    X = data[:, 1:]
    return X, Y

def read_test_file(filename):
    data = pd.read_csv(filename)
    data = data.to_numpy()
    return data

def split_train_dataset(X, y):
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
    return X_train, X_test, y_train, y_test

def updatetosubmission(y):
    pass

def train_and_evaluate(X, y):
    clf = RandomForestClassifier()
    X_train, X_test, y_train, y_test = split_train_dataset(X, y)
    clf.fit(X_train, y_train)
    y_result = clf.predict(X_test)
    accuracy = np.sum(y_test == y_result)/y_test.shape[0]
    print("accuracy: %r"%(accuracy))

def train_and_submit_test(trainX, trainY, testX):
    clf = RandomForestClassifier()
    clf.fit(trainX, trainY)
    result = clf.predict(testX)
    result = np.transpose(result)
    df = pd.DataFrame(result,columns=["Label"])
    df.index = df.index + 1
    df = df.to_csv("submission.csv")

def main():
    train_X, train_y = read_train_file("train.csv")
    test_X = read_test_file("test.csv")
    train_and_submit_test(train_X, train_y, test_X)

if __name__ == '__main__':
    main()

这份代码,为了方便我直接用了index,但实际上写的时候最好加上ImageId这一列,我是后面手动输入了这个单词,接下来我们只需要直接提交结果就可以了。

点击提交按钮把自己生成的csv文件给提交上去就可以了,同时也可以通过jump to your position in the leaderboard看到自己的比赛结果,欢迎来到召唤师峡谷,您已经完成新手教程(好像串台了)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值