机器学习 pipeline 可视化
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
超参数优化
超参数优化是机器/深度学习中最常见的动作之一。机器学习模型的调
优是最佳化问题的一种。我们有一组超参数(例如:学习率,隐藏单元的数量,等等......)我们的目标是找出他们的值的正确组合,这可以帮助我们
得到最小值(如损失)或最高值(如函数的准确性)。
此类任务的最佳解决方案之一是使用平行坐标图(parallel
coordinates plot)(图1)。使用这种类型的图,我们可以很容易地一起
比较不同的变量(例如特征),以发现可能的关系。在超参数优化的情况下,这可以作为一个简单的工具来检查什么样的参数组合可以给我们提供最大的
测试精度。数据分析中平行坐标图的另一个可能用途是检查数据帧中不同特
征之间的值之间的关系。
图1,是一个使用 Plotly 创建的实用示例。
import plotly.express as px
fig = px.parallel_coordinates(df2, color="mean_test_score",
labels=dict(zip(list(df2.columns),
list(['_'.join(i.split('_')[1:]) for i in df2.columns]))),
color_continuous_scale=px.colors.diverging.Tealrose,
color_continuous_midpoint=27)
fig.show()
图1: 平行坐标超参数优化图
为了在 Python 中创建平行坐标图,可以使用不同的技术,如 Pandas、Yellowbrick、 Matplotlib 或 Plotly。
最后,另一个可以用来创建这种类型的图的解决方案是Weights & Biases Sweeps。Weights & Biases是一个免费的工具,可以用来自动创建
不同的机器学习任务(如学习率曲线,图模型等等)的图和日志。个人和团
体都适用。
Data Wrapper
Data Wrapper是一个免费的在线工具,专为创建专业图表设计。不需要
登录,所有的过程都可以在线完成。今年这个工具额外创建了一个 Python wrapper,可以使用以下方法轻松安装:
pip install datawrapper
为了使用 Python API,我们还需要注册 Data Wrapper,进入设置并创建
一个 API Key。使用这个 API 键,我们就可以远程使用Data Wrapper。
现在,我们可以很容易地创建一个条形图,例如,通过以下几行代码,
并传递一个 Pandas 数据帧作为create _ chart函数的输入。
from datawrapper import Datawrapper
dw = Datawrapper(access_token = "TODO")
games_chart = dw.create_chart(title = "Most Frequent Game Publishers", chart_type
= 'd3-bars', data = df)
dw.update_description( games_chart['id'], source_name = 'Video Game Sales', source_url = 'gregorut/videogamesales', byline = 'Pier Paolo Ippolito',)
dw.publish_chart(games_chart['id'])
得到的图表如下所示。
一旦我们的图表发布了,我们就可以在我们的 Data Wrapper 帐户的创
建的图表列表中找到它。点击我们的图表,然后我们会找到一个不同选项的
列表,我们可以使用以便轻松地共享我们的图表(例如:嵌入,HTML,PNG,等等)。
Plotly预测表
在处理时间序列数据时,有时如果能够快速理解我们的模型在哪些数据点上表现不佳真的很方便,这样可以尝试理解它可能面临的限制。
一种可能的方法是创建一个汇总表,其中包括实际值和预测值,以及某种形式的度量,用于总结一个数据点的预测好坏。
使用 Plotly,可以通过创建一个绘图函数轻松实现:
然后调用这个函数会得到以下输出(请随意测试图3中的表) :
Error Importance 1 reported in 34 cases
Error Importance 2 reported in 13 cases
Error Importance 3 reported in 53 cases
图3: 预测表
决策树
决策树是机器学习模型中最容易解释的类型之一。由于它们的基本结构,很容易通过查看树的不同分支的条件来检查算法是如何决定的。此外,决策
树也可以作为一种特征选择技术,考虑到算法将那些对我们期望的分类/回归任务最有价值的特征置于树的顶层。通过这种方式,树底部的特征可以被丢弃,因为它携带的信息更少。
可视化分类/回归决策树的最简单方法之一是使用sklearn.tree中的export_graphviz。在本文中,使用了 dtreevz 库提供的一种不同的、更完整的方法。
使用这个库,只需使用以下几行代码就可以创建一个分类决策树:
得到的绘图如图4所示。
图4: 分类决策树
在图4中,不同的类用不同的颜色表示。所有不同类的特征分布都表示
在树的起始节点上。只要我们向下移动每个分支,算法就会尝试使用每个节
点图下面描述的特征最好地分离不同的分布。沿着分布生成的圆表示在跟随
某个节点后正确分类的元素数量,元素数量越大,圆的大小就越大。
图5展示了一个使用决策树回归器的例子。
图5: 决策树回归器
决策边界
决策边界是图形化地理解机器学习模型如何进行预测的最简单方法之一。在 Python 中绘制决策边界的最简单方法之一是使用 Mlxtend。这个库实际
上可以用来绘制机器学习和深度学习模型的决策边界。图6显示了一个简单
的例子。