在沃特世,我们一直在与生物工艺实验室的科学家和工程师交流,他们表达了对使用高级分析技术来获取生物工艺开发洞察的兴趣。他们向我们提出的主要障碍是获取数据和从这些高级分析技术中获取洞察所需的时间。当我们谈论生物工艺时,我们真正关注的是上游生物工艺,并且理解许多听众对该领域了解不多。我想用一些照片来展示我们讨论的实验室类型以及生成样品的活动。
实验室类型包括上游生物工艺开发实验室和克隆筛选实验室,它们通常使用左上角图片中所示的自动化生物反应器或台式生物反应器,容量可能有几升,有时甚至只有5升。负责这些实验的生物工艺工程师的日常生活就是实验执行的过程。通常实验持续时间约为两周左右,每天早上他们都会来,从这些生物反应器中取样,正如您在图片中看到的那样,然后对这些生物反应器进行分析。
现在,对于常规分析,比如pH值、金属离子之类的基本化学分析,生物工艺工程师会立即自行完成。但高级分析通常会被送到核心分析实验室。这样一来,他们就会延迟数周才能拿到结果和数据。这显然不符合设计新实验的节奏。
沃特世公司正在努力改变这种现状,让工艺工程师能够自己进行高级分析,最好是在细胞培养过程中,这样他们就可以利用这些数据提供的洞见来设计下一个实验,并从中获益。沃特世公司一直在开发新的LCMS系统,供非分析人员(例如工程师、化学家等)使用。我们认为最适合生物工艺实验室的是这款BioAccord LC-MS系统,它可由非分析人员操作。
现在,如果他们在生物过程实验室中进行这些实验,那么他们的优势在于,他们将能够更全面地了解实验过程中发生的情况。除了进行常规化学反应和细胞测量之外,他们还能获得更多关于细胞和生物反应器内部情况的信息,例如哪些物质消耗较多,哪些物质消耗较少,产生了哪些代谢物和副产品,以及更多关于细胞培养过程中产品和产品质量的信息。
他们能够获得大量额外的数据,我们认为这些数据非常有价值。但缺点是,他们使用的工具越多,方法越多,他们需要清理和汇总的数据就越多,才能从这些数据中获得洞见。我把这个工作交给了我在CSL的同事。
大家好,我是 Lalit,是 CSL Seqirus 的一员,在上游团队担任科学家。作为 BioAccord 的用户,我想分享一下我的经验。在 CSL,我们采用数据驱动方法(或 DoE 驱动方法)进行实验。我们主要使用 Amber 15 和 Amber 250 这两款高通量仪器。Amber 15 拥有 48 个生物反应器,工作体积为 15 毫升。Amber 250 拥有 24 个生物反应器,工作体积为 200 毫升。通过 DoE 设计,我们生成了大量数据,这些数据会通过 BioAccord LC-MS 进行传输。它在组分识别和定量方面非常方便,因为它能够从其库中检测 200 多种组分。这使得我们更容易避免使用其他仪器。
同时,使用 BioAccord LC-MS 获得的数据量可能相当大,这也很具挑战性。这很有用,您可以查看所有数据,但很难根据这些数据做出推断。这时,Waters JMP 插件就派上用场了。您可以通过插件拟合数据,并且它能够根据代谢途径分离代谢物。这使得查看每个组分并将其与 DoE 工艺参数联系起来变得更加容易,这些参数可用于进一步改进或优化工艺。总的来说,就 BioAccord LC-MS 和 JMP Waters 插件的价值而言,它们对上游科学家来说非常有用。
JMP 的同事将向您演示的数据可视化和分析,是在我们之前概述过的一项实验中生成的。细胞培养实验是在 Amber 250 系统上进行的,我之前给您看过它的图片。这是一个八通系统,所以我们有八个不同的生物反应器,这是一项为期 14 天的研究,每天早上从每个生物反应器采集样本,并在 Nova BioProfile FLEX2 系统和 BioAccord LC-MS 系统上进行分析。
实验设计非常简单。它改变了气体通气速率、空气覆盖速率和缓冲液浓度。每个生物反应器的进料结构相同,只是通气覆盖速率和缓冲液的参数有所变化。Amber 250系统内置传感器,用于在线监测温度、气体和pH值。FLEX2系统则利用这些传感器来测量细胞计数、细胞活力、氨、pH值等指标。BioAccord系统则用于测量滴度,其黄金标准方法是使用蛋白A色谱法。聚集体是指高分子量杂质和低分子量杂质。
糖谱,也就是我们观察细胞培养实验中产生的糖型。我应该说的是,这是一个经过基因工程改造以表达单克隆抗体的CHO细胞系。该抗体会有不同的糖型,这是非常重要的质量属性。然后是耗竭培养基,也就是围绕细胞的培养基,其中包含营养物质和细胞排出的代谢物。我们会在其中测量氨基酸、维生素、TCA代谢物(也就是三羧酸循环代谢物),以及其他代谢途径的代谢物。JMP的同事会向您展示这些数据的分析和可视化。
为了方便数据分析和数据可视化,在 JMP 同事的帮助下,我们为 JMP 编写了一个生物过程监测插件,该插件现已在市场上销售。使用该插件,您可以导入来自不同分析仪的数据文件,它会自动添加元数据、清理数据,并将所有数据汇总到一个表格中,然后用于创建可视化效果。
该插件可以创建可视化效果,帮助您入门,例如条形图和线序列图。此外,为了帮助您进行多元变量分析,它最后还会创建多变量方差分析 (MVA) 表,该表经过重新设计,每个分析物占一列,更适合多变量方差分析。好的,现在我将把时间交给 JMP 的同事。
谢谢,Pat。我叫Greg Flexman,是JMP的系统工程师,我将开始研究如何驱动JMP。Waters生物压过程监测器可以在JMP市场购买,它提供了一整套PDF文档,其中包含如何导入数据以及如何创建文件的说明。Pat制作了一个非常实用的视频,但我打算从中途开始学习。
导入所有数据后,您将获得一系列报告。您可以选择条形图或折线图格式,两种格式均可。BioAccord 能够测量的广泛分析物正是从这里开始展现的,因为我们这里有一个包含八个生物反应器的实验设计 (DoE)。我们不仅可以看到所有时间点的滴度,还能看到所有影响细胞生产力的因素。
我们可以看到碎片、聚集体以及主要细胞。我们可以看到所有这些不同的循环、DNA合成和糖基化。浏览您的数据非常有价值。接下来,您将看到一个高数据格式。我们快速浏览一下。它有12,000行,列数少得多,看起来就像一个LIMS数据库。它测量了各种各样的分析物,并将其值显示在一张高表格中。
该插件还会生成一个称为多变量分析的宽表。脚本开箱即用,最终会以此结束。它提供了绘制散点图的选项,例如,我们可以查看代谢应激引起的滴度变化,并开始浏览数据中存在的一些关系。这也是进一步分析的绝佳起点。
我先从这张宽表开始,我之前对它做了一些扩展,并添加了一些公式列。我们可以开始绘制图表。我们可以观察滴度随时间的变化。同样,这也是我们试图理解这些关系的地方。我计算了滴度增量。这是逐日增长的部分,所以我们看到有些滴度增长到了 80%,而在之后的日子里,我们只增长了大约 10%,每天 1.1 滴。
我确实在第七天注意到了这个大问题。为了好玩,我要定义一下早期和晚期阶段。我还要计算一下每个时间段的相对滴度增量,我会把所有时间点的滴度平均值取平均值。我们可以看看,比如,我们性能最差的生物反应器在早期阶段的滴度比其他生物反应器低得多,在晚期阶段的滴度也很低。
我们最好的表现,我们可以看到它在早期表现得相当不错,这就是它真正展现出来的地方。然后,它在后期稍微接近了队伍的中间位置,但这个V7相当有趣。它早期表现非常强劲,后来就下降了。我想知道,如果当时有合适的条件让这些细胞继续生产,它的潜力会有多大。
JMP 为我们提供了一系列工具来理解这些不同的工艺条件。我们可以用轴拟合 Y 值,但参数实在太多了。我们将应用一个筛选工具,称为响应筛选。我先向大家展示一下它的原理,然后我们将调用该分析平台。如果我们要用轴拟合 Y 值,这里只有两个双变量,一个是早期,一个是晚期。我们可以看到异柠檬酸,早期的 R 平方非常强,显著性很高,但后期就不那么明显了。
我们还可以看看另一种烟酰胺,它在后期非常有效,在后期具有很强的统计学意义,但在早期则不那么显著。r 平方和 p 值可以告诉我们很多关于 r(关系强度)的信息。如果我们真的只是想了解这些参数的杠杆作用,这将非常有帮助。我现在要运行这个反应筛选平台,我们将看到其中许多参数的 r 平方和 p 值。现在,当我们进行如此多的比较时,我们预计会出现一些误报。
有一种调整叫做错误发现率。我们有错误发现率的p值。由于这些p值在如此小的数值下很难看清,所以查看对数值会比较方便。所以,取对数很容易看出。0.05等于2。我们可以看到最显著值之间的界限。这是早期的等柠檬酸值,我们也可以看看晚期的。你会注意到早期和晚期的排序是不同的。我现在要做的是,准备一个平行图。我会用脚本来做,但给你一个提示,我确实创建了一个合并数据表,然后做了一个拆分操作。好了,这就是我们得到的妙语。我们将在脚本中重新执行此操作。这将得到一个平行图。然后,我从摘要中对表格进行了更新,将分析物类别纳入其中。
这会进行下去。现在我们可以看到,对于早期和晚期阶段,相对于显著性差异的两个对数值,早期TCA循环的统计显著性最高。其中最强的参数是异柠檬酸。我们可以看到,在晚期阶段,这些关系发生了很大变化。在晚期阶段,情况就完全不同了。烟酰胺和其他一些不那么重要的维生素也参与其中。这只是一些可以进行图形分析的示例。
现在我想介绍另一个概念,我将通过 JMP 切换到另一个数据表。这不是来自 BioAccord,而是要快速运行一个 JMP Pro 功能(称为“功能数据探索”)的教学示例。假设我们有一个非常简单的生物反应器,其中有 20 个不同的运行,我们只观察浊度随时间的变化。我们想了解其中一些变量是如何变化的,也许我们已经针对 pH 值和温度进行了实验设计。我们在不同的工艺条件下进行了这些运行。您可以看到突出显示的行在跳动,这就是 DoE 的证据。我将调用功能数据探索器,这真的很酷。它会查看所有这些曲线,并使用小波模型,尝试描述大量的变异性。
我把这个缩短到三个,但你可以让 JMP 确定它应该在哪个位置。JMP Pro 会确定主成分,并为你提供一个刻画器,展示这些主成分如何影响过程的形状。接下来是精彩的点睛之笔。现在我们可以看到这些补充变量如何影响形状。这有点像函数数据探索器的介绍,我们可以在其中看到补充变量如何影响形状。我在这里暂停一下,交给我的朋友 Ben,他做了一些非常精彩的总结。
我叫 Ben Barroso-Ingham。我是 JMP 的系统工程师,我参与这个项目是因为我在生物过程方面有相当丰富的经验。我重点关注的是,通过 Waters 的这个插件,我们可以将大量的分析物以良好的结构化格式呈现在我们面前。我们经常会使用 DoE 来改变这些因素和条件。我们想看看这些分析物是否发生了变化,以及它们是如何变化的?
这样做的挑战在于,以从设备中出来的众多分析物为例,我们可能需要分析 70 多种分析物。如果我们想采用一个完全手动的流程,比如取我们的一个 DoE 因子,我们可以观察当这些因子的设置从低到高变化时会发生什么,看看我的分析物的形状是否会随着时间的推移而发生变化?
对于那些没有变化的基因,我们可能并不认为它们重要。而那些确实发生变化的基因,其变化是由人类因素引起的。也许它具有重要的生物学意义。也许它与更大规模的重要生产特征有着内在的联系,值得我们关注。
用肉眼观察非常冗长。如果我们要处理 70 多个分析物,我们得花上数周时间才能搞定。我看到这个数据集后,立刻开始思考 JMP 的行功能和函数式数据探索功能。这本质上是一种非常快捷的方法,可以查看形状、找到列表,并最终缩小到该过程中最重要的变化。
我要达到的是最终目标。如果我有这么多分析物,我实际上需要两种工具。第一个工具是,我需要一个精简的列表,列出当某个因素改变时发生变化的分析物;第二个工具是,我们只需要观察这些分析物以及它们的形状是如何变化的。当我们在这个过程中改变这些因素的设置时,会发生什么?
使用 JMP Up,我们可以得到类似这样的结果,底部列出了所有 DoE 因子。在本例中,包括面积叠加率、缓冲液浓度、这些效应之间的相互作用,以及受这些因子显著影响的分析物。总共有 70 多种分析物。您可以在这里看到一个缩小的列表,其中显示了形状在过程中发生了多大的变化。
例如,我可以做的是观察这里的葡萄糖。当空气覆盖率发生变化时,形状也会发生变化。我们可以悬停在上面,看看形状在这个过程中发生了变化。也许我们可以看看异柠檬酸。我们可以看到它实际上受到缓冲液浓度和空气覆盖率的影响。
使用 FDE 的一个好处是,我们可以获得类似于标准最小二乘法中的对数值图的分析和可视化效果,从而找出哪些因素至关重要。在本例中,哪些淀粉样蛋白发生了变化。此外,我们还可以使用函数式实验设计 (DoE)。我们可能对分析器工具非常熟悉。实际上,我们可以用分析器来观察形状以及某些事物随时间的变化。
在这种情况下,你知道,我的分析物是二羟基戊二酸,它在设定条件下的形状会随时间变化。当我改变覆盖率或缓冲液浓度时,它会是什么样子?它会对曲线产生什么影响?我可以将它与我在这里制作的可视化图表很好地结合起来,这样我就可以看到,我的葡萄糖因为覆盖率的变化而发生了变化。
我可以筛选所有分析物的列表,并将其显示在这里。现在我正在查看葡萄糖。我可以看到我的空气覆盖率对这个过程有什么影响。我还可以看到哪些影响没有影响。当我改变缓冲液浓度时,它不会在这个过程中对我的葡萄糖产生任何影响。
它的工作原理与我之前描述的非常相似,我们通过视觉观察来判断形状是否有变化。JMP Pro 使用 FPC 分数,这是一种定量测量形状变化程度的方法。如果 FPC 分数为 0,突然变为 10,则表明该过程中的形状发生了变化。我们可以利用 JMP 及其计算分数的功能,快速获得形状变化列表,并在需要分析大量分析物时了解哪些因素受到了影响。
流程如下:对于每种分析物,例如加入的水,我们都使用函数数据浏览器 (FPC) 来拟合形状。我们得到这些分数,即形状分数的基数。然后,我们会像使用标准 DoE 一样,检查我们使用的 DoE 术语是否与 FPC 分数相关?FPC 分数会改变这些术语吗?这会产生显著影响吗?
举个简单的例子,我刚刚选择了该生物反应器中研究过的一种分析物,我将向大家展示FDE的最终目标是,我们将该分析物与工艺流程中的每个生物反应器进行对比,并在此添加一条拟合线。每个生物反应器都尽可能地与该工艺流程得出的数据进行拟合。
然后,这些数据会被转换成FPC分数。每个生物反应器的值,其中某个生物反应器的形状分数为0,该过程的形状分数为100,或者其他任何分数。我们可以查看功能摘要,发现第一个生物反应器的FPC分数为-6000。另一个生物反应器2的FPC分数为13000。形状上存在差异。
然后,我们使用 DoE 将其关联起来,看看这个形状是否由我们正在使用的因素造成?实际上,我们可以默认运行功能性 DoE,测试该项是否对 FPC 产生显著影响。当我查看此指标中的 FPC 1 并运行模型(功能性 DoE)时,它告诉我,是的,确实存在显著影响。空气覆盖率正在改变该分数。这不仅仅是形状发生了变化,而是实际变化是由我们的某个 DoE 因素引起的。
这基本上就是我在流程开始时所做的。整个表格是我每次都这样做的,收集该流程中所有活跃项的信息,然后将其可视化,并表示它存在,如果那里有一个项,那么它在该流程中就具有重要意义。然后,我们还会自动得到一个预测公式,我们可以从中查看每个因素对每个分析物形状的影响,正如我之前所展示的。
所有这些信息基本上都是针对该过程中每个分析物收集的,以便整合到最终展示的工具中,同时查看可视化效果和工具的配置文件。最终,这可以快速筛选出这些分析物发生变化的位置,并使您能够缩小范围,找到这些因素的变化导致分析物发生改变,从而可能对生产过程产生影响的位置。
也许我们正在观察分析物关系中意想不到的变化。也许某个关键因素改变了我们的某个分析物,从而也改变了我们的生产流程。我们可以用这个工具来彻底分析这些变化。日志,我这么说,但这可能很酷。如果你感兴趣的话,可以查阅日志,了解这个过程是如何进行的,还会添加一些额外的细节。
非常感谢!这组数据对我来说太丰富了,有很多有趣的内容,我还想把更多内容添加到我们的工作流程中。到目前为止,我们已经了解了如何通过添加Waters来整合仪器数据,并将其转换为便于分析和JMP使用的良好格式。然后,我们已经了解了一些创建精美图形的基本方法,这些图形可以用来讲述故事,探索正在发生的事情以及变量之间的不同关系。
然后,Ben 还深入探讨了一种基于函数曲线的方法,我希望更深入地了解这种方法的潜在关系,尤其是 DoE 因素和我们测量的其他所有因素之间的关系。最后,我想进一步介绍一些我认为 JMP 框架中非常强大的功能,它们对于了解系统运行情况以及实际做出关键决策(例如更改某些因素或进行预测,甚至可能在流程中的某些关键点上做出不可行的决策)都非常有价值。
让我们从这里开始……这是来自 Waters 插件的表格。我想提一下的一件大事,也是我的第一个主要话题,注意到这个表格里有 120 行。但请注意,我们有一个分组变量,即生物反应器。我刚才突出显示的前 15 行全部来自第一个生物反应器,这在统计学术语中被称为裂区设计,因为 DoE 因子(此处指空气覆盖率、高于浓度的鼓泡速率)是影响浓度的因素。
它们在整个生物反应器中是恒定的。它们在整个持续时间内都是固定的,15个点对应15天。这也可以从时间序列的角度来看待。这就是Ben用曲线表达的意思。但仅从纯粹的实验设计角度来看。我们在进行统计建模时必须谨慎设计结构。
尤其是JMP,它非常强大,而且在SAS,我们多年来一直使用所谓的混合模型。这是一个包含所谓的固定效应和随机效应的模型。今天我们没有时间深入探讨混合模型理论,但基本要点是,生物反应器是我们的混合模型,随机效应,也就是我们所谓的裂区场景中的整区,在我们的DoE平台中也被称为难以改变的因子。
其概念是,如果我们想得出结论,比如说关于这些DoE因素的因果推断,那么使用混合模型设置至关重要,以确保统计结论能够正确反映实验设计。这很简单。但这里很容易掉入一个陷阱。假设你忽略了这一点,只是开始对DoE因素与更严格的结果或任何你可能感兴趣的结果进行简单的方差分析,你只是做了一个简单的单因素方差分析,或者说是因子分析。
从统计学角度来看,由此得出的推论实际上是有偏差的,因为你没有考虑到所有这些测量值组都是相关的或聚集的,因为它们都发生在同一生物反应器内。正确处理这个问题的方法是使用混合模型。同样,这是一个比较深奥的话题,但今天我们只讨论一个非常简单的话题。
我们提供了一些参考资料,如果您真的想深入了解混合模型,我推荐您阅读一本名为《JMP》的优秀书籍。这本书非常实用,一旦您开始了解它,混合模型就会随处可见,因为数据和实验往往不仅仅是统计学入门课程中假设的经典独立观察结果。通常,生物反应器中会存在某种聚类因素。
设置方法:我们先来简单介绍一下,先建立一个混合模型和 JMP。实际上,你可以在 JMP 或 JMP Pro 中使用它。我们先用 JMP Pro。Pro 平台还有一些其他功能,我们来试试。首先,你需要拟合模型。然后,我们再建立更紧密的响应模型,这样我们就能得到想要作为固定效应的因子。接下来,我们再添加一些因子项。我们会计算所有主效应,然后计算所有双向交互作用。
接下来是关键部分。要切换到混合模型模式,你需要选择混合模型个性。然后注意,这会触发这些额外的选项卡。混合模型有两种,一种是我们今天要使用的,它使用随机效应;还有一种,我们使用不同的结构进行重复测量。我们今天不会讲解后一种类型,但你可以看到,这正是一些复杂性的来源。
不过,现在我们先做一个可以说是最简单的混合模型,它适合像这样的裂区设置。我们将以生物反应器为例,注意,我已经将它设置为名义变量,而不是连续变量,并将其作为随机效应添加进去。我们得到了三个固定效应或DoE因子,以及它们的相互作用,然后是这个随机效应。对于任何类似数据的统计建模,这都是你想要使用的设置。
我们继续运行这个程序。它运行得很快。为了让你大致了解一下你将看到的内容,现在你可以开始把它当作方差分析来处理,但你会注意到有一些额外的输出。例如,这里我们得到了生物反应器的方差分量估计值,在本例中恰好为负值。这有点不寻常,但这实际上表明每个生物反应器内部存在某种竞争情况。
这可能是有道理的,因为营养物质会被消耗,如果一种营养物质增加,另一种营养物质就可能减少。这是一个固定封闭的场景,所以这可能是有道理的。通常情况下,如果测量值呈正相关,则该值会为正。这是一种测量生物反应器内相关性的方法。通常情况下,主要关注的是DoE因素。正如我们在这里开始研究测试一样,在这种情况下,我们没有看到更紧密的模型有任何显著差异,只是在这个简单的模型中。
但这只是一个起点。你可能想添加额外的协变量,并拟合一个更完整的模型来解释整个系统。但今天,我只想强调一下,对于像这种设置了裂区或在某些区组机制下进行了重复测量的情况,应该使用混合模型。
这就是我要展示的第一个分析。现在让我们转向更偏向预测建模的概念。如果你注意到的话,我们讨论的每个小部分都在解决不同的问题。这就是 JMP 的强大功能和灵活性,这是一个非常棒的数据集,我们可以提出许多不同的问题。
我们现在要把问题从能源部因素转移到更具预测性的想法上,并在此提出一个基本概念。假设我们尝试预测会发生什么?假设我们正在进行这项实验,刚刚完成第13天,我们想预测明天第14天会发生什么,但我们只有截至今天的数据。我们应该如何设置这样的预测问题?
在 JMP 中,我们首先要进行一些数据操作,也就是所谓的数据拆分。我们现在考虑的是每个生物反应器内的时间序列,通过运行表格来实现拆分。现在您可以创建一个表格,也就是所谓的宽表,如下所示,其中只有八行,每个生物反应器一行,所有测量值现在都被排列到不同的列中。
您可以看到,这里是更紧凑的表格,每天一列,我们测量的所有其他变量也都是类似的。在时间序列术语中,这些被称为滞后变量。现在我们有了这个所谓的宽表,它适合预测建模问题。由于只有八行,我们必须非常小心。像这样的数据很容易过拟合。
通常在实践中,你可能会拥有比这里多得多的数据,但为了方便说明,我们先快速浏览几个方面,向你展示我推荐的预测建模方法。有很多不同的方法可以做到这一点,从经典的时间序列数据到JMP等其他预测平台。我想展示我认为可能是最现代、最强大的预测方法。对我来说,这种方法源于我多年参加Kaggle比赛的经验,这些比赛本质上都与预测有关,你会在所有这些比赛中学到一些东西。
今天我要向大家展示的内容,我认为即使不是完全正确,也接近于预测的最佳实践。通常,你要做的第一件事是设置一些折叠,而现在我们要做的是所谓的 K 折交叉验证,也就是从表中取出一小部分行并将它们放在一边。然后,我们会在一部分数据上训练一个模型,然后在另一组数据上进行测试。
大家知道,JMP,我们多年来一直使用这种技术,尽管我们传统上使用所谓的三向分割和训练验证测试。在这里,我们将进行一系列双向分割,我们称之为训练和验证。你必须小心所谓的泄漏,无论你保留什么,都不要让算法在训练期间查看它,因为这样可能会导致结果偏差。
现在 K 折的思路是,我们取一个变量,叫做 A 折。我们只有八行。这行恰好设置为五折,我们随机分配 1 到 5 的数字,但因为只有八行,所以这样做,有几个地方只保留一行,其他三行保留两行。
对于这种情况,可能也有意义……更清晰的做法是进行四重训练,即每次保留两行,然后循环这些行,对模型进行四次拟合。这是我推荐的基本训练方案,即使对于像这样的小数据集也是如此,尤其因为我们必须非常谨慎和严格地防止数据过度拟合,尤其是因为我们将使用我认为最强大的两种方法:XGBoost 插件中实现的提升树,然后我们将使用 Torch 深度学习插件拟合现代深度神经网络。这两个插件都可以在 JMP 市场上找到。
我们先来了解一下 XGBoost,以及安装插件后如何设置,然后它就会变成菜单上的一个选项。你可以使用“创建 K 个折叠列”来创建折叠。我已经这样做了,所以我们直接进入平台吧。
这里的设置和之前类似,但现在我们再次考虑预测。我们想要做的是,我这里有一些分组变量,所以让我们扩展它们。假设我们要预测滴度14,我这里得到的是Y值,现在我们有很多输入选项。当然,我们把DoE因子放进去,然后我们采用一个非常基本的滞后模型,只需取之前的滴度值(我们有13个),并将它们作为X值。现在,这里实际上有超过1000个潜在的预测因子,但同样,为了便于说明,我们尽量简化。
如果您有更多数据,当然希望将其纳入。您可以将这些数据纳入模型。但这里只有八行,如果我们开始过度夸大,那就只会自找麻烦。通常,这些滞后变量往往是非常强大的预测因子,正如您可能猜到的那样。如果您知道……如果您知道今天发生了什么,那么结果可能会类似。如果您查看之前的轨迹,这些通常会成为非常好的预测因子。我们确实想看看它们与我们的 DoE 因子相比如何。然后,让我们加入一些交叉验证变量。我们可以使用……让我们在那里使用折叠 A 变量。我们将进行五次折叠。同样,您可能希望进行四次折叠。这无关紧要。
处理这种小数据需要小心一点,但我们不必太纠结。接下来是 XGBoost 的基本设置器。有很多超参数可以调整。今天我们没时间调整。我们先运行默认模型。通常情况下,默认模型会表现得很好,然后看看会发生什么。这个模型实际上只运行了五次。
看看这里发生了什么。这就是所谓的训练损失。注意它先是下降,然后又回升,这是一个警告信号,表明我们在第五或第六次迭代后开始对数据进行过拟合。你肯定不想在实践中使用这个模型。你会想说要么停止,要么继续。我们可以再做一次。我们继续,直到第五次迭代后停止。这是最简单的做法之一。
如果你想做得更好,另一个想法是,你可以稍微正则化一下模型,或者做一些其他的调整来让它正确,但现在我们的想法还是预测。我们的目标是预测第14天。注意,对于训练数据,我们实际上完全拟合了数据,但这也许并不奇怪。只有几行数据,但验证集,这些就是所谓的不完全预测。
这些指标预示着模型在未来数据上的表现。你可以看到,模型已经开始接近目标了。当然,它远非完美,只有在0.3的平方下,也就是本例中相关性为0.65。我想说,模型正在获得一些提升,而且我认为通过一些调整,你可以做得更好一些。但同样,由于只有八行数据,所以必须非常小心。我只是为了说明一下。通常情况下,你需要更多数据才能真正获得一个以后想要使用的好模型。
然后,XGBoost 附带一些非常好的额外功能,例如,帮助你解释这些变量的重要性。我们可以看到,空气覆盖率几乎是我们最好的预测因子之一,甚至超过了滴度本身的滞后值。这很有意思,所以我们实际上可以开始对我们的 DoE 因子进行一些间接推断。但再次强调,我们这里的重点是预测,而不是直接的统计推断。
现在,作为一种替代模型,让我们使用 Torch 插件构建一个神经网络。设置方式完全相同,所以您需要……您需要安装插件,然后启动平台,实际上,我们将在每个时段使用完全相同的变量。我们想要预测第 14 天,使用我们的 DoE 因子和滞后滴度以及倍数 A。同样,我们将进行五倍。我们直接运行默认设置。多层感知器模型是一个两层模型。我们可以看到,这个模型实际上表现得并不好。事实上,它的 R 方为负。我想说,开箱即用的 XGBoost 表现会更好一些。
但我发现,只要稍微调整一下,它们往往会……它们通常表现相似,而且往往能很好地互补。如果你真的想要绝对最佳的预测,一个技巧就是将两个模型集成在一起,只需保存完整的预测并取平均值即可。这是一个经典的技巧。几乎在每场 Kaggle 比赛中都能看到。人们通常这样做是为了真正发挥出最佳表现。
无论如何,对我来说,JMP Pro 提供了一种非常强大且灵活的方法。您可以添加更多预测因子。您可以快速拟合这些模型,这确实有助于回答一些非常实际的问题,比如,也许您快要完成一个批次了,想决定是否要改天再做?为什么不快速运行一下,看看第二天的预测结果如何,然后据此做出决定,而不是只是等待或使用老式的规则。我认为这些现代预测模型的强大功能和灵活性非常引人注目。
非常感谢您的聆听,希望您能从中受益匪浅。我们非常享受这次合作。我们每个人的背景都略有不同。这是一个非常有趣的项目,我们看到了巨大的潜力,可以在未来做更多的事情。如果您对我们今天展示的任何内容有任何疑问,请随时联系我们,我们很乐意与您进一步交流。