干货来了!菜鸟入门最经典的机器学习项目,面试必考!

8个可落地的机器学习小项目:从数据到部署的完整实践指南 机器学习不是黑箱算法竞赛,而是面向真实场景的工程化能力——从数据获取、特征工程、轻量建模到边缘部署。本文聚焦‘最小可行成长单元’,围绕scikit-learn、pandas、OpenCV等轻量工具链,解决外卖销量预测、文档矫正OCR、邮件自动分类、健身动作评分等典型任务。强调脏数据容错、CPU友好型模型选型、规则与ML融合等实战原则,覆盖时序预测、中文NLP、图像几何分析、异常检测四大技术方向,专为刚掌握Python基础与sklearn入门者设计,无需GPU,一台笔记本即可跑通端到端闭环。 阅读详情

今天小编带领大家完整的走完一个简单机器学习小的实战项目,这个项目是Kaggle上的经典项目《泰坦尼克号之灾》,也是面试经常考的项目。大家对于泰坦尼克号一定不会陌生,但是不知道大家想过没有,泰坦尼克号上生还的都是哪些人,他们都有什么样的特征呢?

今天小编将从以下的几个点进行分析:

  • 对于数据的认知

  • 特征工程

  • 进行模型的构建


1

对于数据认知

首先为什么要讲数据的认知,只有对数据进行充分的了解,你才能从大量的冰冷的数据中发现潜在的规律;只有对数据进行充分的认识,你才能从数据中提取有价值的信息。没有对于数据的了解,其他的都是空谈。那么我们首先来看一下,我们所要处理的数据吧。

数据一共有12个维度,也就是12个特征,分别对应如下:

PassengerId => 乘客的ID

Survived=> 乘客是否存活

Pclass => 乘客的等级(1/2/3等舱位)

Name => 乘客姓名

Sex => 性别

Age => 年龄

SibSp => 堂兄弟/妹个数

Parch => 父母与小孩个数

Ticket => 船票信息

Fare => 船票的价格

Cabin => 船舱号

Embarked => 登船港口

其中Survived变量是我们需要求的变量。数据中像是Sex、Embarked属于类目型数据,数值类型的数据有:Age,Fare,SibSphe Parch。

2

从数据分布中获取信息

从数据的分布信息中,我们可以得到一些统计信息,帮助我们更快的对数据集有一个整体的理解。

从上面的表格中,我们可以知道训练样本集中包含样本891例,891例中最终幸存的概率是38.4%左右;,二等舱和三等舱的人要多于一等舱的人;乘客的平均年龄为29.7岁左右;有超过75%的人没有与父母或者是子女一起登上泰坦尼克号。

乘客中男性的比例为577/891=65%;客舱(cabin)中存在重复项,也就是说存在乘客共用一个客舱;从‘S’口登船的乘客比例是最高的。

3

特征关联分析

接下来,我们将分析“Survived”与其他特征属性之间可能存在的关联,帮助我们进一步对数据进行分析。

1).首先我们来看一下乘客的等级、性别、Parch和SibSp与生存率的关系

从Pclass与生存率的关系来看,乘客等级越高,存活的几率也是越大的,所以有钱有地位到什么时候都是很重要的。从性别来看,女性的存活几率达到了74%,明显的高于男性,看来国外对于女士优先做的不错。而性别特征也是一个很重要的特征。从Parch和SibSp中我们无法直接获取到相关的内在联系,所以我们可以将这两个特征提取成一个特征。

2).接下来我们要针对于年龄这个特征来进行分析,看看“尊老爱幼”这个设想是否能够在这个事件中成立。

从上图中可以看出,年龄小于四岁的具有很高的存活几率,最高的幸存者年龄达到了80岁;同时年龄在15到25之间的人大都没有能够存活。所以针对于年龄因素,我们可以将其按照年龄进行分组,将年龄特征进行离散化处理,同时注意年龄确实数据的填补。



4

进行特征组合分析

通过不同特征之间的组合,创造出更具有表现力的特征。

1).首先来看一下年龄和乘客等级的组合对于存活率的影响。

