常用数据集了解
泰坦尼克号数据集(Titanic Dataset)简介
1. 背景
泰坦尼克号数据集记录了1912年泰坦尼克号沉船事件中乘客的个人信息及生存情况,是机器学习领域经典的二分类任务数据集,常用于预测乘客生存概率。
2. 数据内容
- 样本数量:共 891 条乘客数据(训练集)。
- 特征字段:包含 12 个特征,其中 8 个核心特征如下:
字段名 | 说明 | 类型 |
---|---|---|
PassengerId |
乘客ID(唯一标识) | 数值 |
Survived |
是否幸存(目标变量,0=否,1=是) | 二分类 |
Pclass |
舱位等级(1=头等舱,2=二等舱,3=三等舱) | 有序分类 |
Name |
乘客姓名 | 文本 |
Sex |
性别(male/female) | 二分类 |
Age |
年龄(存在缺失值) | 数值 |
SibSp |
同船兄弟姐妹/配偶数量 | 数值 |
Parch |
同船父母/子女数量 | 数值 |
Ticket |
船票编号 | 文本 |
Fare |
票价 | 数值 |
Cabin |
客舱号(存在大量缺失值) | 文本 |
Embarked |
登船港口(C=Cherbourg, Q=Queenstown, S=Southampton) | 无序分类 |
3. 数据特点
- 缺失值:
Age
缺失约 19.9%(需插值处理)。Cabin
缺失约 77.1%(通常直接删除或标记为缺失类别)。Embarked
缺失 2 条。
- 类别分布:
- 幸存率 38.2%(342人幸存,549人遇难)。
- 性别比例:男性 64.8%,女性 35.2%。
4. 应用场景
- 分类任务:预测乘客是否幸存(
Survived
为目标变量)。 - 特征分析:探索性别、舱位、年龄等因素对生存率的影响。
- 数据清洗练习:处理缺失值、文本特征(如
Name
、Cabin
)编码。
5. 关键洞察
- 性别影响:女性幸存率(74.2%)显著高于男性(18.9%)。
- 舱位影响:头等舱幸存率(63%)远高于三等舱(24.2%)。
- 年龄分布:儿童(<10岁)幸存率较高(58.1%)。
6. 数据获取
加载方式(Python示例):
import seaborn as sns
titanic = sns.load_dataset('titanic') # 直接加载已清洗的版本
-
原始数据:可通过 Kaggle 获取完整数据集(含训练集和测试集)。
7. 预处理建议
- 缺失值处理:
Age
:用均值或中位数填充。Embarked
:用众数填充。Cabin
:删除或创建新特征(如是否有客舱HasCabin
)。
- 特征工程:
- 从
Name
提取称呼(如 Mr, Mrs, Miss)。 - 合并
SibSp
和Parch
为FamilySize
(家庭人数)。 - 离散化
Age
(分段处理)。
- 从
8. 可视化示例
import seaborn as sns
import matplotlib.pyplot as plt
# 绘制舱位与生存率关系
sns.barplot(x='pclass', y='survived', data=titanic)
plt.title('Survival Rate by Passenger Class')
plt.show()
总结
泰坦尼克号数据集是入门机器学习的理想选择,涵盖数据清洗、特征工程、分类模型训练等全流程,适合用于逻辑回归、决策树、随机森林等算法的实践。其真实的历史背景和明确的问题定义,使其成为教学和竞赛的热门数据集。
MNIST
MNIST(Modified National Institute of Standards and Technology)是一个经典的机器学习数据集,主要用于手写数字识别任务,包含60,000张训练图像和10,000张测试图像,每张图像为28×28像素的灰度图,对应数字0-9的类别标签。
数据集概述
MNIST由美国国家标准技术研究所(NIST)原始数据集改进而来,是深度学习领域的入门级基准数据集。其核心特点包括:
- 标准化结构:图像经归一化处理,尺寸统一为28×28像素,灰度值范围0-255,标签为0-9的数字类别。
- 均衡分布:训练集(60,000张)与测试集(10,000张)的类别样本数量大致均衡。
应用场景
MNIST的典型用途包括:
- 图像分类:训练卷积神经网络(CNN)等模型,实现高准确率(常达99%以上)的分类任务。
- 算法验证:作为基准测试工具,快速验证新算法的性能。
- 教学工具:因其简单性,成为机器学习课程和教材的标配案例。
技术实现
主流深度学习框架(如TensorFlow、PyTorch)均提供MNIST的便捷加载接口:
- TensorFlow:通过
tensorflow.keras.datasets.mnist.load_data()
直接获取。 - PyTorch:使用
torchvision.datasets.MNIST
模块加载。
当前趋势显示,研究者正转向更复杂的数据集(如Fashion-MNIST、CIFAR-10),但MNIST仍作为教学工具广泛使用。
Fashion-MNIST参照: