级别:初级
丹尼尔·瓦伦特, 博士, JMP 高级产品经理, SAS
乔恩·韦兹, JMP SAS 销售与营销高级副总裁
抽象的
通常,JMP 用户都经历过交互式 JMP 会话,该会话让他们同时打开许多窗口和分析报告。 虽然在这种“浮动窗口模式”下使用 JMP 可能对某些人有用,但在某些情况下,首选选项卡式界面。 用户还可能希望将某些文件与分析项目相关联,但没有主窗口提供的完整列表。 出于这些原因,我们在 JMP 14 中创建了项目。 项目为 JMP 提供单一文档界面、选项卡式、可重新配置的工作空间、为文件添加书签的位置以及窗口列表,使用户可以轻松导航各种打开的窗口、数据表、脚本等;它还推出支持文件,如 .pdf 和 .ppt 文档。 项目可用于快速打开和关闭与一个或多个单独分析活动相关的多个文件,并可用于保持并行项目独立,从而无需运行多个 JMP 会话。 最后,JMP 14 中的项目还可以为您提供一种利用其归档功能共享和协作工作的简单方法。
JMP 项目概述
JMP 中的项目是在 JMP 中组织使用 JMP 的数据表、报告、脚本、日志和工件的一种方式。 您还可以将外部支持文件(例如 .txt、.ppt、.html、.xls 和图像)与相应的项目文件(与原生 JMP 文件的逻辑组关联)相关联。
项目文件本身 (.jmpprj) 是一个独立文件,它指向光盘上的其他项目,而不是充当放置文件的容器。 因此,这提供了基于容器的项目的灵活性和组织纪律,同时保持文件可在操作系统上找到。
JMP 项目是从文件菜单(文件 > 新建项目)创建的。 创建新项目将立即打开一个未保存的项目,在其中添加 JMP 窗口和文件,从而可以轻松创建临时项目。
图 1 显示了 JMP 项目的示例。 一个项目包括三个主要部分:
- 书签列表:指向磁盘上要与项目关联的物理文件的链接。 这就像主窗口中的精选列表。 书签可以是单个文件的链接、文件夹的链接(自动“监视”其中的内容,包括子文件夹)和组,提供特定于项目中文件的本地组织,而不影响磁盘上文件的文件夹结构。
- 窗口列表:打开的数据表以及与数据表关联的报告和图表的分层列表。
- 工作空间:窗口的选项卡列表,包括脚本、图形、模型输出和当前在内存中打开的数据表。 布局可以从单列选项卡(例如,像Web浏览器)排列或排列成选项卡列表的列。 打开项目时布局会保留,关闭时布局会存储。

图1:带有注释的主要部分的示例 JMP 项目。
例如,项目可用于:
- 结果展示。 该项目如图 2A 所示。 该项目已配置为隐藏书签和窗口列表。 有一个带有单个选项卡的列,其中包含运行演示文稿的日志。 该日志包含指向脚本和支持文件的链接,单击这些链接时,它们会在项目中显示为选项卡。 该日志能够为项目中的其余项目添加注释和上下文。
- 预测建模工作流程。 该项目如图 2B 所示,将在本文后面的案例研究 II 中介绍。 该项目包括在单个数据集上执行标准预测建模任务。 多个模型在构建时会进行拟合并保存到 Formula Depot 中。 Formula Depot 位于其自己的列中,因此可以轻松引用。 最后,添加模型比较并生成评分代码以将模型投入生产。
- 美国能源部工作流程。 该项目如图 2C 所示,类似的 DOE 工作流程将在本文后面的案例研究 I 中介绍。 该项目用于组织创建设计实验、比较多个候选设计、收集数据、分析数据以及创建输出以与他人共享结果的步骤。 它还可以包括有关实验的支持材料(照片、报告等)。
- 脚本项目。 该项目如图 2D 所示。 它用于帮助 JSL 脚本编写者组织他们的窗口,并使其在编写脚本时更轻松高效。 该项目包括专为在项目中使用而配置的模式的脚本索引。 正在处理的脚本包括嵌入的日志以及书签列表中支持文件或函数的链接。

图2:在 JMP 中使用项目的方式。
JMP 项目的目标用户是谁?
项目是 JMP 中的一种可选工作方式,许多用户将继续在 JMP 的标准“多窗口模式”下操作。 然而,对于那些以特定方式使用 JMP 或在窗口管理或文件管理方面有特定困难的人来说,该项目值得一试。
许多用户更喜欢运行 JMP 平台,例如带有最大化窗口的 Graph Builder。 不幸的是,一旦 JMP 中的窗口最大化,新用户很容易丢失数据表或难以导航到当前打开的其他窗口。 通过利用选项卡式工作区,该项目解决了许多这些难题。 用户只需导航到另一个打开的选项卡(就像使用 Web 浏览器一样)即可访问另一个分析报告或数据表。
对于拥有标准每周或每日报告的人来说,该项目可以成为支持这项工作的有效容器。 例如,与查询生成器相结合,项目可以包含一个脚本,该脚本从数据库中获取最新数据并生成一组标准报告;然后可以将其与日期一起保存,以简化此例行报告任务。
JMP 的长期用户可能会记得(并怀念)Windows 版本 JMP 上的主窗口。 现在,通过该项目,他们可以恢复大部分功能。
对于以交互方式或通过脚本生成许多窗口的用户来说,他们感觉好像在会话中迷失了方向,该项目可以帮助缓解这种痛苦。 当用户同时处理多个项目时,关闭单个项目可以自动关闭与该项目关联的所有文件和窗口,同时保持其他项目不变,并且无需手动关闭多个窗口。
对于已经为 JMP 输出和文件制定了自己的文件组织方案的用户,项目可以提供一个框架或非常适合使用 JMP 的文件夹结构方式。 最后,计算机硬盘上遍布文件的用户可以将单个文件添加到项目中,以在杂乱的文件夹之上平移有组织的结构。
处理项目
将文件放入项目中
首先创建一个新项目(文件 > 新项目)。 可以通过添加文件将文件单独添加到项目中。 添加到项目的文件将添加到书签列表。 单独添加文件时,在项目本地创建一个组可能很有用,这可以进一步组织您的书签。 通过运行“新建组”命令创建一个组,然后将该组重命名为具有描述性的名称。
- 专家提示:组可用于设置模板项目,以便在需要新项目时更轻松地启动和运行。 “数据集”、“参考脚本”、“查询”、“图形脚本”、“支持文件”和“输出”等组可以作为创建新项目的良好起点。 将项目另存为“模板项目”,并在每次需要新项目时另存为。
还可以将文件夹添加到项目中,当您已在磁盘上组织文件时,这非常有用。 只需添加文件夹即可在项目中添加书签。 文件夹自动包含所有子文件夹并受到“监视”(即,当文件移入或移出文件夹时,它也会移入或移出项目中的书签)。 这意味着您需要小心,因为从项目监视文件夹中删除文件可能会破坏已保存项目中的脚本或报告。 当项目关闭并再次打开时,文件夹会自动刷新,并且可以使用上下文单击 > 刷新来手动刷新。
在文件的书签列表中,有几个有用的上下文单击命令,允许您显示提供的信息,包括文件名、路径、大小、有关创建的信息、上次写入和上次访问日期,以及复制到项目存档中的复选框(稍后将在存档部分介绍)。 show in finder 命令显示该文件在操作系统上的位置。 复制路径可让您将磁盘上的文件路径获取到剪贴板,这在您编写引用文件的脚本时非常有用。 最后,“删除...”选项允许您从项目中删除书签(推荐)或移至垃圾箱/回收站。
文件还可以通过拖放自动添加书签。 从操作系统中,可以将拖动的文件拖放到书签列表中,然后自动添加书签。 可以用同样的方式为文件夹添加书签。
如果您在项目中另外制作了数据表,则可以直接保存并添加书签。 例如,您使用“表”>“摘要”创建了一个摘要表。 文件保存到磁盘后,可以将其从窗口列表拖放到书签中。
许多用户希望从一个项目转移到多窗口模式,从多窗口模式转移到一个项目(仅使用该项目来封装会话),或者从一个项目转移到另一个项目(例如,当单个分析项目变得复杂时) 。 为此,请使用“窗口”>“移至/移出项目”,如图 3 所示。
只需选择源项目(如果您想从单独的单独窗口移动项目,则选择“无”)和目标项目(可以是“无”、新项目或现有打开的项目)。 有用于移动所有文件和为所有文件添加书签的快速按钮,或者您可以选择从源到目标的数据表和关联报告的子集。
单击数据表会自动显示当前项目中打开的所有报告窗口。 如果您不想保留它们,只需在移动完成后关闭选项卡或窗口即可。 数据表也可以直接从此窗口添加书签。 另请注意,数据表必须保存在磁盘上才能从此工具添加书签。 但是,未保存的文件仍然可以移动到新项目或多个窗口。
单击表中的单个行会显示一个有用的缩略图,这可以帮助确定移动中需要哪些文件以及相关的图表和报告。
图 3. 移至/移自项目窗口。
工作空间管理
将文件添加到项目后,就可以使用项目的工作区部分将图形和报告配置为选项卡式排列,如图 1 所示。 默认情况下,当在项目中创建新窗口时,它们会添加到位于工作区单列中的选项卡中。
让我们看一个简单的示例项目。 首先,创建一个新项目,然后立即将其保存到硬盘上。 接下来,创建一个名为“示例项目”的新文件夹,并将项目文件放入该文件夹中。 通过这样做,可以将所有脚本、数据表和支持材料添加到一个文件夹中。我将在项目中创建三个组:数据表、脚本和输出。 然后,我将向项目添加两个文件:“FHPI.jmp”和“StatesMetadata.jmp”。
我们将使用该项目编写自动化脚本来开发标准的端到端分析工作流程,包括通过查询脚本进行数据处理、数据清理、可视化、建模、内容管理和用于传达结果的最终输出。
要开始开发自动化脚本,我还可以实例化帮助>脚本索引,以防我需要查找任何内容。 当脚本索引加载到项目中时,它会作为选项卡添加。 如果我可以将其停靠在数据表和输出的右侧,那就更有用了。 为此,只需剥离脚本索引选项卡即可。 图形生成器放置区显示在项目中,允许您拖放以重新配置项目工作区,如图 4 所示。