从上图可以发掘的信息有等级为3的乘客数量最多,但是大部分却都没能够存活;等级为2和3中的婴幼儿乘客大部分存活了下来;而等级为1的乘客绝大部分都得以存活下来;不同等级的乘客间年龄分布不相同。上述的分析佐证了我们之前的分析。

2).继续探索一下登船口,与乘客等级以及性别对存活率的影响

从上图我们可以提取到的信息有女性乘客在整体上的存活率要高于男性;在Q口登船的等级为3的男性比等级为2的男性具有更高的生存率。因此登船口特征也需要进行缺失值填充并加入到训练模型中。

5

特征工程

通过前面的几个步骤,我们已经对感兴趣的属性也有个大概的了解了。下一步我们就该处理这些数据,为机器学习的建模做准备。特征工程对于一个项目来说非常重要,从某种程度上来说,它比机器学习模型还要重要。


1).增添和删除特征

首先,针对于最原始的数据,我们需要把对最终建模没有帮助或者是数据确实比较严重的特征进行删除,这里,我们将'Ticket'和'Cabin'两个特征进行删除。需要注意的是,特征工程需要在训练集和测试集上进行一样的操作。

2).从数据分析中得到的结果

重新组合新的特征来增加特征维度。这里,我们将乘客的名字,进行重新组合,因为名字也是一个维度特征,其包含Master、Miss、Mr等代表身份性别的信息。我们按照其名字中的关键字,对数据集添加新的特征‘Title’,并删除训练集的‘Name’和‘PassengerId’特征,以及测试集中的‘Name’特征,处理完成后的训练集如下所示:

3).合并特征和特征因子化

由于机器学习的模型大都是针对与数值型特征进行处理,所以我们需要将类目型或者字符型特征转化为数值型特征,然后根据前面的数据分析,来判断是否将数值进行离散化或者是将数据进行合并。

根据前面的分析,我们可以将年龄特征进行离散化,而年龄特征中存在缺失数据,因此需要对缺失的数据进行填充。一般对于连续数值型特征有三种填充方式。

  • 根据已知的数据,计算出均值和标准差,然后根据均值和标准差产生随机数据进行填充

  • 根据缺失数值的特征跟其他特征之间的关系,进行分类,然后根据分类特征的中位数进行填充,例如,我们以年龄、性别和Pclass为相关性特征,使用Pclass、Sex的组合数据来推测年龄。

  • 结合前面的两种方法。因此,不需要基于中位数猜测年龄值,而应根据Pclass和Sex组合的集合在均值和标准差之间产生随机数来进行填充。

这里我们采用第二种方法对年龄特征中的缺失数据进行填充。

4).然后处理填充之后的年龄特征

根据年龄大小切分成5等分,并根据年龄的分布范围,对其进行编码,增加‘AgeBand’特征。对于票价‘Fare’特征,同样也按照年龄特征的处理方式进行处理。

对于‘Parch’和‘SibSp’特征,按照我们前面所介绍的那样,将其合并为一个单独的特征,命名为‘FamilySize’。然后根据‘FamilySize’的数值是否为‘0’,增加特征‘IsAlone’。

如果‘FamilySize’数值大于0,那么‘IsAlone’就为0,否则‘IsAlone’特征就为1。对于‘Sex’和‘Embarked’特征,我们对其进行特征因子化处理,也即根据其特征数值将其转化为数字。

最终数据集如下所示:

traindata:

testdata:

数据处理完毕,接下来我们就用二分类问题中常见的逻辑回归算法来处理数据,我们首先用训练集来训练sklearn中的LogisticRegression模型,然后在针对测试集进行预测:

我们将预测的结果提交到kaggle官网上进行评测,看一下

结果还算理想,毕竟只是一个简单的baseline模型。后续如果大家想继续调优的话,可以从数据入手,继续挖掘数据本身的潜在特征,结合特征工程,重新处理特征或者组合特征,也可以从模型入手,进行模型的调优,或者是采取模型融合的方式,进一步提高正确率。

以上就是小编为大家带来的机器学习实战 ,希望大家能够有所收获。觉得对你有用,欢迎吱一声,捧个场!

趣味游戏文章:

太好玩了!用Python写个弹球游戏2.0

巧妙的Python数据结构玩法|实战德州扑克

