python快速入门第二周

文章目录

https://www.kaggle.com/code/alexisbcook/titanic-tutorial

kaggle

拿到数据 → 理解数据 → 清洗数据 → 分析规律 → 选择特征 → 准备模型

第2周的重点不是训练复杂模型,而是让学生理解:

一个机器学习项目开始之前,80%的工作是在处理和理解数据。


第2周:从数据到模型

案例:Titanic 生存预测

一、案例背景

1912年泰坦尼克号沉船事故。

目标:

根据乘客信息,预测:

一个乘客是否能够生存。

这是一个典型的:

监督学习 → 二分类问题


二、认识数据

数据表:

Titanic.csv

每一行:

代表一个乘客

每一列:

代表一个特征

例如:

字段 含义 类型
PassengerId 乘客编号 编号
Survived 是否生存 标签
Pclass 船票等级 类别
Name 姓名 文本
Sex 性别 类别
Age 年龄 数值
SibSp 兄弟姐妹数量 数值
Parch 父母子女数量 数值
Ticket 船票编号 文本
Fare 票价 数值
Cabin 船舱号 文本
Embarked 登船港口 类别

三、明确机器学习问题

1. 什么是样本?

一名乘客:

例如:

复制代码
乘客1:

年龄:22
性别:女
船票等级:1等
票价:71.2

结果:
生存

这就是一个样本。


2. 什么是特征?

模型输入的信息。

例如:

输入:

复制代码
年龄
性别
票价
船票等级

这些叫:

Feature(特征)


3. 什么是标签?

模型要预测的答案。

这里:

复制代码
Survived

取值:

复制代码
0 = 死亡

1 = 生存

最终:

机器学习任务:

复制代码
特征X:

年龄
性别
等级
票价
家庭人数


↓

模型


↓

标签Y:

是否生存

四、数据读取与观察

学习工具:

Python:

  • pandas
  • numpy

代码:

python 复制代码
import pandas as pd

data = pd.read_csv("titanic.csv")

data.head()

查看前5行:

目的:

了解数据长什么样。


查看数据规模:

python 复制代码
data.shape

例如:

结果:

复制代码
891行
12列

含义:

891个乘客样本。


查看字段:

python 复制代码
data.info()

发现:

问题:

  • Age有缺失
  • Cabin大量缺失
  • Embarked少量缺失

引出:

数据清洗的重要性


五、数据探索分析(EDA)

目标:

回答几个问题:

什么因素影响生存?


分析1:整体生存比例

查看:

python 复制代码
data["Survived"].value_counts()

例如:

结果:

复制代码
死亡:549

生存:342

计算比例:

发现:

大约38%的乘客生存。

学习:

类别分布。


分析2:性别是否影响生存?

问题:

男性和女性生存率是否不同?

代码:

python 复制代码
data.groupby("Sex")["Survived"].mean()

结果类似:

性别 生存率
female 74%
male 19%

发现:

性别可能是重要特征。

引出:

特征选择思想


分析3:船票等级影响

分析:

python 复制代码
data.groupby("Pclass")["Survived"].mean()

结果:

等级 生存率
1等 较高
2等 中等
3等 较低

发现:

社会经济水平可能影响生存。


分析4:年龄分析

查看:

python 复制代码
data["Age"].describe()

发现:

年龄存在:

  • 最大值
  • 最小值
  • 平均值

绘制:

年龄分布。

学习:

数据分布。


分析5:家庭因素

创建家庭人数:

公式:

复制代码
FamilySize

=
SibSp

+

Parch

+

1

例如:

一个人:

复制代码
0+0+1=1

一家五口:

复制代码
2+2+1=5

分析:

家庭人数是否影响生存。


六、数据清洗

真实数据不能直接训练。

需要处理:


1.缺失值处理

查看:

python 复制代码
data.isnull().sum()

发现:

Age:

缺失

处理:

填充平均年龄:

python 复制代码
data["Age"].fillna(
data["Age"].mean()
)

2.类别数据转换

机器不能理解:

复制代码
male
female

转换:

复制代码
male=0

female=1

方法:

Label Encoding


3.删除无用字段

例如:

PassengerId

原因:

只是编号,没有预测意义。

删除:

python 复制代码
drop()

七、特征工程

这是机器学习重要思想。

原始数据:

复制代码
SibSp
Parch

创造新特征:

复制代码
FamilySize

例如:

新增:

特征 意义
FamilySize 家庭规模
IsAlone 是否独自旅行
Title 姓名中的称谓

八、选择训练特征

最终选择:

输入X:

复制代码
Pclass

Sex

Age

Fare

FamilySize

Embarked

标签Y:

复制代码
Survived

形成:

复制代码
X:
乘客信息


↓

模型


↓

Y:
是否生存

九、划分训练集和测试集

为什么?

不能用训练数据评价自己。

划分:

例如:

80%

训练模型

20%

测试模型

代码:

python 复制代码
from sklearn.model_selection import train_test_split


X_train,X_test,y_train,y_test=

train_test_split(
X,
y,
test_size=0.2
)

理解:

训练集:

学习规律

测试集:

检查是否真的学会。


十、本周实践任务

实验:

完成Titanic数据分析报告。

学生提交:

1.数据理解

回答:

  • 有多少乘客?
  • 有哪些字段?
  • 哪些字段缺失?

2.数据分析

完成:

  • 男女生存率比较
  • 船票等级比较
  • 年龄分布分析
  • 家庭人数分析

3.数据处理

完成:

  • 缺失值处理
  • 类别转换
  • 特征选择

4.准备模型数据

输出:

复制代码
X_train

X_test

y_train

y_test

为第3周:

线性模型训练

做准备。


第2周最终应该理解:

复制代码
现实问题

↓

数据

↓

样本

↓

特征

↓

标签

↓

清洗数据

↓

发现规律

↓

准备模型
相关推荐
IT毕设梦工厂1 小时前
计算机毕业设计选题推荐:基于大数据的供应链数据分析与可视化|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目
大数据·hive·hadoop·python·数据分析·spark·课程设计
用户298698530141 小时前
Python 文档格式转换:Word 转 EPUB 实践
后端·python·api
IT毕设梦工厂2 小时前
计算机毕业设计选题推荐:基于大数据的二手车数据可视化分析|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目
大数据·hadoop·python·数据挖掘·数据分析·课程设计·数据分析数据可视化
Python图像识别2 小时前
17-【2027毕设】YOLO11水稻病害检测识别系统 - Python完整源码+PyQt5界面+训练模型+数据集
python·深度学习·yolo·毕业设计·毕设
天天被压力2 小时前
【别再到处找免费股票数据API了:官方204个接口,32篇一次讲透 #02】涨停跌停与特色股池:5类股池接口一次拉全
java·人工智能·python
Wx-bishekaifayuan2 小时前
springboot甘肃特产服务平台50301-计算机课程设计、毕业设计
spring boot·后端·python·django·课程设计·express·旅游
midelshuang2 小时前
RAG 文档解析(三):bbox 实战——多栏排版与水印 PDF
python
FYKJ_20102 小时前
springboot雅集社区养老管理系统04456-计算机课程设计、毕业设计
vue.js·spring boot·python·mysql·typescript·spark·django
zhanghaha13143 小时前
Python进阶教程:35_PyQt (保姆级零基础教程)
开发语言·python·pyqt