图 4. 当选项卡从选项卡列表中剥离时,项目工作区放置区会亮起。 拖放区带有注释,以便更轻松地配置项目工作区。
通过单击选项卡标题上的小选项卡图标可以最大化或最小化各个选项卡。 例如,当您想要专注于单个平台报告或正在使用图形生成器等平台时,这可能会很有用,该平台可以从项目中更多的空间中受益。 它还可用于项目内的临时演示。
当选项卡最大化时,书签和窗口列表将保留。 可以通过切换“显示书签”和“显示窗口列表”命令从“项目”菜单中手动隐藏它们。 默认情况下隐藏的项目范围日志也可以从此菜单中显示。
如果您在任何时候重新排列布局并且不喜欢结果,可以使用撤消和重做布局命令来帮助。 您还可以通过从“项目”菜单重置布局来返回默认的单选项卡列表。
工作区中的选项卡可以通过单击它们(将鼠标光标悬停在它们上方会生成缩略图)、在窗口列表中双击或使用向左和向右箭头浏览选项卡来导航。
保存和归档项目
继续我们的分析项目,我们将使用查询生成器将两个表连接在一起并创建第三个表,用于建模和可视化。 可以构建查询生成器脚本,然后将其保存到项目文件夹中。 我将其添加到项目中并将其拖放到脚本组中。
如图 5 所示。 脚本、查询和应用程序或仪表板可以直接通过右键单击菜单运行,从而节省了在项目中打开它然后运行脚本的点击操作。 它还可以帮助保持项目干净,因为不会为未主动编辑的“生产”脚本打开选项卡。

图5 。 通过右键单击直接运行脚本,无需在选项卡中打开它。
运行脚本会生成第三个数据表,其中两个表已正确连接。 JoinTables 选项卡的名称旁边有一个 *,表示该文件尚未保存到磁盘。 如果我尝试从“文件”>“保存项目”保存项目,我将收到以下警告消息,如图 6 所示。

