Datawhale 零基础入门数据挖掘-Task1 赛题理解

这是第一次搞这种数据竞赛。之前搞过一次cv类的,最后惨败,也是稀里糊涂不明白。这次立志把他弄懂!

这次的任务是二手车预测,有15w条的训练集,5w条的测试集a,5w条测试集b。

每一条测试数据由31列变量信息组成,其中15条是匿名列。31列中包含预测列price。

一开始有三个文件。依次来看看是做什么用的Datawhale 零基础入门数据挖掘-Task1 赛题理解

就是这三个,我们用jupyter打开,用pandas读入,

Datawhale 零基础入门数据挖掘-Task1 赛题理解

结果很奇怪,一看是没有加sep属性。

加完之后:

Datawhale 零基础入门数据挖掘-Task1 赛题理解

好多了

然后看看给的数据

Datawhale 零基础入门数据挖掘-Task1 赛题理解

可以看到,train有15w的数据量,testA有5w的数据量。train里面有price这个标签,但是testA里面就没有了。说明比赛就是要让我们在train上训练,然后在testA里面测试,把测试出来的结果写到那个sample_submit文件里面,然后把这个文件提交。

 

刚才看到有一些列是jupyter不显示出来的,这样很不舒服,经查阅,可以这样解决

pd.set_option('display.max_columns', None)

 

 

接下来是分类指标的理解。

这里教程给的是sklearn,那我就用这个。其他可能的以后再学。

Datawhale 零基础入门数据挖掘-Task1 赛题理解

有一说一,感觉还是蛮方便的。

 

然后就是更多的标准,pre,recall,f1这些

Datawhale 零基础入门数据挖掘-Task1 赛题理解

就是这个样子了

然后还有一个auc roc指标,如下图:

Datawhale 零基础入门数据挖掘-Task1 赛题理解

这里我没太懂他的意思,之后得群里问问其他人。

这一部分我得记下来,以后应该都有用

Datawhale 零基础入门数据挖掘-Task1 赛题理解

 

Datawhale 零基础入门数据挖掘-Task1 赛题理解

 

没啥说的,很好理解,下面是代码

Datawhale 零基础入门数据挖掘-Task1 赛题理解

 

Datawhale 零基础入门数据挖掘-Task1 赛题理解

 

后续是讲的一些比赛经验总结,我直接粘贴过来。

作为切入一道赛题的基础,赛题理解是极其重要的,对于赛题的理解甚至会影响后续的特征工程构建以及模型的选择,最主要是会影响后续发展工作的方向,比如挖掘特征的方向或者存在问题解决问题的方向,对了赛题背后的思想以及赛题业务逻辑的清晰,也很有利于花费更少时间构建更为有效的特征模型,赛题理解要达到的地步是什么呢,把一道赛题转化为一种宏观理解的解决思路。 以下将从多方面对于此进行说明:

  • 1) 赛题理解究竟是理解什么: 理解赛题是不是把一道赛题的背景介绍读一遍就OK了呢?并不是的,理解赛题其实也是从直观上梳理问题,分析问题是否可行的方法,有多少可行度,赛题做的价值大不大,理清一道赛题要从背后的赛题背景引发的赛题任务理解其中的任务逻辑,可能对于赛题有意义的外在数据有哪些,并对于赛题数据有一个初步了解,知道现在和任务的相关数据有哪些,其中数据之间的关联逻辑是什么样的。 对于不同的问题,在处理方式上的差异是很大的。如果用简短的话来说,并且在比赛的角度或者做工程的角度,就是该赛题符合的问题是什么问题,大概要去用哪些指标,哪些指标是否会做到线上线下的一致性,是否有效的利于我们进一步的探索更高线上分数的线下验证方法,在业务上,你是否对很多原始特征有很深刻的了解,并且可以通过EDA来寻求他们直接的关系,最后构造出满意的特征。

  • 2) 有了赛题理解后能做什么: 在对于赛题有了一定的了解后,分析清楚了问题的类型性质和对于数据理解的这一基础上,是不是赛题理解就做完了呢? 并不是的,就像摸清了敌情后,我们至少就要有一些相应的理解分析,比如这题的难点可能在哪里,关键点可能在哪里,哪些地方可以挖掘更好的特征,用什么样得线下验证方式更为稳定,出现了过拟合或者其他问题,估摸可以用什么方法去解决这些问题,哪些数据是可靠的,哪些数据是需要精密的处理的,哪部分数据应该是关键数据(背景的业务逻辑下,比如CTR的题,一个寻常顾客大体会有怎么样的购买行为逻辑规律,或者风电那种题,如果机组比较邻近,相关一些风速,转速特征是否会很近似)。这时是在一个宏观的大体下分析的,有助于摸清整个题的思路脉络,以及后续的分析方向。

  • 3) 赛题理解的-评价指标: 为什么要把这部分单独拿出来呢,因为这部分会涉及后续模型预测中两个很重要的问题: 1. 本地模型的验证方式,很多情况下,线上验证是有一定的时间和次数限制的,所以在比赛中构建一个合理的本地的验证集和验证的评价指标是很关键的步骤,能有效的节省很多时间。 2. 不同的指标对于同样的预测结果是具有误差敏感的差异性的,比如AUC,logloss, MAE,RSME,或者一些特定的评价函数。是会有很大可能会影响后续一些预测的侧重点。

  • 4) 赛题背景中可能潜在隐藏的条件: 其实赛题中有些说明是很有利益-都可以在后续答辩中以及问题思考中所体现出来的,比如高效性要求,比如对于数据异常的识别处理,比如工序流程的差异性,比如模型运行的时间,比模型的鲁棒性,有些的意识是可以贯穿问题思考,特征,模型以及后续处理的,也有些会对于特征构建或者选择模型上有很大益处,反过来如果在模型预测效果不好,其实有时也要反过来思考,是不是赛题背景有没有哪方面理解不清晰或者什么其中的问题没考虑到。