Kaggle分类问题Titanic——Machine Learning from Disaster

这篇具有很好参考价值的文章主要介绍了Kaggle分类问题Titanic——Machine Learning from Disaster。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

这是我在大三选修课的课程设计,内容参考了Kaggle上高赞的代码,有详细批注,整体比较基础,结构相对完整,便于初学者学习。这个是一个分类问题,我的另外一篇博客《Kaggle回归问题Mercedes——Benz Greener Manufacturing》介绍了回归问题。除此之外我的《电商评论文本挖掘》也是我当年的课程设计,也有详细的批注,相比这个难度会稍微高些。

1 题目介绍

题目背景:在1912年4月15日,当时世界最豪华的游艇,泰坦尼克号撞到冰山沉入海底,其中船上2224位乘客中的1502位死在了此次事故中。在幸存者中,尽管有一些是来自于幸运,但是大部分幸存着是来自于女人、小孩还有一些贵族。而我们的任务就是通过机器学习,计算出人们幸存的概率。

数据介绍:

变量 含义 备注
survival 存活情况 0为没有存活;1位存活
pclass 船舱地址 1为最好;2为中等;3为最差
sex 性别
age 年龄
sibsp 同行的配偶或兄妹数量
parch 同行的父母或孩子数量
ticket 票号
fare 船票价格
cabin 船仓号
embarked 登船港口 C为Cherbourg;Q为Queen Stown;S为Southampton

2 数据清洗

1)首先对所有数据进行整体概览。
Kaggle分类问题Titanic——Machine Learning from Disaster,机器学习,机器学习,分类,数据挖掘,python,scikit-learn
2)观察空值情况,发现需要处理Age与Cabin。
Kaggle分类问题Titanic——Machine Learning from Disaster,机器学习,机器学习,分类,数据挖掘,python,scikit-learn
3)填补缺失值,对Age使用中位数填补,对Cabin船舱号使用众数填补,对Fare使用中位数填补。
Kaggle分类问题Titanic——Machine Learning from Disaster,机器学习,机器学习,分类,数据挖掘,python,scikit-learn
4)由于乘客ID是从1按顺序增加,与其他变量没有相关性;船舱有太多缺失;票号有纯数字,有字母加数字,而且全是不同的,无法使用。对这三列进行删除。
Kaggle分类问题Titanic——Machine Learning from Disaster,机器学习,机器学习,分类,数据挖掘,python,scikit-learn
5)对数据列进行进一步出列,将SibSp陪同的配偶、兄妹数量和Parch陪同的父母孩子数量混合,合并为FamilySize家庭人数;根据FamilySize可以进一步划分出IsAlone是否独自一人乘船(1为独自,0为非独自);因为英语中一个人的称谓能反应出一些人的年龄、性别或者地位,所以单独将对人名的称谓划分出来;根据票价的大小进行等频率切割,以便之后处理;根据年龄的大小进行按值切割,以便后续处理。
Kaggle分类问题Titanic——Machine Learning from Disaster,机器学习,机器学习,分类,数据挖掘,python,scikit-learn
6)根据观察,发现有一些特别、无实际意义的称谓,对他们进行统一处理,变为Misc。
Kaggle分类问题Titanic——Machine Learning from Disaster,机器学习,机器学习,分类,数据挖掘,python,scikit-learn
7)对数据中的str类变量,利用LabelEncoder,对标签进行编码,转为数字。
Kaggle分类问题Titanic——Machine Learning from Disaster,机器学习,机器学习,分类,数据挖掘,python,scikit-learn
8)经过上面的处理完成了对数据的清洗,下图为原始,与分箱操作的变量名。
Kaggle分类问题Titanic——Machine Learning from Disaster,机器学习,机器学习,分类,数据挖掘,python,scikit-learn

3 数据可视化分析