图6 。 项目警告消息中未保存的文档。
此时,您已经决定要做什么,因为在保存项目之前必须保存或关闭所有文件。 单击“全部保存”将提示您先将所有未保存的文件保存到磁盘,然后再保存项目。 有一个复选框(默认情况下处于关闭状态)可让您在保存项目时自动保存以前保存的文档(仅包含未保存的更改)。 请小心使用此设置,尤其是在开始使用项目时,因为您可能会对想要放弃的数据表进行临时更改(添加列、删除列、更改单元格等)。
“全部关闭”选项将对所有未保存的文档执行关闭且不保存的操作,但使您不必单独保存每个文档。 如果您有一个生成大量输出的脚本,但您不一定想要保存它,那么这会很有用。
您还可以手动保存未保存的文档,因为一旦选项卡列表中的所有 * 消失,您只需单击一下即可保存项目。
该项目以略有不同的方式保存图形和其他平台输出。 由于该项目利用了 JMP 中的会话脚本功能,因此图形和平台输出会在保存和关闭时自动保留,无需将脚本保存到数据表、日志或将报告保存为 .jrp 文件。 这对于想要保存分析项目状态而无需先学习任何 JSL 的新用户特别有用。
播放项目中的脚本
带书签的 .jsl、.jmpquery 和 .jmpapp/.jmpappsource 文件可以直接从书签列表运行(就像 JMP 中的主窗口一样)。 通过右键单击其中任一文件,您可以看到有关如何处理这些文件的扩展选项,如图 7 所示。

图 7. 项目中常用 JMP 文件类型的上下文菜单。
通过此右键菜单选项,您可以快速构建应用程序、运行脚本或直接执行查询,而无需打开 AppBuilder/Dashboard Builder、Query Build 或 JSL 脚本编辑器。 该项目将运行,结果将自动在项目的新选项卡中打开,从而节省点击次数。 此外,查询生成器还有一个“Run On Open”选项(如图 7 所示)。 双击查询将自动执行,无需打开查询生成器。
仪表板和网络报告
仪表板和 Web 报告是与其他人共享和交流 JMP 分析结果的常用方法。 JMP 项目支持这两个功能。 文件 > 新建仪表板将打开仪表板生成器界面,允许您查看项目中的所有可用报告。 您可以排列报告、添加过滤器、文本和其他项目;从红色小三角菜单中单击“运行仪表板”后,生成的仪表板将显示在项目的新选项卡中(参见图 8)。

图 8. 在项目中运行使用 Dashboard Builder 构建的仪表板的结果。 生成的仪表板将填充项目中的新选项卡。
Web 报告类似(文件 > 发布)。 创建 Web 报告功能将自动将项目中的所有可用选项卡视为填充 Web 报告的适用图表。 因此,网络报告是与当前没有 JMP 的人员共享项目工作流程的好方法。
案例研究 1:DOE 项目
雇用项目s作为...的一部分d的设计e实验(D氧E) JMP 内可以帮助传达结果,以及帮助实验本身的工作。
使用D氧JMP 中的 E 表示:
- 运行D氧E平台创建数据采集方案。
- 使用 JMP 表作为基础数据采集。
- 利用各种 JMP 图形平台查看实验运行结果。
- 使用 JMP 模式ling 平台根据收集的数据构建预测模型并作为模型的一部分锻炼,查看各种诊断图以确保开发出合理的模型。
- 构建图形和表格来传达 D 的结果氧E 有意图的促销英一个组织的行动。
通用程序详细说明上面在S步骤 1-5经常结果s在许多JMP 中的窗口和表格。 该过程也可能需要数月时间移动从S步骤 1 至S步骤 5 ,这意味着 JMP 用户必须将重要结果保存到她的文件系统中,记住它们的保存位置并跟踪整个过程。
本案例研究将使用一个任何人都可以运行的简单实验来展示如何p项目可以帮助 D氧E 通过管理窗口、跟踪结果和传达结论。
我想运行一个简单的实验来展示 JMP 如何自定义设计器可用于在以下条件下进行实验A多变的, 例如在这种情况下的总能量。
这个实验的目标是在我的家用微波炉上找到一个合适的设置来煮爆米花。 我可以控制三个变量:
- 时间(我可以设置烹饪时间的时间,以毫米:秒为单位) 。
- 电源(不透明L等级 1-10,不确定这对温度意味着什么) 。
- 品牌(市场上有很多品牌;我选择了稍微伪装一下熟悉的品牌威尔伯和绝密) 。
按照爆米花盒上的说明,我决定改变时间三到五分钟和功率L等级 5 至L等级 10. 然后我开始检查设计空间的角落,这意味着短时间和低功率,以及长时间和高功率。 这些角代表我选择的级别的最大和最小总能量(图9) 。

