Amazon MLS-C01: 探索性数据分析与可视化 — 学习指南
属于 AWS Machine Learning Specialty MLS-C01 — 学习指南. 使用经过验证的答案练习: Amazon 考试中心, 或参加限时模拟考试: ExamRoll.io.
分布、转换与特征缩放
理解原始特征的分布是探索性数据分析 (EDA) 的基础。首先,在 SageMaker Studio 笔记本或 SageMaker Processing 作业(使用 scikit-learn/pandas 的 ml.m5.xlarge)中,通过直方图、核密度估计和分位数摘要来分析每个变量。对数转换、Box–Cox 转换、Yeo–Johnson 转换以及基于排序的转换(分位数转换器)适用于右偏数据,但 Box–Cox 要求严格为正值,对零值会失效——常见的陷阱包括在未对零值进行偏移处理的情况下应用对数/Box–Cox 转换,以及在解释模型输出时忘记反转转换。标准化(零均值,单位方差)对于基于距离的方法(k-means、PCA、SVM)和正则化线性模型至关重要;Min–Max 缩放对于具有有界激活函数的神经网络很有用。部署时,应将转换器持久化到 SageMaker Feature Store 或作为模型构件,以确保在线和批量推理使用完全相同的预处理。使用 AWS Glue 或 Glue DataBrew 来分析超大型 S3 数据集并生成摘要统计信息;使用 Athena 查询分层样本。决策标准取决于算法的敏感性:树集成模型可以容忍未缩放的特征,而线性和基于距离的方法则不能。最后,使用稳健统计量(中位数、IQR)检查异常值和重尾分布,并考虑是进行裁剪、缩尾处理,还是单独建模(分群),而不是盲目地删除数据点。
残差分析、学习曲线与诊断测试
残差可以揭示模型的设定错误:必须诊断非零均值、异方差性、自相关性或非线性问题。在 SageMaker Studio 中绘制残差与预测值的关系图,以及残差与关键特征的关系图;计算 Durbin–Watson 统计量以检验自相关性,并使用 Ljung–Box 检验来分析时间序列的残差相关性。对于回归问题,寻找指示异方差性的漏斗形状;应用方差稳定化转换或异方差模型(例如,调整了目标的 XGBoost 或概率预测模型)。学习曲线——即训练和验证误差随训练集大小变化的图——可以识别高方差(过拟合)或高偏差(欠拟合)。使用 SageMaker Debugger 捕获每个周期的张量和 CloudWatch 指标,并添加一个 CloudWatch 警报,以便在训练损失下降而验证损失发散时触发。常见的陷阱包括对时序数据使用随机交叉验证(应使用基于时间的分割),以及在不平衡数据集上使用准确率进行评估(应优先使用精确率-召回率或 AUC-PR)。对于超参数调优,应使用这些诊断结果来驱动决策:如果验证差距持续存在,则增加正则化、添加数据或降低模型复杂度;如果两种误差都很高,则增加模型容量或添加特征。通过 SageMaker Experiments 持久化诊断图和指标,以实现可复现性。
降维、PCA、特征分析与聚类
降维可以减少噪声并提高可解释性。在缩放后应用 PCA 或随机 SVD(在 EMR/Glue 上使用 scikit-learn 或 Spark MLlib);检查解释方差比以选择主成分数量,并分析载荷以将主成分映射回原始特征。特征向量的符号是任意的——应解释载荷的绝对值,并按大小对特征进行分组。对于高度非线性的结构,应仅使用 t-SNE 或 UMAP 进行可视化,而不能在未经仔细交叉验证的情况下将其用作模型的预处理步骤。对于聚类,为球形簇选择 k-means(需要缩放),为软分配选择高斯混合模型 (Gaussian Mixture Models),为基于密度的形状选择 DBSCAN;运行轮廓系数 (silhouette scores) 和 Davies–Bouldin 指数进行比较。在大型数据集上,使用 SageMaker 内置的 k-means(GPU/CPU 实例)或在 SageMaker Processing 中运行 mini-batch k-means。警惕将 PCA 应用于独热编码 (one-hot) 的分类特征这一陷阱——应考虑使用特征哈希或嵌入层。使用肘部图、解释方差图和跨子样本的聚类稳定性来决定 k 值。将聚类中心和 PCA 转换器持久化到 SageMaker Feature Store,以便下游的实时评分和基于分群的模型使用一致的转换。
针对漂移和性能的可视化、监控及 AWS 集成
可视化兼具探索性和运营性:在 SageMaker Studio 中使用 matplotlib/seaborn 进行即席绘图,并使用 Amazon QuickSight 创建仪表板来跟踪实时性能指标。对于模型漂移和数据质量,通过 SageMaker Model Monitor 和 SageMaker Clarify,使用具有代表性的训练样本建立基线,以检测分布偏移、特征重要性变化和偏差。使用从 Processing 作业产物派生的基线来配置 Model Monitor,并在已部署的终端节点上启用持续监控,进行每小时/每天的检查;CloudWatch 事件和 SNS 可以触发警报。对于流式摄取和分析,使用 Kinesis Data Firehose 将 JSON 持久化到 S3,并进行格式转换以生成 Parquet(启用记录格式转换和 Glue Catalog 集成),或附加一个 Lambda 以进行自定义转换。对于压缩文件的近实时 SQL 查询,在 Glue Data Catalog 中对数据进行分区和注册,并使用 Athena 进行查询,在新 S3 对象到达时通过 Lambda 刷新分区。常见陷阱包括未能对基线进行版本控制、忽略模式演变(使用 Glue Schema Registry),以及仅仅依赖聚合指标——应始终包含每个特征的漂移和每个细分市场的性能,以检测局部性能下降。结合使用 SageMaker Experiments 和 Model Monitor,将超参数变化与漂移事件关联起来,并维护血缘关系。
实践问题:用例场景
场景: Acme 零售商正在使用 AWS 机器学习技术栈,包括 SageMaker Studio、S3 数据湖、Kinesis Firehose 摄取、Glue Data Catalog 和 QuickSight 可视化。该团队将客户人口统计信息、会话日志和购买记录以 JSON 和 Parquet 格式存储在 S3 中。
挑战: 识别在未来六个月内最有可能流失的客户细分市场,并建立监控以检测部署后特征分布或模型性能是否发生漂移。
推荐方法:
- 创建一个 SageMaker Processing 作业 (ml.m5.xlarge),使用 pandas/sklearn 对数据进行采样和分析,在适当情况下应用对数/Box-Cox 变换,并在 SageMaker Feature Store 中注册预处理产物。
- 在数据缩放后计算 PCA(使用 scikit-learn 或 Glue/EMR 上的 Spark ML)以降低维度,检查解释方差和载荷,并使用 SageMaker xgboost 或内置的 k-means 进行聚类以得出细分市场。
- 使用考虑时间因素的训练/验证集拆分来训练一个分类模型(SageMaker 中的 XGBoost 或 TensorFlow 中的小型神经网络),将指标记录到 SageMaker Experiments,并为处理不平衡问题设置提前停止和类别权重。
- 使用 SageMaker Endpoint 进行部署,使用从 Processing 作业生成的基线启用 Model Monitor,配置每小时的漂移检查和 CloudWatch 警报,以通过 SNS 发送通知;在 QuickSight 中可视化细分市场级别的性能和漂移。
基本原理: 此方法结合了稳健的预处理、可解释的降维和可扩展的聚类来进行市场细分,同时 SageMaker Model Monitor 和 QuickSight 提供了对数据和性能漂移的操作性检测,通过 Feature Store 确保了可复现的预处理,并通过可跟踪的实验进行根本原因分析。
← 数据工程与特征工程 · 所有领域 · 建模 — 监督式与非监督式 (经典 ML) →
练习这些题目 → · 在 ExamRoll.io 上限时练习 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
通过考试 →