记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

点击上方关注,All in AI中国

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

Kaggle隶属于谷歌,它是数据科学和机器学习从业者的一个在线社区。换句话说,那是一个数据科学之家,为开发商和数据科学家提供举办机器学习竞赛、托管数据库、编写和分享代码的平台。我参加了本次比赛,但它们并不是为初学者设计的。我的意思是作为初学者,我不希望看到我无法执行或解释的可视化,我只需要用简单的词语来理解发生了什么。

但我终于做到了。这篇文章没有不必要的代码行或可视化,只是一次直接提交的路径。

请记住,砖墙在那里是有原因的。砖墙不是要挡住我们。砖墙是要给我们机会说明我们有多迫切的想得到。因为砖墙是要阻挡那些不诚心的人,那些其他人。
 ——Randy Pausch

第0步 - 第一件事

为了开始使用Kaggle教程,你需要做两件事。主要是,前往这个链接,并注册一个自己的Kaggle帐户。之后,通过此链接加入Kaggle Titanic比赛。完成了吗?那接下来,让我们开始做一些实际的工作。

第1步 - 了解您的数据

一旦您报名参加比赛,您就可以在比赛的主页上找到数据。为了加载和执行非常基本的数据操作,我使用的是python中的数据操作库——Pandas。如果你不是很清楚它,我建议你去看一下这个10分钟的指南。(https://pandas.pydata.org/pandas-docs/stable/10min.html)

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

在机器学习中,数据主要分为两部分 - 训练和测试(第三部分是验证,但你目前还不必关心它)。训练数据用于训练我们的算法,测试数据用于检查算法的执行情况。训练和测试数据之间的分流比通常在70-30左右。这里总共有891个训练条目和417个测试条目。通过写入加载数据将为您提供12列,如下所示。我们称之为特征,这没什么新鲜的,只是一个名字。我鼓励您在继续接下来的步骤之前至少查看一次这些数据。

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

此外,了解每个特征的数据类型也很重要。现在我们已经加载了数据并了解了它的外观,接下来我们将继续讨论特征工程。换句话说,衡量每个特征对我们输出的影响,即乘客是否幸存。

第2步 - 特征工程

正如我们所讨论的,特征工程正在测量每个特征对输出的影响。但更重要的是,它不仅仅是使用现有的特征,而且创建可以显著提高产量的新特征。吴恩达表示,“特征工程不仅操作很困难、耗时,且需要专业领域的知识。应用机器学习基本上是特征工程。“我们将详细介绍使用的每个特征,以便您可以了解如何使用现有特征以及如何创建一个新特性。

2.1 - 乘客类别

很明显,乘客的类别与生存率成正比。如果一个人的重要性高于其他人,他们将首先摆脱灾难。我们的数据也讲述了同样的事情。 63%的人会从1级幸存下来。因此,这个特性肯定是有影响力的。 Pclass列中的数据是完整的,因此无需操作。

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

2.2 - 性别

性别同样很重要,与生存率也成正比。在这场悲剧中,是女性和儿童首先得救。我们可以看到,74%的女性得救,18%的男性得救。同样,这将再次影响我们的结果。

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

特征2输出

2.3 - 家庭规模

接下来的两列是SibSp和Parch,它们与一个人是否存活没有直接关系。这就是创建新特征的由来。对于每一排/乘客,我们将通过添加SibSp + Parch + 1(他/她自己)来确定他/她的家庭规模。家庭规模从最小1到最大的11不等,其中家庭规模为4的存活率最高,为72%。

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

它似乎对我们的预测产生了很好的影响,但让我们进一步对人们进行分类,看看他们是否独自在这艘船上。在仔细研究之后,它似乎对我们的产量产生了相当大的影响。

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

2.4 - 出发地

乘客从哪个地方出发与生存有关(并非总是如此)。那么,我们来看看吧。在本专栏中,有大量NA。为了解决这个问题,我们将用'S'替换NAs,因为它是最常见的值。

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

特征4输出

2.5 - 票价

此列中也缺少数据。我们不能以同样的方式处理每个特征。要解决此问题,我们将采用整列的中值。当您使用qcut切割时,将选择相应的容器,以便您在每个容器中具有相同数量的记录(相等的部分)。从产出来看,这是相当可观的。

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

特征5输出

2.6 - 年龄

年龄有一些缺失值。我们将用(平均年龄减去平均标准差)和(平均年龄加平均标准差)之间的随机数填充它。在那之后,我们将它分为5组。它也有很好的影响。

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

特征6输出

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

2.7 - 名称

这个有点棘手。从名称中,我们必须检索与该名称相关联的标题,即Mr或Captain。为此,我们必须使用Python的正则表达式库(正则表达式操作方法)。首先,我们从名称中获取标题,并将它们存储在名为title的新列表中。之后,让我们通过缩小到常用标题来清理列表。

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

就是这样,我们已经清理了我们的特征,现在可以使用了。然而;在我们将数据提供给ML算法之前还有一步。关于ML算法的特点是它们只取数值而不是字符串。因此,我们必须将数据映射到数值并将列转换为整数数据类型。

第3步 - 映射数据

映射数据很容易。通过查看代码,您将了解它是如何工作的。完成后,现在我们必须选择要使用的特征。特征选择与特征创建同样重要。我们将删除不必要的列,这样就不会影响我们的最终结果。

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

我们将提供给ML算法的最终数据

这就对了。你已经完成了最难的部分。看看你的数据,它看起来很漂亮。现在,我们只需要预测我们的结果,这很容易。或者至少我会让你更容易理解。

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

第4步 - 预测

正如我们所讨论的,我们需要训练和测试数据。现在我们需要训练我们的模型。为此,我们需要提供两部分数据——X和Y。

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

为了进一步阐述,需要告诉我们的模型我们正在寻找这个输出。然后,它就会训练这种方式。例如,你的朋友外出购物,而你正好想要一个护目镜,于是,你发送护目镜照片给你的朋友说你想要。这就是训练,你正在训练他/她,所以他可以通过解释特征(飞行员,Wayfarers)并提供确切的输出(护目镜图片)来带来类似的护目镜。

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

我们将数据分离,现在我们称之为分类器,在scikit-learn库的.fit方法的帮助下拟合数据(训练),并使用.predict方法预测测试数据的输出。

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

注意 - 由于本教程适用于初学者,所以,不包括其他分类器,但过程是保持不变的。调用分类器、拟合数据、预测。以防您想进一步探索。还有其他几个分类器,但我使用了决策树,因为据我所知,它最适合这个数据集。

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

第5步 - 您的第一次提交

最后,提交我们的输出。我们的输出.csv文件应该只有两列 - 乘客 Id和存活率 - 如竞争页面中所述。通过前往竞赛页面创建并提交,我的提交得分为0.79425,在撰写本文时排名前25%。

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

我鼓励您探索不同的特征,以提高您的模型准确性和您在此竞赛中的排名。您可以在我的GitHub存储库中找到整个完整的代码。

传送门:https://github.com/Dhrumilcse/Surviving-from-the-Titanic

尾注

我希望这篇文章已经回答了你的主要问题“如何从Kaggle开始?”你需要充足的知识、良好的资源和学习新事物的意愿。你不必从一开始就掌握一切,这一切都伴随着持久性。如果您正在阅读本文,那么您将拥有实现目标的所有精力,无论如何都不要停止。

来源:https://towardsdatascience.com/your-first-kaggle-competition-submission-64da366e48cb

记我的一次Kaggle实操:预测谁在泰坦尼克号灾难中幸存下来?

相关推荐