图9 :上面的左图和右图显示了设计空间的角落。
从我的早期结果可以清楚地看出,空间的角落是不可行的。 因此,我需要使用 JMP 自定义设计器来创建受限设计空间。我想使用 JMP Projects,所以我首先打开编辑一个新项目并将其命名为“我的爆米花实验”如图所示F图 10.

图10: DOE 工作流程开始时的空项目的屏幕截图。
然后,我在项目中启动了自定义设计器并设置了我的响应和因素,如图 11 所示。

图11:启动自定义设计来设置实验运行。
现在是时候选择我的模型 (RSM) 并设置总能量(时间 + 功率级别)的约束。 通过简单地设置约束即可完成对因子的线性约束,如图 12 所示。

图 12:设置实验约束并添加我希望能够建模的效果以确定所需的运行次数。
我选择了“Make Design”,结果 JMP 显示了候选设计。 图 13 显示了我使用的设计,其时间和功率级别格式与我在微波炉上的设置相匹配。

图 13:实验运行表。
接下来,我爆了16盒爆米花。 我使用杯子测量作为采样工具,从每次运行中选择一个有代表性的杯子,并计算玉米粒总数和爆开玉米粒的数量。 数据如图14所示。

图 14:实验结果。
我查看了一些图表,并使用弹出的数字作为二项式响应构建了广义回归。 按品牌划分的时间与功率热图,其中弹出颜色与总颜色的比率从低(蓝色)到高(红色)显示,功率级别和时间的中到高组合具有更好的结果。 回归模型的分析器最好地传达了结果,并附加了威尔伯品牌爆米花对总能量更稳健的结论。 图 15 和 16 显示了这些结果。

图 15. 按品牌划分的时间与功率热图,其中弹出次数与总颜色的比率从低(蓝色)到高(红色)。

图 16:刻画器显示最终模型以及改变品牌、时间和功率因素对响应的影响。
最后,我编写了一个简单结论文档,添加了 JMP 中的两个 PDF 图形;我通过选择项目窗口左上角的“添加文件”按钮将此结论文档添加到项目中,如图 17 所示。

图 17. 为分享这个实验的结果添加了简单的结论。
我现在有一个项目文件,其中包含我的设计设置、数据、模型和支持图形,以及结论文档。 这是一个独立的文件,是我对这个实验的记忆的基础。 如果我将项目和支持文件存储在我的团队成员现在和将来都可以检索的位置,它也可以作为该实验的企业记忆。
案例研究 2:预测建模项目
我们将使用 to 项目来协助构建模型的任务,以根据一组物理化学特性预测葡萄酒的质量(参见 Cortez 等人,2009 年)。 该数据集可从 UCI 机器学习存储库(Lichman 2013)下载。 我们可以使用该项目来管理通过多文件导入导入数据的过程,探索和清理生成的导入数据表,构建图表,使用 JMP Pro 中的各种机器学习技术构建多个候选模型,比较模型,决定使用并最终生成评分代码以帮助将此建模投入生产的模型。 我们将遵循 JMP 中的端到端分析工作流程(参见图 18)来演示项目如何自然地支持该流程。

图 18. JMP 中的端到端分析工作流程。
历史数据可以直接从 UCI 机器学习网站下载: http://archive.ics.uci.edu/ml/datasets/Wine+Quality 。 需要下载三个文件:winequality-red.csv、winequality-white.csv 和 winequality.names。 创建项目的第一步是转到 JMP 中的文件 > 新建项目,并在桌面上创建一个名为“Wine Modeling Project”的文件夹。我会将所有三个文本文件放入此文件夹中。
我会将项目文件保存到葡萄酒质量项目文件夹中,然后创建几个组来帮助我组织书签:01-原始数据、02-JMP 数据表、03-脚本、04-分数代码、05-输出。
我将通过将所有三个原始数据文件从查找器拖放到原始数据文件夹来为它们添加书签。
接下来,我想将文件放入 JMP 数据表中。 我将使用多文件导入自动打开两个 CSV 文件并将它们连接起来,而无需编写脚本或使用表格菜单(文件 -> 打开多个...)。 要仅打开 .csv 文件,我将确保按扩展名进行选择:.csv。并选中单选按钮以查找堆栈相似文件。 我将检查“添加文件名”列,以便维护哪些样品是红酒,哪些样品是白葡萄酒。 我将把脚本保存到脚本窗口,并将脚本保存到项目中,这样如果有新数据进来并且我想重新生成 JMP 数据表,我可以直接执行此操作,而无需再次通过 Multiple 对话框文件导入(图 19)。 我将通过将脚本从窗口列表拖动到书签来为脚本添加书签,然后关闭脚本。