手把手教你,菜鸟也能用Python写一个2048游戏

用Python做个美少女大战小怪兽

强烈推荐,用Python轻松打造定制款《植物大战僵尸》

Python心得和技巧:

零基础学了8个月的Python,到底有啥感悟

我珍藏的一些好的Python代码,技巧

菜鸟写Python程序,如何从新手变老手

菜鸟必收藏,13个Python惯用小技巧

23个经典机器学习实战项目汇总,适合初学者练手 项目构想:客户细分是一种根据客户的购买历史,性别,年龄,兴趣等对客户进行细分的技术。这是一个出色的项目,将改善孩子们的学习过程。对于这个初学者的项目,我们将使用泰坦尼克号数据集,其中包含幸存者和在泰坦尼克号飞船中死亡的人的真实数据。项目构想:该ML项目背后的构想是建立一个模型,该模型将对用户可以贷款多少进行分类。项目构想:该python机器学习项目的思想是开发一个机器学习项目,并自动对音频中的不同音乐流派进行分类。项目构想:协作过滤是一项很棒的技术,可根据相似用户的反应来过滤出用户可能喜欢的项目。 阅读详情

相关推荐

人脸识别项目代码.rar

人脸识别项目代码,可以直接使用,对人脸进行识别,如有需要,请大家下载!

42个机器学习练手项目

从个性化推送(今日头条)、自拍美颜、自动翻译,到无人驾驶、图像识别等诸多领域……人工智能已经渗透进我们生活的方方面面,人工智能背后的机器学习和深度学习技术,也成为了“高薪”的代名词。 那么,普通程序员如何踏入AI的浪潮,站上时代薪资顶端呢? 今天,我们带来了 44 个机器学习的练手项目,分为「入门知识」、「基础课程」、「基础应用」、「综合应用」、「系统进阶」5个模块,层层递进,帮助你系统地入门...

hellozhxy的博客 2万+

抖音自定义卡片链接(图文链接)

