第 3 章 分类演练 分类演练泰坦尼克数据集
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
本章将使用泰坦尼克数据集讲解一个常见的分类问题。后面的章节将深入探讨和扩展分析过程中的常见步骤。
项目布局建议
Jupyter 是一个开源笔记本环境,支持 Python 和其他语言。它允许你创建代码单元格或 Markdown 内容。
我倾向于以两种模式使用 Jupyter。一种是用于探索性数据分析和快速尝试;另一种更像是一种交付方式,我使用 Markdown 单元格来格式化报告,并插入代码单元格来说明重要观点或发现。如果你不小心,你的笔记本可能需要一些重构和软件工程实践的应用(移除全局、使用函数和类等)。
cookiecutter 数据科学软件包建议采用一种布局来创建分析,以便于复制和共享代码。
导入
本示例主要基于pandas、scikit-learn 和Yellowbrick。pandas 库为我们提供了方便数据挖掘的工具。scikit-learn 库具有强大的预测建模功能,而Yellowbrick 则是用于评估模型的可视化库:
>>>importmatplotlib.pyplotasplt>>>importpandasaspd>>>fromsklearnimport(...ensemble,...preprocessing,...tree,...)>>>fromsklearn.metricsimport(...auc,...confusion_matrix,...roc_auc_score,...roc_curve,...)>>>fromsklearn.model_selectionimport(...train_test_split,...StratifiedKFold,...)>>>fromyellowbrick.classifierimport(...ConfusionMatrix,...ROCAUC,...)>>>fromyellowbrick.model_selectionimport(...LearningCurve,...)
警告
您可能会在网上找到包含星形导入的文档和示例,如
from pandas import *
避免使用星形导入。明确的导入会让你的代码更容易理解。
提问
在这个示例中,我们想创建一个预测模型来回答一个问题。 它将根据个人和旅程特征来分类一个人是否能在泰坦尼克号灾难中幸存下来。这是一个玩具示例,但可以作为教学工具,展示建模的许多步骤。 我们的模型应该能够获取乘客信息,并预测该乘客是否会在泰坦尼克号上幸存。
这是一个分类问题,因为我们要预测的是生存标签;要么生存,要么死亡。
数据术语
我们通常使用数据矩阵来训练模型。(我更喜欢使用 pandas DataFrames,因为有列标签非常好,但 numpy 数组也可以)。
对于回归或分类等监督学习,我们的目的是建立一个将特征转化为标签的函数。如果我们将其写成一个代数公式,它将看起来像这样:
y = f(X)
X 是一个矩阵。每一行代表一个数据样本或一个人的信息。X 中的每一列都是一个特征。函数的输出 y 是一个向量,包含标签(用于分类)或值(用于回归)(见图 3-1)。
图 3-1. 结构化数据布局。
这是命名数据和输出的标准命名程序。在 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access