1)对Fare、Age、FamilySize绘制boxplot,可以观察到,票价花费大部分集中在两位数,购买头等舱的并不是很多;年龄大部分集中在28左右,有少部分的婴儿和老人,家庭成员数量普遍为1到2个,也有很多人是独自乘船。
Kaggle分类问题Titanic——Machine Learning from Disaster,机器学习,机器学习,分类,数据挖掘,python,scikit-learn
2)利用hist绘制票价花费、年龄分布、家庭成员数量的存活数,可以发现票价越低,死亡人数相对越多;年龄越高或者越低存活概率越高;家庭成员数量在2到5个的存活概率越高。
Kaggle分类问题Titanic——Machine Learning from Disaster,机器学习,机器学习,分类,数据挖掘,python,scikit-learn
3)利用barplot绘制港口、船舱等级、是否独自一人的幸存率,可以发现,C港口登船的相对存活率最大,头等舱的存活率更大,有同行的人的存活率更大。
Kaggle分类问题Titanic——Machine Learning from Disaster,机器学习,机器学习,分类,数据挖掘,python,scikit-learn
4)利用pointplot绘制票价等级、年龄分布、家庭人数的幸存率,可以发现票价越高存活率越大,16岁以下的孩子与48到64岁间的人存活率更大,家庭成员数量为4的存活率最大。
Kaggle分类问题Titanic——Machine Learning from Disaster,机器学习,机器学习,分类,数据挖掘,python,scikit-learn
5)利用boxplot與violinplot绘制船舱等级与票价花费、与是否幸存,船舱等级与年龄分布、与是否幸存,船舱等级与年龄分布、与是否幸存,可以发现进一步的关系。
Kaggle分类问题Titanic——Machine Learning from Disaster,机器学习,机器学习,分类,数据挖掘,python,scikit-learn
6)利用kdeplot绘制年龄与幸存的核密度图,可以发现婴儿比起老人存活的概率更大,没有幸存下来的主要在30岁左右。
Kaggle分类问题Titanic——Machine Learning from Disaster,机器学习,机器学习,分类,数据挖掘,python,scikit-learn
7)利用pairplot,绘制各个属性的关系图,对角线上是各个属性的核密度图,而非对角线上是两个不同属性之间的相关图。
Kaggle分类问题Titanic——Machine Learning from Disaster,机器学习,机器学习,分类,数据挖掘,python,scikit-learn

4 模型训练

根据如下常用算法模型,进行一一对比选择。
Kaggle分类问题Titanic——Machine Learning from Disaster,机器学习,机器学习,分类,数据挖掘,python,scikit-learn
根据ShuffeSplit进行交叉验证数据分割,之后根据cross_validate分别计算出训练集正确率、测试集正确率、标准差。
Kaggle分类问题Titanic——Machine Learning from Disaster,机器学习,机器学习,分类,数据挖掘,python,scikit-learn
Kaggle分类问题Titanic——Machine Learning from Disaster,机器学习,机器学习,分类,数据挖掘,python,scikit-learn
根据训练集正确率对结果进行排序,可以看到SVC的效果最好。
Kaggle分类问题Titanic——Machine Learning from Disaster,机器学习,机器学习,分类,数据挖掘,python,scikit-learn
对正确率进行可视化。
Kaggle分类问题Titanic——Machine Learning from Disaster,机器学习,机器学习,分类,数据挖掘,python,scikit-learn
之后也可以利用VotingClassifier进一步根据多模型“投票”来获得结果,VotingClassifier分为软投票与硬投票,硬投票是指直接根据少数服从多数,软投票是指根据权重进行投票,需要用到predict_proda。根据结果,发现利用软投票效果也还不错,不过时间的代价也比较巨大。
Kaggle分类问题Titanic——Machine Learning from Disaster,机器学习,机器学习,分类,数据挖掘,python,scikit-learn
Kaggle分类问题Titanic——Machine Learning from Disaster,机器学习,机器学习,分类,数据挖掘,python,scikit-learn

5 源码

为了更好的观看效果,我将源码放在了Github上,如有帮助,希望点个星星支持一下,感谢。文章来源地址https://www.toymoban.com/news/detail-667856.html