抖音自定义可以自定义标题,打开链接,和展示图片 效果 主要代码 public void sendMessage(String conversationId, Object aBaseContent) throws Exception { // C233282u5.LIZIZ.LIZ().LIZIZ(LIZ).LIZ(obtain).LIZ(hLn).LIZ((AbstractC59811HHc) new H9Q()); Object HOa = ReflectionUtil

傅恒的博客 4141

最适合初学者的21个机器学习项目,附实战代码+数据集

大家好,平时大家看机器学习视频教程或者书籍时,是不是总有一种自己已经精通的感觉,但当你尝试去应用它时,可能会发现它比看起来更难。而「项目」可帮助你快速提高应用技巧,同时让你有机会探索有趣的主题。我会给大家介绍21个机器学习项目,包括面向新手的初级项目、面向专业人士的中级和高级项目。此外,你可以将项目添加到你的投资组合中,从而更轻松地找到工作,找到更多的职业机会,甚至协商更高的薪水。MNIST数字分类机器学习项目。使用机器学习的电影推荐系统。音乐流派分类机器学习项目。语音情感识别机器学习项目。

gu1857035894的博客 6092

BUCK降压斩波电路设计实战:从IGBT选型到续流二极管优化

本文详细解析了BUCK降压斩波电路的设计实战,从IGBT选型到续流二极管优化,涵盖了关键参数设计、调试技巧及电磁兼容问题解决方案。通过实际案例和数据对比,帮助工程师高效完成DC-DC转换电路设计,提升系统性能和可靠性。

weixin_29253711的博客 96

从TCGA官网获取新版count数据并精准转换为TPM的实战指南

本文详细介绍了从TCGA官网获取新版count数据并精准转换为TPM的实战指南。通过TCGAbiolinks工具下载原始count数据,结合GENCODE v36注释文件计算基因有效长度,最终实现count到TPM的标准化转换,确保数据完整性和分析可靠性。文章包含完整代码示例和常见问题解决方案,特别适合生物信息学研究人员参考。

weixin_27310417的博客 284

机器学习项目入门篇:一个完整的机器学习项目

本部分,我们会作为被一家地产公司雇佣的数据科学家,完整地学习一个项目。下面是主要步骤: 项目概述。 获取数据。 发现并可视化数据,发现规律。 为机器学习算法准备数据。 选择模型,进行训练。 微调模型。 给出解决方案。 部署、监控、维护系统。 一、项目概述 任务是利用加州普查数据,建立一个加州房价模型。这个数据包含每个分区组的人口、收入中位数、房价中位数等指标。分区组是美国调查局发...

qq_36086861的博客 2万+

需要Perfetto分析的anr

anr类的问题,经常会有系统cpu,内存负载不高,iowait也不高,主线程状正常的,这类问题通过常规的日志无法分析,需要抓取Perfetto来分析应用的情况。event log中也没有异常。

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 63

百度面试两板斧:手写算法问基础

阅读本文大概需要 4 分钟。 作者:黄小斜 17年7月份,我参加了百度的实习生面试,随后在百度开始了半年的实习生活,18年7月份,我参加了百度的校招提前批面试,由于可以同时参加百度多个部门的提前批面试,结果我前前后后面试了10多次,也算是一段比较奇葩的经历了。 当然,实习生面试是这里面最简单的一次了,三轮面试,前两轮都是在问基础,问的也不深入,第三轮面试则直接谈人生谈理想。其实百度的日常实习生面...

程序员书单 1066

YOLOv11 模型改进全流程:从代码修改到性能跃升,让你打造专属检测利器

无论是科研中需要发表创新点满满的论文,还是企业里要解决特定场景的检测难题,这套方法都能让你在YOLOv11的基础上打造出“量身定制”的检测模型。别再让通用模型的“平庸性能”限制你的项目上限——现在就动手修改代码,让你的YOLOv11模型在精度、速度或小样本适应能力上实现跨越式提升,用技术突破证明你的AI研发实力!本文将带你从代码层面入手,完成从骨干网络到损失函数的全维度改进,真正掌握让YOLOv11“为你所用”的技术实力。该改进对小样本类别(如数据集中仅占5%的“稀有缺陷”)的识别精度提升显著。

m0_71589036的博客 403

[特殊字符] PetaLinux Qt 程序(WindRadar)无法自动启动问题解决文档

摘要:本文档解决了PetaLinux 2020.1系统中Qt程序(WindRadar)无法开机自动显示界面的问题。通过分析发现,自动启动时缺少DISPLAY=:0.0环境变量导致Qt找不到显示设备。最终在autostart.sh脚本中添加该变量,并完善了字体加载、驱动加载、显示设备检测等流程,确保程序正常自启显示界面。完整脚本包含路径检测、环境配置和错误处理,经验证各项功能均正常运行。

梁俊星的博客 328

置顶的10个顶级技术公众号推荐给你!

技术人需要多读书,多积累,持续性学习,才能保证自身的价值不断提升。书籍要看经典著作,但是最新的知识点、最有趣的技术文章,其实还是要紧跟当下热点。闲暇时间看看技术圈里这些顶...

Java后端技术 714

AI应用工程师面试指南与参考答案

摘要:AnkerAI应用工程师职位面向2024/25届毕业生,要求计算机相关专业背景,强调工程实现与技术探索能力。岗位职责包括全栈开发、AI技术整合(如大模型、图像识别)、团队AI赋能及系统优化。职位更看重编程实践能力(Python/Java等)和学习潜力,而非单纯算法知识。成功候选人将参与智能化产品开发,获得导师指导和技术成长机会。面试准备应聚焦项目经验展示、业务需求理解和技术解决方案能力,通过结构化回答和实操案例体现工程思维与创新潜力。

郑伟强dev的专栏 412

学生党必备!微软用AI打造的良心工具,免费给你用!

随着时间的推移,四六级考试也在赶来的路上。而最让人头疼的就是作文了。普通的阅读、选择还有一个标准的答案,而作文写好写坏,根本没有评判标准。因此,很多人都不愿意做作文题。而微软就出了一款英...

cainiao_python的博客 512

SpringBoot 整合Jasypt 实现配置文件加密读取操作详解

SpringBoot 整合Jasypt 实现配置文件加密读取操作详解

congge 4100

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

情人眼里出西施,我用Python帮你搞定了!

情人节就要到了,不知道大家都准备了什么礼物呢?情人之间送礼,追求的是心意,今天小编就带领大家做一个程序员情人节专属礼物-《我的眼里只有你》,如下如所示:图片来源:全民小视频大家仔细观察,...

cainiao_python的博客 426

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

“2020新冠肺炎记忆”登顶GitHub趋势榜!永不消逝的记忆却没有一行代码

本文转载来自 新智元新智元报道来源:github编辑:张佳【新智元导读】为了让记忆有一天不会变成失忆,最近,有两个特殊的中文项目相继登上了GitHub趋势榜榜首,它们没有一行代码...

cainiao_python的博客 715

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Python 工程师面试要会"造火箭”咋办?那就"造"一个呗

2019年各大行业洗牌,不少互联网公司也开始对工程师有了更严格的要求。尤其是招聘工程师时,问的问题越来越变态,可谓“面试造火箭”。对于求职者来说,在大环境竞争下,不得不“...

cainiao_python的博客 400

python大神年薪_为什么这些阿里、拼多多的大神年薪200万,让他们的公众号告诉你!...

原标题:为什么这些阿里、拼多多的大神年薪200万,让他们的公众号告诉你!干货来啦!!Python目前是最火的语言,今天小编给大家推荐几个在Python和机器学习领域领域非常有名的几个大号,都是高质量的公众号!Python爱好者社区Python爱好者社区,这里有分类整理好的历史优秀文章数千篇供你学习,内容涵盖Python编程语言学习,人工智能,大数据,商业分析经验,职场经验分享等几十个类目。在这里,...

weixin_39883260的博客 222

技术圈的这几个公众号,我一直在关注!

想要不断提升自我,碎片化阅读学习是必不可少的,如果你有一颗学习的心,那这些技术型的公众号,绝对会让你受益匪浅。与你分享技术干货、技术成长经验,以及认知和技术经验。助大家学...

石杉的架构笔记 308

推荐几个副业3W大佬的公众号

学习如逆水行舟,不进则退;只有坚持不断的学习,才能保持进步。今天给大家精心挑选的这几个优质的公众号,感兴趣的可以关注。 大飞码字▲▲▲我的朋友 [大飞],十年互联网老兵,微信早期...

程序员吴师兄的博客 1620

小技巧:大幅度提高requests的访问速度

摄影:产品经理与产品经理环游世界我做了一个垃圾信息过滤的 HTTP 接口。现在有一千万条消息需要经过这个接口进行垃圾检测。一开始我的代码是这样的:import requests mess...

cainiao_python的博客 1万+

推荐几个月入3w的公众号大佬

学习如逆水行舟,不进则退;只有坚持不断的学习,才能保持进步。今天给大家精心挑选的这几个优质的公众号,感兴趣的可以关注。 大飞码字▲▲▲我的朋友 [大飞],十年互联网老兵,微信早期...

涛哥聊Python 747

几个北大和南开学霸公众号,值得学习

技术人需要多读书,多积累,持续性学习,才能保证自身的价值不断提升。书籍要看经典著作,但是最新的知识点、最有趣的技术文章,其实还是要紧跟当下热点。闲暇时间看看技术圈里这些顶...

R语言中文社区 495

漫画,假装自己是Python高手,学会这十招就可以

Python是一门简单易学,而且功能非常强大的语言,目前是火的一大糊涂,据说除了生孩子啥都干。但是Python有一个很致命的问题就是慢,看下面两个人都吵起来:01.招数一在列表里面计数性...

cainiao_python的博客 572

requests content decode_小技巧:大幅度提高requests的访问速度

摄影:产品经理与产品经理环游世界我做了一个垃圾信息过滤的 HTTP 接口。现在有一千万条消息需要经过这个接口进行垃圾检测。一开始我的代码是这样的:import requestsmessages = ['第一条', '第二条', '第三条']for message in messages: resp = requests.post(url, json={'msg': message}...

weixin_39933026的博客 463
上一篇: 骚操作!想了解垃圾分类的图像识别嘛?1小时带你实战Google图像分割模型,送书10本...
下一篇: 你写的 Python 代码总是不规范?用它!
菜鸟学Python
博客等级 码龄9年 8086粉丝 571原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值