换个新方式实现ML调优:3D可视化了解下!

这篇文章的大部分内容是交互可视化,都是可以悬停、缩放和移动的。在计算机上阅读比在手机上阅读更好,如果一定要用手机的话,横向模式会比纵向模式更好一些。(原文链接:https://towardsdatascience.com/using-3d-visualizations-to-tune-hyperparameters-of-ml-models-with-python-ba2885eab2e9)

如果你正在尝试开发Kaggle的解决方案,如一场Rossmann商店销售竞赛。那么您可能已经完成了许多特征工程并创建了大量的新变量,它们可以帮助您更好地预测未来的销售。

您已经创建了一个随机森林,并且您可能正尝试找到其最佳超参数。您想要评估1000种可能的组合,可以运行随机搜索以仅分析它们的子样本或网格搜索来探索完整的参数网格。

换个新方式实现ML调优:3D可视化了解下!

一些参数在对数刻度上均匀分布。你可以用np.logspace做到这一点

如果你做后者,现在可能会有一些数据。使用rf_gridsearch.best_params_,您可以获得在测试集上产生的最佳结果的3个参数(max_features:0.25,min_samples_split:13,n_estimators:45)。但是,如果您想要在3个维度上可视化所训练的所有随机森林的表现,该怎么办?

这些流行语是什么意思?

决策树是一种受监督的机器学习算法,在给定数据集的情况下,递归地将其划分为具有彼此更相似的目标变量的子集。给定一些用于训练它的自变量的新数据,它可以预测因变量。

换个新方式实现ML调优:3D可视化了解下!

用于回归的决策树

随机森林(从现在开始的RF)是决策树的集合,其在完整训练数据的子集上训练并使用特征的子集。这允许他们具有较少相关的个体决策树,从而它们将更好地概括并且具有更少的过度拟合。它们比神经网络训练更快,并且是解决结构化数据的分类和回归问题的第一次尝试。

我们可以在RF中设置几个超参数。在scikit-learn的文档中阅读所有这些内容。其中最重要的是:

  • n_estimators:RF中的树数。

  • min_samples_split:子集(也称为节点)中的最小样本数,以将其拆分为两个以上的子集。与min_samples_leaf和max_depth相关

  • max_features:拆分节点时要考虑的最大特征数(独立变量)

RF的复杂性随着更高的n_estimators,max_features和更低的min_samples_split而增加。

交叉验证是一种用于在机器学习模型中查找最佳超参数的技术。为了执行它,我们必须将数据划分为3个子集:一组训练集(用于训练模型)、一组验证集(用于优化超参数)和一组测试集(用于检查模型最终的性能,就好像我们已经在生产中了)。我们使用一些得分来评估模型的性能,该得分将根据我们试图解决的问题类型(回归、分类、聚类......)而变化。

对于回归,R2(R平方)运行良好。一般来说,模型越复杂,在训练组中的得分就越高。在测试集上,它也会随着模型的复杂性而增加,但在某一点之后它不会增加反而也会减少。我们用交叉验证做的就是试图找到这一点。

换个新方式实现ML调优:3D可视化了解下!


在我们的例子中,模型复杂度是3个超参数的函数。我们接下来要做的是尝试在超参数的三维网格中找到最好的模型,以及所有的组合是如何执行的。请注意,在图中我使用了测试集和测试分数,但我所指的是验证。

第一:2D热图

作为一种快速方法,我们可以使用不同参数对上绘制热图,以查看在测试和训练设置中达到最大R2的区域。这可以通过几行来完成:

换个新方式实现ML调优:3D可视化了解下!


换个新方式实现ML调优:3D可视化了解下!


换个新方式实现ML调优:3D可视化了解下!

测试集的R2分数

换个新方式实现ML调优:3D可视化了解下!


换个新方式实现ML调优:3D可视化了解下!

训练集的R2分数

但是这样做我们仍然只会看到一小部分结果。要查看所有这些(并且以比热图更清晰的方式),我们需要创建3D可视化。

Scatter3D

通过Plotly,我们可以创建各种各样的交互式可视化。首先,让我们创建一个三维散点图,其中点的大小与训练时间成正比,颜色与测试集中的R2得分成比例。

换个新方式实现ML调优:3D可视化了解下!


尽管效果还不错,但我们仍然看不到多少。可以说max_features越大,min_samples_split越小,测试得分就越大,但是很难将鼠标悬停在3D散点图中间的点上。

详细代码:https://github.com/xoelop/Medium-posts/blob/master/3d%20cross%20validation/ML%206%20-%20Gridsearch%20visulizations%20.ipynb

更好的方式:添加滑块

我们有3个自变量,首先我们试图优化3个参数,更直观的方法是保持其中一个的值固定,并绘制测试R2分数相对于其他两个变量的3D曲面。

这更接近我们以前看到的1维验证曲线,如果我们添加滑块来移动第三个变量,我们可以有效地看到与前一个图中相同的信息,但是会以更加清晰的方式。

换个新方式实现ML调优:3D可视化了解下!


或者,如果您更喜欢3D散点图,这样你就可以看到每个单独的点。如果点的大小与训练时间成正比,那么颜色与R2分数成正比。

换个新方式实现ML调优:3D可视化了解下!


最后一步

换个新方式实现ML调优:3D可视化了解下!

我们看看缩放后气泡的大小如何

有一种方法可以显示第一个3D散点图,但是使得测试得分最高的点比其他点大得多,这样我们就可以专注于它们。这是通过将平均测试分数除以其最大值,并以特殊方式缩放以获得我们想要的大小来完成的。

换个新方式实现ML调优:3D可视化了解下!


最后,如果我们这样做,这个图就是这样子的。现在看到的重点更清楚了:

换个新方式实现ML调优:3D可视化了解下!


如果我们想进一步优化4个超参数,我们可以将第4维作为滑块添加到此图中,就像之前的情况一样,并且能够通过4维有效地可视化数据。

换个新方式实现ML调优:3D可视化了解下!



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31545819/viewspace-2220768/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31545819/viewspace-2220768/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值