在通用电气航空航天公司,我们构建预测模型,以优化飞机发动机的利用率,同时兼顾维护成本。这些模型可应用于众多发动机系列,而每个系列又包含多种硬件配置组合。更复杂的是,我们还为不同的发动机组或机队贴上各种标签(例如,航空公司、地区等)。
平行图提供了一种相对简单的方法,可以根据特定发动机序列号的具体配置和分组,可视化和管理这些模型的适用性。作为一种额外的模型指标,这种可视化管理有助于根据影响程度确定各个模型的更新和调整优先级。
好的,大家好。欢迎收听我的演讲。我叫李·贝克尔,是通用电气航空航天公司的首席分析工程师,在数据科学部门工作。这次我将分享我最近在JMP软件中发现的一个有趣的功能,它是一个非常有用的图形化工具,可以帮助进行数据探索。
您可以在这里阅读我的摘要。它也发布在网站上。在GE航空航天公司,我们构建预测模型,以优化飞机发动机的利用率,同时兼顾维护成本。这些模型可应用于许多发动机系列,每个系列又包含多种硬件配置组合。更复杂的是,我们还为不同的发动机组或机队贴上各种标签,例如按航空公司区域划分等等。
平行图提供了一种相对简单的方法,可以根据特定发动机序列号或资产的具体配置和分组,可视化和管理这些模型的适用性。作为一种额外的模型指标,这种可视化管理有助于根据模型的影响来确定更新和调整的优先级。
那么,我就正式开始吧。首先,介绍一下我的背景。我在通用电气航空航天公司工作了23年,担任过各种工程职位。我的工作主要与飞行数据相关,特别是趋势分析和处理我们资产产生的数据。正如我之前所说,我的工作是管理飞行时间,并努力在飞行时间和维护成本之间取得平衡。
目前,我在一家名为“数据科学与分析”的机构担任首席分析工程师。我是一名工程师,并非数据科学家,所以每次谈到我的职位时,总会有人提醒我这一点。我擅长视觉学习,对数据可视化充满热情。最后一点需要说明的是,当我对外演讲时,我需要即兴发挥。为了保护部分客户的隐私,所有数据都经过了匿名处理,但内容均基于一些真实的案例研究。
正如我在摘要中提到的,在GE航空航天公司,我们构建了大量的预测模型。这些模型通常会根据资产配置,针对特定资产组进行非常细致的调整。这里的配置可以指发动机系列等因素。我可能拥有小型支线飞机,也可能拥有需要更大、更强劲发动机支持的大型国际洲际航班。
模块的意思是,我这里有风扇、压缩机、燃烧室、涡轮,然后吸气、压缩、燃烧、吹气。这是涡轮发动机的一般结构。但是发动机的这些部件内部硬件的年代和配置可能各不相同。我们构建的模型需要了解这一点。
航空公司客户在飞行操作和运营地点方面都会有所不同。这其中涉及各种区域性因素、航线结构以及其他需要考虑的因素。我们试图预测机翼或发动机的使用寿命,并管理这些资产。我这里展示的图表,以及我还要补充一点,我在这里创建的所有图表,都是通过JMP中的各种平台构建的。
如果你有兴趣尝试重现这些地图,或者甚至还原到简单的图形,可以之后跟我聊聊……这是一个引擎横截面的热力图,非常卡通化,但至少着色和这些地图元素的色块都是在 JMP 中完成的。
言归正传。简而言之,要管理所有这些方面就变得非常复杂。在构建预测模型时,所有这些因素都可能成为区分不同车队并保持其完整性的潜在考量因素。但对我们来说,关键在于这些资产会不断升级,它们的配置也会随着时间推移而改变。
模型管理是了解特定时间点哪些硬件配置在哪些资产中的关键要素。例如,去年我管理着一支拥有 75 台采用这种压缩机配置的发动机,而今年我有 100 台发动机采用相同的配置,其中 25 台已经升级或更换为其他配置。稍后我会详细介绍相关的图表。
但我们还是直接进入我今天为了便于讨论而举的具体例子吧。假设我们正在追踪五家航空公司,每家航空公司都运营两种不同的发动机类型。每种发动机类型都包含四个部件:风扇、压气机、燃烧室和涡轮。而这些部件在航空公司试图管理的机队中可能存在多种不同的年份或配置。
要了解哪些资产在任何时间点有哪些配置,确实会变得非常复杂。当你开始探索时,你会想:这些分布是什么样的?我想最初的直觉是,我可能要开始绘制图表了。让我们来了解这些分布的实际形态。如果我是新手,我只是想初步了解一些直方图,一些非常基本的分布。
第一反应可能是直接使用顶部的标题图表。如果您不知道 JMP 最新版本中有这个功能,不妨试试。它会生成非常简单的直方图。我的所有数据都是分类数据,所以不会像连续分布那样出现大量异常值之类的问题。但用这种方法查看分类数据并开始分析它们之间的关系也相当简单直接。
我想接下来大家可能会想,不如直接……我们来利用一下分布平台,它用起来相当简单。对于连续数据,你可以获得更详细的描述性统计信息,比如频率和统计数据。为了方便起见,我在这里把它们隐藏起来了。
第三种方法,或许有点另类,你可能没想过,甚至根本没想过。你可以为每对输入变量或坐标轴分别构建一个列联表图。我在这里做了一个,试图说明这一点,没错,这确实有点难看。我知道有些人喜欢用这种方式可视化数据,但当处理多维数据时,确实很难理解其中的真正含义。
我还要补充一点,即使在JMP内部,也有很多不同的探索方式。通常来说,在JMP中,几乎任何你想做的事情都有两到三种不同的方法。这种交互性是一大优势,尤其是在探索过程中。如果我从我航空公司的五家分公司中选择一家,我就可以开始查看它的发动机类型、风扇配置和压气机配置。
当我选择分布图中的不同柱状图时,高亮显示会改变这些分布。在底层数据表中,我也可以看到记录会随着这些选择而改变。您可以使用这些可视化工具来辅助选择任何已打开的平台,包括数据表。交互性非常出色。但正如我之前提到的,维度越高,理解起来就越困难。
我对寻找新的、富有创意的方法来可视化这些数据产生了浓厚的兴趣。我偶然发现了平行图这种方法。接下来几分钟,我将简要介绍一下什么是平行图,并简要介绍它的使用方法。
从宏观层面来说,平行图是一种用于展示多元数据的可视化工具,正如我们这里所展示的,每个轴代表一个不同的变量,并且这些轴彼此平行放置,而不是交叉绘制。数据点用与每个轴相交于对应变量值的直线表示,从而可以可视化跨多个维度的模式、相关性和异常值,尤其适用于分析高维数据,有助于识别数据集中的关系、趋势和聚类。
如果我在这里生成大量数据,我们就能再次看到 JMP 的交互功能在理解这些关系方面非常强大。现在我无需依赖多个图表来查看它们在例如分发平台中的关系。我可以一次性看到所有这些关系,它们像带状线条一样流畅地展现出来。
根据数据是连续型还是分类型,你会得到不同的视图,稍后我会展示一些示例。但总的来说,我发现以这种方式绘制数据并利用平行图进行探索非常有价值。接下来,我将快速讲解如何创建我偏好的平行图。
进入图形生成器,我们先回到数据表。图形生成器就是这个图标,或者你也可以通过“图形”>“图形生成器”找到它。第二步,一次性选中所有要绘制的列。将它们全部拖到 X 轴上。然后点击这里生成平行线图的按钮[听不清 00:13:00]。现在还没完全完成。我想……首先,这里还有 JMP 中你可能知道也可能不知道的另一个技巧。
我希望所有东西的大小和形状始终保持一致。我可以右键点击,复制框架设置,然后粘贴到这里,编辑,粘贴,再设置框架,这样图表上的所有东西看起来就都是相同大小的矩形了。这只是我个人的偏好,你可能不知道还有这种操作。
最后,我刚才的说明里还有一点要补充:我们来给它上色。在之前的例子中,我给航空公司上了色。你只需要把航空公司参数拖到这里,放到航空公司放置区或者颜色放置区,就完成了,但还没完全完成。我还有一点很讨厌,就是有些人不说自己完成了,而是说“好了”。
在图形生成器中,务必点击“完成”按钮,就大功告成了。我今天演讲用的就是这个图表。讲解过程大概花了两三分钟,但实际上只需要几秒钟就能快速生成一个可视化工具,帮助你以一种全新的方式探索数据,这种方式可能与你之前了解的任何方式都截然不同。它只是简单的分布图,并利用 JMP 的交互功能来帮助你轻松完成所有操作。
我还想简单谈谈一些高级自定义功能。我已经向您展示了颜色功能。在很多情况下,这个功能非常有用,但如果我只是用颜色来标记航空公司,而该航空公司的数据已经绘制在图表上,那么颜色可能就没那么重要了。我可以把这些带状区域沿着各个坐标轴移动,而颜色对我来说并没有太大帮助。
但你可以尝试简化你正在查看的视图,方法是使用你实际图表中未绘制的参数进行着色。我这里有一个例子,我从图表中移除了发动机类型。底部少了一个 X。但我选择使用该参数进行着色。我选择使用该参数作为着色,以便更好地理解图表。
如果我再次打开控制面板,我会从列表中移除发动机类型。我会从颜色桶(也就是我们的放置区)中移除颜色,然后把发动机类型放到[听不清 00:16:12]。这基本上是一样的。我可能不会再这样逐个举例子讲解了。但这只是为了突出展示查看数据的不同方式,以及如何使用颜色来查看平行图,从而帮助你在探索数据的过程中进行多选。
让我们回到我的例子 2。这里有一个例子,我……我现在只绘制了三个轴,并给我的风扇配置涂上了颜色,要么是 2D 风扇叶片,要么是 3D 风扇叶片,我可以看到我所有的 2D 风扇叶片都是蓝色的,所有这些 2D 风扇叶片都映射到我传统的 V1 涡轮配置,我可能能够也可能不能通过观察更广泛的平行图来推断出这一点,理解这确实是一种一对一的关系。
这只是另一种可以尝试用来简化视图的技巧。这里使用颜色作为辅助工具,帮助我们探索数据中的维度。另一个巧妙之处在于,你可以看到,在某些坐标轴之外,人群中存在着颜色非常明显的红色或蓝色区域,而这些区域左侧则呈现出紫色色调。有时,如果你的数据集非常二元化,要么倾向于其中一种颜色,要么倾向于另一种颜色,这一点很容易看出。
同样,我可以去掉其中一个变量,去掉蓝色和红色的分层,然后依靠紫色的色调来帮助我判断我在人群中更接近哪个极端。仅仅基于紫色色调的视觉线索。要么我是纯粹的蓝色,要么我是纯粹的红色,或者我介于两者之间。
您还可以尝试另一种技巧。局部数据过滤器也很有用,它可以帮助您探索数据集的各种排列组合,以及设置方法。我们的局部数据过滤器就在这里。您可以对数据集中的任何变量设置局部数据过滤器,而不仅仅是您绘制的那些变量。我们来试试看。这个视图与我之前的视图基本相同。
但这样做,并使用本地数据筛选器进行探索的意义在于,现在我可以用它来筛选数据集中的各种子机队或子组。如果我只想查看美国航空 (Air America) 并了解它们在其他轴上的表现,我可以很轻松地做到这一点,而无需像以前那样只查看……如果我选择它并尝试在所有其他数据背景下解读其内容,或者我可以选择只查看该特定机队,或者我可以对其他轴执行相同的操作,只查看特定配置的风扇并了解它们的表现。
这只是另一种帮助您探索和筛选待查询数据的方法。最后一个本地数据筛选示例。这是……好的,这是我为了帮助理解我之前提到的数据随时间变化而变化的因素而整理的示例。这个 2024 年的视图应该与我之前一直在讨论的数据集完全相同。在此之前,我记录了这些资产或引擎群的历史数据,它们随着时间的推移都经历了配置变化。这就是我试图在这里展示或描述的内容,并将这些变化可视化。
这里还有一个维度我之前没有绘制出来,那就是时间。就像之前的例子一样,我想了解随着退役的进行,CM5-5发动机的子机队规模是如何随时间推移而减少的。我可以完全缩小视图,查看完整的数据集,然后选择我这里提到的子机队或发动机组。
现在我可以回顾这些年的情况,然后说:“好的,回到2020年,看起来每个客户都至少拥有几架这类飞机。到了2021年,其中几家客户退役了。到了2022年,看起来我只剩下四架了。”美国航空在2021年至2022年间淘汰了所有这类飞机。现在,只有两家客户拥有这类资产。从最新的数据可以看出,截至目前,机队规模已大幅缩减。
这里还有一种很有用的技巧,我将用这种方法来说明,即观察事物随时间的变化。之前,我有一个非常古老的配置的压缩器。同样,我们需要回到所有数据的超集,将其用作选择工具,然后回到底层数据表,找到过去某个时间点的资产。具体操作方法是:选择资产编号,然后选择行选择,再选择匹配单元格。
它会找出曾经使用过这种超旧配置的资源,以及它们当前的位置。然后它会带我们了解这个例子。现在我已经有了可视化结果,虽然还没完全实现。我已经选出了所有曾经使用过这种超旧配置的资源,而且现在也都使用了这种配置。
现在我可以带他们回顾过去,看看他们在 2020 年的情况,再看看他们 2021 年的情况,以及 2022 年的变化。看起来其中一些可能已经升级了。但你会看到,从他们最初的旧配置到 2024 年,变化非常显著。
它们都升级到了……其中不少都升级到了这个新配置。在超集级别,这两个图之间的区别可能并不明显。但话说回来,这是另一种可以用来探索数据的技巧。你可以查看一个维度或 X 轴,也就是你没有在 X 轴上绘制的变量,并使用颜色和局部数据过滤器来帮助你探索和选择数据。
最后,我想谈谈连续数据方面的问题。这是鸢尾花数据集。我在探索和准备这个演示文稿时偶然发现了它。如果你查看图表,选择平行图,就会看到这样的结果。我尝试观察了一下。这种方法在绘制连续数据方面确实非常有效,但在绘制分类数据方面则不太理想。
如果我使用图形和平行图工具绘制原始数据集,它看起来远没有那么美观。或许我可以探索一些其他选项来美化它,但萝卜青菜各有所爱。再次强调,这是一种数据可视化方法,可能与您以往自己找到的方法略有不同。但请记住,数据有不同的应用场景和不同的探索方式。
如果我回到鸢尾花数据集,像往常一样绘制平行图,选择可能的坐标轴列表,将它们拖放到 X 轴,然后选择平行图,这样或许能得到一些更有用的信息。但话说回来,这只是实现同一目标的不同方法而已。而我今天来这里的目的,就是为了探讨如何利用多维数据,并运用这种技术来探索数据。
以上就是我这次演讲想讲的内容。另外,关于如何使用和可视化数据,我还有一些建议。这些建议来自JMP网站上的一个点播网络研讨会,你可以在那里找到,也可以直接联系他。他关于数据可视化和保持简洁的一些建议非常棒。
我对此深有体会,因为当你处于我所谓的探索模式而非解释模式时,你必须格外小心。如果我是在探索数据,并为了自己的目的进行可视化,我非常清楚自己点击每个元素的原因,也清楚自己为什么要以这种方式进行操作。但当你试图用同样的图表来解释事物时,你可能就很难解释清楚了。
使用像这样看似复杂的工具进行解释时,务必谨慎,并尽量保持简洁。这是一款很棒的探索性可视化工具,但我认为,在向受众或领导解释时,你可能需要回顾一下我之前提到的一些方法,尝试简化视图,更快地抓住重点。简洁永远是王道。
那么,这就是关键所在。这看似显而易见,但永远不要想当然地认为你认为显而易见的事情,你的听众也同样显而易见。如果你在 PowerPoint 中用图表来解释某些内容,那么务必详细阐述,并确保用清晰的要点来解释你得出结论的过程,并且要明确你的结论。我试图从这个图表中得出什么结论?永远不要想当然地认为你认为显而易见的事情,你的听众也同样显而易见。
最后我想提一点,说实话,我自己也经常在这方面犯错,那就是视觉效果和艺术性之间存在着微妙的平衡,所以不要为了美观而美观。确保你制作的图形是有用的,能够帮助你讲述故事,而不是妨碍故事的讲述。
可视化纯粹是为了可视化,艺术纯粹是为了艺术。我还附上了 JMP 帮助文档中关于平行图的链接。正如我之前提到的,Mike Anderson 的点播网络研讨会也很有帮助,所以我强烈推荐。好了,就说这么多,谢谢大家的关注。非常感谢。