图 19. 多个文件导入设置。
现在我的数据集已在单个 JMP 数据表中打开,我将保存该文件,然后将其添加到项目中的书签。 我可以使用 Recode 添加一列(颜色),显示该示例中葡萄酒的类别。 此建模练习的目标是使用相对便宜的测量理化特性(如残留糖、酒精或亚硫酸盐)的方法来预测相对昂贵的收集葡萄酒专业口味测试的方法。 我们很幸运拥有具有这两种属性的历史数据,并且我们可以使用良好的交叉验证技术在此历史数据上构建模型,该模型可能适用于我们只有物理化学属性的新数据。 图 20 显示了所选优质葡萄酒的分布矩阵。 我们可以在其他衡量标准的分布中看到,某些值可能存在一些分离,以对这些高评分葡萄酒进行细分(即,质量分数较高的葡萄酒似乎往往具有较低的残留糖分和较高的酒精含量) 。 我们将通过建立几个模型来检验这个假设。
通过执行多变量分析并查看相关性颜色图,我们还可以看到许多度量彼此高度相关,这对于逐步回归或最小二乘等标准建模技术来说将具有挑战性。

图 20. 理化特性、颜色和质量评分的分布矩阵。 精选评价较高的葡萄酒。 理化性质相关性的彩色图显示在右侧。
为了评估模型性能并为我们的各种建模技术提供同样的机会来预测葡萄酒质量,我们将采用交叉验证来诚实评估模型性能。 基本上,我们将把我们拥有的数据分成三组:训练(用于构建模型)、验证(用于微调模型并平衡复杂性和简约性与性能),最后是测试(数据的子集)数据不用于建模,而仅用于模拟新数据的输入,因此我们判断模型对新数据的执行能力)。
为了构建验证列,我将使用“分析”>“预测建模”中的“创建验证列”实用程序。 我将选择分层随机选项,然后单击“葡萄酒颜色”列,以确保红葡萄酒和白葡萄酒的训练组、验证组和测试组中的样本比例相同。 我将对训练组、验证组和测试组进行 70%/20%/10% 的样本。
我们将构建几个候选模型,然后将它们发布到 Formula Depot。 Formula Depot 非常适合项目。 我将打开它(分析 > 预测建模),然后将 Formula Depot 停靠在项目右侧其自己的列中。
现在我们将构建提升树、引导森林、神经网络和几个广义回归模型。 当我构建各个模型时,我会将结果发布到 Formula Depot。

图 21. 最终的预测建模项目。
看起来 Bootstrap Forest 模型是最适合测试数据的模型。 Bootstrap Forest 很好地捕捉了底层模型形式。 图 21 显示了我如何设置项目以查看我在选项卡列表中构建的所有模型,其中 Formula Depot 中的模型集合停靠在工作区右侧,模型比较直接位于模型输出下方以供查看可变重要性和各种候选模型的分析器。
Bootstrap Forest 擅长捕捉这样一个事实:增加葡萄酒的酒精度可以在一定程度上提高葡萄酒的质量,如图 22 所示。 该图显示了历史数据中生产最高品质葡萄酒所需的设置。 我们可以通过两种方式与他人分享这些结果。 一是通过将 Formula Depot 中的模型评分代码以多种语言(如 SAS、Python、C、JavaScript 或 SQL)保存,也可以保存为 PPT 或 HTML。

图 22. Bootstrap Forest 模型预测葡萄酒品质。
此交互式报告可以与没有 JMP 的其他人共享。 分析器在网络上保持交互式,因此可以交互式地调整值以查看对葡萄酒质量的影响。 模型评分代码和交互式 HTML5 报告也可以在项目中添加书签。
参考
- Cortez、A. Cerdeira、F. Almeida、T. Matos 和 J. 雷斯. 通过物理化学特性的数据挖掘来模拟葡萄酒偏好。
摘自《决策支持系统》,Elsevier,47(4):547-553,2009。
- 利奇曼,M.(2013)。 UCI 机器学习存储库 [ http://archive.ics.uci.edu/ml ]。 加利福尼亚州欧文:加利福尼亚大学信息与计算机科学学院。