理解模型复杂度

Machine LearningMachine LearningBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,我们将探讨模型复杂度如何影响预测准确性和计算性能。我们将使用两个数据集 —— 用于回归的糖尿病数据集和用于分类的20新闻组数据集。我们将针对三种不同的估计器对复杂度影响进行建模:

  • SGDClassifier(用于分类数据),它实现了随机梯度下降学习
  • NuSVR(用于回归数据),它实现了Nu支持向量回归
  • GradientBoostingRegressor以前向逐步方式构建加法模型

我们将通过在每个选定模型中选择相关模型参数来改变模型复杂度。接下来,我们将测量对计算性能(延迟)和预测能力(均方误差或汉明损失)的影响。

虚拟机使用提示

虚拟机启动完成后,点击左上角切换到“笔记本”标签页,以访问Jupyter Notebook进行练习。

有时,你可能需要等待几秒钟让Jupyter Notebook完成加载。由于Jupyter Notebook的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,随时向Labby提问。课程结束后提供反馈,我们将立即为你解决问题。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills ml/sklearn -.-> lab-49217{{"理解模型复杂度"}} end

加载数据

我们加载两个数据集 —— 用于回归的糖尿病数据集和用于分类的20新闻组数据集。

选择参数

我们通过创建一个包含所有必要值的字典来为每个估计器选择参数。我们为每个估计器定义变化的参数、复杂度标签、复杂度计算器、数据及其他配置值。

基准影响

我们计算参数对给定估计器的影响。在每一轮中,我们用变化参数的新值设置估计器,并收集预测时间、预测性能和复杂度,以了解这些变化如何影响估计器。我们使用作为参数传递的复杂度计算器来计算复杂度。

绘制结果

我们绘制模型复杂度对准确性和延迟的影响。我们将预测误差放在y轴上,将模型复杂度放在x轴上。我们在同一张图上绘制预测误差和预测延迟。

总结

在本实验中,我们探究了模型复杂度如何影响预测准确性和计算性能。我们通过在每个选定模型中选择相关模型参数来改变模型复杂度。然后,我们测量了其对计算性能(延迟)和预测能力(均方误差或汉明损失)的影响。我们得出结论:更复杂的模型需要更长的训练时间,并且不能保证降低预测误差。