如何可视化机器学习模型:从线性回归到神经网络
如何可视化机器学习模型:从线性回归到神经网络
机器学习很复杂,而且通常很难理解。通过可视化机器学习模型,您可以深入了解模型性能以及模型在进行预测时做出的决策
机器学习很复杂,而且数学运算很重。作为初学者,您几乎肯定会在学习数十种可用模型的内部工作原理时遇到困难。如果你没有数学背景,这个问题就会被调到 11 分。但即使你拥有博士学位,你仍然会发现很难向商业人士解释模型结果。他们通常不会像你一样对技术细节充满热情,但希望确保你的模型以正确的方式做出决策。那么,您如何弥合差距呢?技术专业人士和业务人员会说一种通用语言:数据可视化。 图表易于理解,无论您的背景如何,都可以更轻松地解释复杂的主题。在本文中,我将教您可视化监督式机器学习模型的基本和高级概念。如果您正在寻找有关无监督学习的好材料,我们的 Python 无监督学习课程可以满足您的需求。
机器学习模型最常见的可视化类型
我将从轻理论部分开始,介绍最常见的机器学习模型可视化类型。它在这里让我们处于相同的竞争环境中。
特征重要性
当您想要了解数据集的哪些属性对机器学习模型的预测贡献最大时,这就是它的位置。
**把它想象成烤蛋糕:**面粉和糖等成分是必不可少的,而其他成分,如糖屑,贡献不大。换句话说,你可以吃一个没有撒料的蛋糕,但不能没有面粉和糖。
如果删除重要性分数较高的特征,模型的性能将显著下降。特征重要性图通常与基于树的模型(决策树、随机森林、梯度提升)相关联。训练模型后,实际值变得可用,并且只需几行代码即可可视化这些值。
模型性能指标
评估机器学习模型(例如,用于分类)的最常见指标是混淆矩阵、ROC 曲线和 PR 曲线(精度-召回率)。
第一个显示每个类在左上角到右下角对角线上的正确预测数。它之外的所有内容都被视为错误(误报或漏报)。
第二个选项 显示一组分类阈值的真阳性率和假阳性率之间的权衡。
第三个选项 显示了正确的正预测 (精确率) 与模型识别所有正实例的能力 (召回率) 之间的平衡。ROC 和 PR 曲线都仅适用于二元分类数据集。如果出现多类问题,您必须同时比较两个类。
当然,还有其他可用的评估指标,但这三个是最常见的。它们内置于 scikit-learn 中,scikit-learn 是用于训练机器学习模型的库。
误差图
使用线性模型(例如线性回归)时,您通常需要绘制残差。
这些值表示实际值和预测值之间的差异。当您绘制这些时,您需要检查任何可见的模式。理想情况下,它们应该随机分布在零附近(正态分布)。如果不是这种情况,则模型正在做出有偏差的预测,您仍有一些工作要做。
总的来说,这是一个非常容易绘制的图,它可以告诉你很多关于你的回归模型的信息
预测解释
机器学习模型通常被视为黑匣子,但并非必须如此SHAP (SHapely Additive Explanations) 和 LIME (Local Interpretable Model-agnostic Explanations) 等高级解释技术有助于回答模型如何得出特定决策的问题。 SHAP 为单个预测的每个特征分配重要性值(想想:这个人是吸烟者,所以他们的保险金额会更高),而 LIME 创建一个更简单的模型,该模型近似于特定实例的复杂模型的预测。
我将在本文后面向您展示它们的工作原理。但在深入研究好东西之前,让我们讨论一下您需要遵循的几个 Python 库。
用于可视化机器学习模型的 Python 库
在这个简短的部分中,我将向您展示如何安装可视化机器学习模型所需的系统范围的依赖项和 Python 库。
Graphviz (图形可视化)
您唯一需要遵循的系统范围依赖项是 Graphviz。稍后您将使用它来可视化决策树,如果不安装 Graphviz,代码将无法运行。它是一个开源软件,用于制作图表、抽象图形和网络。你不会直接使用它;只能通过 scikit-learn 获取。
scikit-学习
此 Python 库广泛用于 Python 中的机器学习任务。在本文中,您将使用它来训练机器学习模型、拆分数据集、缩放数值特征和可视化模型性能。这是必备的,因此请使用以下命令安装它(取决于您的 Python 环境):
pip install scikit-learn
conda install scikit-learn
SHAP (SHapely 加法解释)
Python 中的 SHAP 库是解释机器学习模型预测的常用工具。它利用博弈论概念(例如 Shapely 值)来衡量每个属性对模型预测的贡献。更棒的是,它包含有用的可视化效果,可帮助您了解模型的内部工作原理。
使用以下命令安装它:
pip install shap
conda install -c conda-forge shap
LIME (本地可解释模型不可知的解释)
许多人在解释单个模型预测至关重要时,都会使用这个 Python 库。它的工作方式与 SHAP 不同。它使用可解释的、更简单的模型在本地近似原始模型。然后,它显示每个数据集特征对预测的贡献。
您稍后会看到 LIME 的工作原理,但首先要安装它:
pip install lime
conda install conda-forge::lime
张量板
如果您正在使用 TensorFlow 构建神经网络模型,那么 TensorBoard 是不二之选。它是一个可视化工具,可帮助您跟踪机器学习实验并监控训练指标(例如,损失和准确性)。它可以实时可视化和更新模型图形,并显示模型参数在训练期间的变化情况。TensorBoard 可以与 PyTorch 等其他深度学习框架一起使用,但在本文中我将重点介绍 TensorFlow。
通过运行以下命令进行安装:
pip install tensorboard
conda install -c conda-forge tensorboard