到了这里,关于Kaggle分类问题Titanic——Machine Learning from Disaster的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器学习(Machine Learning)

    bili 吴恩达 机器学习 这是一门让计算机在没有明确编程的情况下学习的科学。 亚瑟·塞缪尔(1959):赋予计算机学习能力而不被明确编程的研究领域。 机器学习作为人工智能的一个子领域。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已

    2024年02月09日
    浏览(39)
  • [machine Learning]强化学习

    强化学习和前面提到的几种预测模型都不一样,reinforcement learning更多时候使用在控制一些东西上,在算法的本质上很接近我们曾经学过的DFS求最短路径. 强化学习经常用在一些游戏ai的训练,以及一些比如火星登陆器,月球登陆器等等工程领域,强化学习的内容很简单,本质就是获取

    2024年02月09日
    浏览(33)
  • 【Machine Learning】Other Stuff

    本笔记基于清华大学《机器学习》的课程讲义中有关机器学习的此前未提到的部分,基本为笔者在考试前一两天所作的Cheat Sheet。内容较多,并不详细,主要作为复习和记忆的资料。 max ⁡ δ ∈ Δ L o s s ( f θ ( x + δ ) , y ) max_{deltain Delta}Loss(f_theta(x+delta),y) max δ ∈ Δ ​ L

    2024年01月20日
    浏览(31)
  • [Machine Learning] 损失函数和优化过程

    在统计学习的框架中,我们通常试图找到一个函数或概念,这个函数可以很好地解释或拟合给定的数据。这通常通过最小化某种风险或损失来实现。为了找到一个好的模型,我们尝试在预定义的假设空间 H H H 中找到一个函数,该函数在训练数据上的经验风险 (Empirical Risk) 最小

    2024年02月12日
    浏览(33)
  • [Machine Learning] 领域适应和迁移学习

    在机器学习中,我们的目标是找到一个假设或模型,它可以很好地描述或预测数据。当我们基于训练集训练模型时,我们的目的是让模型能够捕获到数据中的主要模式。然而,为了确保模型不仅仅是对训练数据进行记忆,而是真正理解了数据的结构,我们需要在测试集上评估

    2024年02月08日
    浏览(38)
  • [FL]Adversarial Machine Learning (1)

    Reading Alleviates Anxiety [Simba的阅读障碍治疗计划:#1] Reading Notes for (NIST AI 100-2e2023)[https://csrc.nist.gov/pubs/ai/100/2/e2023/final]. A Taxonomy and Terminology of Attacks and Mitigations There are two broad classes of AI systems, based on their capabilities: Predictive AI (PredAI) and Generative AI (GenAI). However, despite the signifcan

    2024年02月02日
    浏览(29)
  • 深度学习笔记(kaggle课程《Intro to Deep Learning》)

    深度学习是一种机器学习方法,通过构建和训练深层神经网络来处理和理解数据。它模仿人脑神经系统的工作方式,通过多层次的神经网络结构来学习和提取数据的特征。深度学习在图像识别、语音识别、自然语言处理等领域取得了重大突破,并被广泛应用于人工智能技术中

    2024年02月13日
    浏览(34)
  • [Machine Learning] decision tree 决策树

    (为了节约时间,后面关于机器学习和有关内容哦就是用中文进行书写了,如果有需要的话,我在目前手头项目交工以后,用英文重写一遍) (祝,本文同时用于比赛学习笔记和机器学习基础课程) 俺前两天参加了一个ai类的比赛,其中用到了一种名为baseline的模型来进行一

    2024年02月11日
    浏览(35)
  • Azure Machine Learning - 视频AI技术

    Azure AI 视频索引器是构建在 Azure 媒体服务和 Azure AI 服务(如人脸检测、翻译器、Azure AI 视觉和语音)基础之上的一个云应用程序,是 Azure AI 服务的一部分。 有了 Azure 视频索引器,就可以使用 Azure AI 视频索引器视频和音频模型从视频中提取见解。 Azure AI 视频索引器通过运行

    2024年01月20日
    浏览(42)
  • 【Machine Learning 系列】一文带你详解什么是强化学习(Reinforcement Learning)

    机器学习主要分为三类:有监督学习、无监督学习和强化学习。在本文中,我们将介绍强化学习(Reinforcement Learning)的原理、常见算法和应用领域。 强化学习(Reinforcement Learning)是机器学习中一种重要的学习范式,其目标是通过与环境的交互来学习如何做出最优的决策。 强化

    2024年02月14日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包