形状识别:是方还是圆
形状识别:是方还是圆
比赛概述
本比赛为个人练习赛,主要针对于数据新人、尤其图像处理、识别方面的新手进行自我练习、自我提高,与大家切磋。
练习赛时限:2017-12-21 至 2019-12-21
任务类型:二元分类、图像识别
背景介绍:
我们给出四千张图像作为训练集。每个图像中只有一个图形,要么是圆形,要么是正方形。你的任务根据是根据这四千张图片训练出一个二元分类模型,并用它(不是用肉眼)在测试集上判断每个图像中的形状。
数据下载
数据文件(三个):
train.csv 训练集,文件大小 19.7mb
test.csv 预测集, 文件大小 17.5mb
sample_submit.csv 提交示例 文件大小 25kb
下载该数据即同意不以商业为目的传播、发布该数据集。
训练集中共有4000个灰度图像,预测集中有3550个灰度图像。每个图像中都会含有大量的噪点。
图像的分辨率为40x40,也就是40x40的矩阵,每个矩阵以行向量的形式被存放在train.csv和test.csv中。train.csv和test.csv中每行数据代表一个图像,也就是说每行都有1600个特征。
下面左图为train.csv第一行样本所对应的图像(方形),右图为train.csv第二行样本所对应的图像(圆形)。
变量说明:
变量名 | 解释 |
---|---|
id | 编号 |
p_i_j | 表示图像中第i行第j列上的像素点的灰度值,取值范围在0到255之间,i和j的取值都是0到39。 |
y | 表示该图像中的形状。0表示圆形,1表示方形。这是需要被预测的标签。 |
选手的任务是提交预测集中每个图像的标签(而非概率),标签以0或1表示。格式应与sample_submit.csv一致。
train.csv, test.csv均为逗号分隔形式的文件。在python中可以通过如下形式读取。
train = pd.read_csv('train.csv')
test = pd.read_csv('test.csv')
评价方法
您提交的结果为每行的预测标签,也就是0或者1。评价方法为F1 score。
F1 score的取值范围是0到1。越接近1,说明模型预测的结果越佳。$\text{F}_1\text{-score}$的计算公式为: $$\text{F}_1\text{-score}=\frac{2\times \text{precision}\times\text{recall}}{\text{precision}+\text{recall}}$$ 其中$\text{precision}$为精度,$\text{recall}$为召回,它们可以根据混淆矩阵计算得到。