哈喽大家好,我是篱笆的Rain老师,也是一名数据科学家。今天我要教大家如何一步步上手
第一个Kaggle data science项目。那么很多刚刚涉入data science领域的同学都会面临一个问题就是手头上没有data,data science没有data那还怎么science。那么Kaggle就是能够帮助我们解决这个问题,因为它是世界上最大的AI以及ML的社区之一,上面就提供了大量的data science相关的资源,其中就包括各种各样高质量的数据集,那么下面我会为大家一步步的讲解。
首先第一步呢我们需要选择数据集,我们有两种途径可以去找到一个我们想要的数据集。第一个是通过competition,第二个是直接进入到data sets这个界面进行寻找。那么这两个的入口我们都可以在Kaggle的网站首页上直接找到这如图上所示的那样。那么competition它是Kaggle上就是说会有很多实时进行的竞赛,他们一般都会要求你用了ML或者AI的model去实现一个目标,那么很多也会提供一定的奖金。感兴趣的同学可以就是直接以赛代练报名参加,并且争取在提供的数据集上取得不错的成绩。
那么Kaggle也为新手们推荐了一些非常基础、适合入门的竞赛一些数据集。比如像图上所示的一个就是Titanic数据集而DS的界面则是囊括了Kaggle上所有的数据集,我们呢可以根据一些条件来搜索,比如说像感兴趣的数据集的类别,像金融、医学、游戏或者体育;或者说我们想做的任务的类型,像回归、分类、NLP或者CV。也可以直接从一些热门的数据集当中进行选择,像图上有一个trending datasets的这样一个栏目。
那么第二步,我们需要初步探索这个数据集。因为在我们初步选定了这个数据集之后,我们需要更进一步的搜集关于这个数据集的一些信息来确保它的数据就是我们可靠的以及有效的。最简单直接方法就是直接点进去这个数据值的界面进行查看,但是在这个过程中我们需要额外关注以下几点的信息:
首先是数据值的简介,这个可以在data card-about datasets这个栏当中找到。第二个数据值的大小。因为大部分的数据集它会告诉你它有多少的特征,也就是多少列也会显示包含了多少的样本,也就是多少行。那么有的数据集它包含了多个的数据文件,我们需要进行查看。数据集它太大或者太小,其实对于新手来说都不太友好。
那么第三个是数据的一个类型,我会推荐选择数据类型比较多样的,这样就会有助于初学者进行锻炼以及熟悉不同的数据类型。那么像图中这个例子就是有16个行,它就包括了像整数啊字符串啊以及福点数这样不同的数据类型。最后我们需要关注这个数据值的一些关键特征,那么在这个界面中会有个窗口,它显示的这个数据值的所有数据就是我们下载Excel这个表格后拿到的真实数据。我们可以在这个窗口中浏览一下这个几个关键的特征数据,他长得什么样,他们是做什么的,尤其关注目标特征,也就是我们需要预测的那一类数据。
我们接下来第三步是要下载以及处理数据。因为在我们初步探索完数据之后我们可以直接点击这个页面上的download标签下载这个数据集,它会以Excel的方式下载到本地,然后我们就开始编程进行data Processing。那么我会推荐Python这个pandas library作为一个基础的工具包,其实data Processing它包含了一套完整的pipeline,那么这边我就列举几个常见的步骤,像missing values analysis,像data encoding以及scaling,像Feature selection、feature engineering以及data splitting。
那么接下来就是训练以及评估我们的model,我们需要根据项目的一个target,比如说它是classification还是regression,还是其他来选择对应的model在训练集上进行训练,并且在测试集上评估模型的表现,我们并且需要争取不断的优化这个对应的metric。那么到此为止我们已经走完了一个Kaggle data项目的基本流程,实现了用我们ML的model对于这个数据target的一个预测。
但想要更进一步呢我们还有这些步骤去需要完成,首先是data visualization。我们可以利用plotly这样的library对我们的数据或者model的表现进行绘图,这样用可视化的方式。能够更加直观的呈现我们所做的工作。此外呢还有the model deployment,也就是说我们可以将最终模型保存上传到云端或者服务器上,简单建一个简易的网站来部署它,这样就可以实现对live data的一个处理及预测,那么这个步骤其实会比较麻烦一些,因为它会要求一些前后端开发的能力。
此外我们可以将代码整理上传到gitub上,并且写一个read me the file来总结所做的工作,这也是一个非常良好