KNIME 快速指南
KNIME - 简介
由于机器学习模型的隐秘性,其开发一直被认为极具挑战性。通常,要开发机器学习应用程序,您必须是一位优秀的开发人员,并且精通命令驱动开发。KNIME 的引入将机器学习模型的开发带入了普通人的视野。
KNIME 为整个开发过程提供了图形界面(用户友好的 GUI)。在 KNIME 中,您只需定义其存储库中提供的各种预定义节点之间的工作流。KNIME 提供了几个称为节点的预定义组件,用于执行各种任务,例如读取数据、应用各种机器学习算法以及以各种格式可视化数据。因此,使用 KNIME 不需要任何编程知识。这难道不令人兴奋吗?
本教程接下来的章节将教你如何使用几个经过良好测试的机器学习算法来掌握数据分析。
KNIME - 安装
KNIME Analytics Platform 可用于 Windows、Linux 和 MacOS。在本章中,让我们了解一下在 Mac 上安装平台的步骤。如果您使用 Windows 或 Linux,只需按照 KNIME 下载页面上提供的安装说明进行操作即可。所有三个平台的二进制安装程序都可以在 KNIME 的页面 上找到。
Mac 安装
从 KNIME 官方网站下载二进制安装程序。双击下载的 dmg 文件以开始安装。安装完成后,只需将 KNIME 图标拖到应用程序文件夹,如下所示:
KNIME - 首次运行
双击 KNIME 图标启动 KNIME Analytics Platform。最初,系统会要求您设置一个工作区文件夹以保存您的工作。您的屏幕将如下所示:
您可以将选定的文件夹设置为默认文件夹,下次启动 KNIME 时,它将不会
再次显示此对话框。
一段时间后,KNIME 平台将在您的桌面上启动。这是您进行分析工作的工作台。现在让我们看看工作台的各个部分。
KNIME - 工作台
KNIME 启动后,您将看到以下屏幕:
如屏幕截图中所示,工作台包含多个视图。对我们而言,立即有用的视图已在屏幕截图中标记,并在下面列出:
工作区
大纲
节点存储库
KNIME 资源管理器
控制台
描述
在本章的后续内容中,我们将详细了解这些视图。
工作区视图
对我们来说最重要的视图是 工作区 视图。您将在其中创建您的机器学习模型。工作区视图在下面的屏幕截图中突出显示:
屏幕截图显示了一个已打开的工作区。您很快就会学习如何打开现有工作区。
每个工作区包含一个或多个节点。您将在本教程后面学习这些节点的重要性。节点使用箭头连接。通常,程序流是从左到右定义的,尽管这不是必需的。您可以自由地将每个节点移动到工作区的任何位置。两个节点之间的连接线将适当地移动以保持节点之间的连接。您可以随时添加/删除节点之间的连接。对于每个节点,可以选择性地添加一个简短的描述。
大纲视图
工作区视图可能无法一次显示整个工作流。这就是提供大纲视图的原因。
大纲视图显示整个工作区的缩略图视图。此视图内有一个缩放窗口,您可以滑动它以查看 工作区 视图中工作流的不同部分。
节点存储库
这是工作台中另一个重要的视图。节点存储库列出了可用于分析的各种节点。整个存储库根据节点功能进行了很好的分类。您会发现以下类别:
IO
视图
分析
在每个类别下,您会发现多个选项。只需展开每个类别视图即可查看其中包含的内容。在 IO 类别下,您会找到用于以各种文件格式(如 ARFF、CSV、PMML、XLS 等)读取数据的节点。
根据您的输入源数据格式,您将选择合适的节点来读取您的数据集。
到目前为止,您可能已经了解了节点的目的。节点定义了一种特定类型的功能,您可以将其直观地包含在您的工作流中。
分析节点定义了各种机器学习算法,例如贝叶斯、聚类、决策树、集成学习等等。
这些节点提供了这些各种机器学习算法的实现。要在您的分析中应用任何算法,只需从存储库中选择所需的节点并将其添加到您的工作区即可。将数据读取器节点的输出连接到此机器学习节点的输入,您的工作流就创建好了。
我们建议您探索存储库中提供的各种节点。
KNIME 资源管理器
工作台中的下一个重要视图是 资源管理器 视图,如下面的屏幕截图所示:
前两个类别列出了在 KNIME 服务器上定义的工作区。第三个选项 LOCAL 用于存储您在本地计算机上创建的所有工作区。尝试展开这些选项卡以查看各种预定义的工作区。特别是,展开 EXAMPLES 选项卡。
KNIME 提供了几个示例来帮助您开始使用该平台。在下一章中,您将使用其中一个示例来熟悉该平台。
控制台视图
顾名思义,控制台 视图提供了执行工作流期间各种控制台消息的视图。
控制台 视图有助于诊断工作流并检查分析结果。
描述视图
最后一个对我们而言立即相关的视图是 描述 视图。此视图提供对工作区中所选项目的描述。典型的视图如下面的屏幕截图所示:
以上视图显示了 文件读取器 节点的描述。当您在工作区中选择 文件读取器 节点时,您将在此视图中看到其描述。单击任何其他节点将显示所选节点的描述。因此,此视图在学习的初始阶段非常有用,那时您并不确切知道工作区和/或节点存储库中各种节点的目的。
工具栏
除了上面描述的视图之外,工作台还有其他视图,例如工具栏。工具栏包含各种图标,方便快速操作。图标会根据上下文启用/禁用。您可以将鼠标悬停在图标上查看每个图标执行的操作。以下屏幕显示了 配置 图标执行的操作。
启用/禁用视图
到目前为止,您看到的各种视图都可以轻松地打开/关闭。单击视图中的关闭图标将 关闭 该视图。要恢复视图,请转到 视图 菜单选项并选择所需的视图。选定的视图将添加到工作台中。
现在,既然您已经熟悉了工作台,我将向您展示如何运行工作流并研究其执行的分析。
KNIME - 运行你的第一个工作流
KNIME 提供了几个优秀的工作流,方便学习。在本章中,我们将选择安装中提供的一个工作流,以解释各种功能和分析平台的功能。我们将使用一个基于 决策树 的简单分类器进行研究。
加载决策树分类器
在 KNIME 资源管理器中找到以下工作流:
LOCAL / Example Workflows / Basic Examples / Building a Simple Classifier
这也在下面的屏幕截图中显示,供您快速参考:
双击所选项目以打开工作流。观察工作区视图。您将看到包含多个节点的工作流。此工作流的目的是根据来自 UCI 机器学习存储库的成人数据集的民主属性预测收入群体。此机器学习模型的任务是将特定区域的人们分类为收入大于或小于 50K。
下面的屏幕截图显示了 工作区 视图及其大纲:
请注意,存在从 节点 存储库中提取的多个节点,并通过箭头连接到工作流中。连接表示一个节点的输出被馈送到下一个节点的输入。在我们了解工作流中每个节点的功能之前,让我们首先执行整个工作流。
执行工作流
在我们了解工作流的执行之前,了解每个节点的状态报告非常重要。检查工作流中的任何节点。在每个节点的底部,您会找到一个状态指示器,其中包含三个圆圈。决策树学习器节点在下面的屏幕截图中显示:
状态指示器为红色,表示此节点尚未执行。在执行期间,黄色中心的圆圈将亮起。执行成功后,最后一个圆圈将变为绿色。如果发生错误,还有更多指示器可以为您提供状态信息。当处理过程中发生错误时,您将了解它们。
请注意,当前所有节点上的指示器均为红色,表示到目前为止尚未执行任何节点。要运行所有节点,请单击以下菜单项:
Node → Execute All
过一段时间,您会发现每个节点状态指示灯现在都变成了绿色,表示没有错误。
在下一章中,我们将探讨工作流中各个节点的功能。
KNIME - 探索工作流
如果您查看工作流中的节点,您会发现它包含以下内容 -
文件读取器,
颜色管理器
分区
决策树学习器
决策树预测器
评分
交互式表格
散点图
统计
这些在大纲视图中很容易看到,如下所示 -
每个节点在工作流中提供特定的功能。我们现在将研究如何配置这些节点以满足所需的功能。请注意,我们只讨论在当前探索工作流的上下文中与我们相关的节点。
文件读取器
文件读取器节点如下图所示 -
窗口顶部有一些工作流创建者提供的描述。它说明此节点读取成人数据集。从节点符号下方的描述中可以看出,文件名为adult.csv。文件读取器有两个输出 - 一个连接到颜色管理器节点,另一个连接到统计节点。
如果右键单击文件管理器,将显示如下弹出菜单 -
配置菜单选项允许进行节点配置。执行菜单运行节点。请注意,如果节点已运行并且处于绿色状态,则此菜单将被禁用。此外,请注意编辑注释描述菜单选项的存在。这允许您为节点编写描述。
现在,选择配置菜单选项,它将显示包含来自 adult.csv 文件的数据的屏幕,如下面的屏幕截图所示 -
执行此节点时,数据将加载到内存中。整个数据加载程序代码对用户隐藏。您现在可以体会到此类节点的实用性 - 无需编码。
我们的下一个节点是颜色管理器。
颜色管理器
选择颜色管理器节点,然后右键单击进入其配置。将出现颜色设置对话框。从下拉列表中选择收入列。
您的屏幕将如下所示 -
注意两个约束的存在。如果收入低于 50K,则数据点将获得绿色,如果高于 50K,则获得红色。在本章后面查看散点图时,您将看到数据点映射。
分区
在机器学习中,我们通常将所有可用数据分成两部分。较大的部分用于训练模型,而较小的部分用于测试。有不同的策略用于对数据进行分区。
要定义所需的分区,请右键单击分区节点并选择配置选项。您将看到以下屏幕 -
在本例中,系统建模人员使用了相对(%)模式,数据以 80:20 的比例分割。在进行分割时,数据点是随机选取的。这确保您的测试数据可能不会有偏差。在使用线性采样时,用于测试的剩余 20% 数据可能无法正确表示训练数据,因为它在收集过程中可能完全存在偏差。
如果您确定在数据收集过程中保证了随机性,则可以选择线性采样。一旦您的数据准备好用于训练模型,将其馈送到下一个节点,即决策树学习器。
决策树学习器
顾名思义,决策树学习器节点使用训练数据构建模型。查看此节点的配置设置,如下面的屏幕截图所示 -
如您所见,类别为收入。因此,树将基于收入列构建,这就是我们试图在此模型中实现的目标。我们希望将收入高于或低于 50K 的人群分开。
此节点成功运行后,您的模型将准备就绪进行测试。
决策树预测器
决策树预测器节点将开发的模型应用于测试数据集并附加模型预测。
预测器的输出馈送到两个不同的节点 - 评分器和散点图。接下来,我们将检查预测的输出。
评分器
此节点生成混淆矩阵。要查看它,请右键单击节点。您将看到以下弹出菜单 -
单击查看:混淆矩阵菜单选项,矩阵将以单独的窗口弹出,如下面的屏幕截图所示 -
这表明我们开发的模型的准确率为 83.71%。如果您对此不满意,您可以尝试模型构建中的其他参数,特别是您可能希望重新访问和清理您的数据。
散点图
要查看数据分布的散点图,请右键单击散点图节点并选择菜单选项交互式视图:散点图。您将看到以下图表 -
该图根据 50K 的阈值,以两种不同颜色的点(红色和蓝色)显示不同收入群体人员的分布。这些是我们颜色管理器节点中设置的颜色。分布相对于横轴上的年龄绘制。您可以通过更改节点的配置来选择不同的横轴特征。
配置对话框如下所示,我们在其中选择了婚姻状况作为横轴特征。
这完成了我们对 KNIME 提供的预定义模型的讨论。我们建议您自行学习模型中的其他两个节点(统计和交互式表格)。
现在让我们继续本教程最重要的部分 – 创建您自己的模型。
KNIME - 构建你自己的模型
在本节中,您将构建自己的机器学习模型,根据一些观察到的特征对植物进行分类。我们将为此目的使用来自UCI 机器学习存储库的著名鸢尾花数据集。数据集包含三种不同的植物类别。我们将训练我们的模型将未知植物分类到这三个类别之一。
我们将从在 KNIME 中创建一个新的工作流开始,以创建我们的机器学习模型。
创建工作流
要创建新的工作流,请在 KNIME 工作台中选择以下菜单选项。
File → New
您将看到以下屏幕 -
选择新建 KNIME 工作流选项,然后单击下一步按钮。在下一个屏幕上,系统将提示您输入工作流的所需名称以及保存它的目标文件夹。根据需要输入此信息,然后单击完成以创建新的工作区。
一个具有给定名称的新工作区将添加到工作区视图中,如下所示 -
您现在将在此工作区中添加各种节点以创建您的模型。在此之前,您必须下载并准备鸢尾花数据集以供我们使用。
准备数据集
从 UCI 机器学习存储库站点下载鸢尾花数据集下载鸢尾花数据集。下载的 iris.data 文件采用 CSV 格式。我们将对其进行一些更改以添加列名。
在您喜欢的文本编辑器中打开下载的文件,并在开头添加以下行。
sepal length, petal length, sepal width, petal width, class
当我们的文件读取器节点读取此文件时,它将自动将上述字段作为列名。
现在,您将开始添加各种节点。
添加文件读取器
转到节点存储库视图,在搜索框中键入“file”以找到文件读取器节点。这在下面的屏幕截图中可以看到 -
选择并双击文件读取器以将节点添加到工作区。或者,您可以使用拖放功能将节点添加到工作区。添加节点后,您需要对其进行配置。右键单击节点并选择配置菜单选项。您在前面的课程中已经做过。
加载数据文件后,设置屏幕如下所示。
要加载数据集,请单击浏览按钮并选择 iris.data 文件的位置。节点将加载文件的内容,这些内容显示在配置框的下部。一旦您确认数据文件已正确找到并加载,请单击确定按钮关闭配置对话框。
您现在将为此节点添加一些注释。右键单击节点并选择新建工作流注释菜单选项。屏幕上将出现一个注释框,如下面的屏幕截图所示
单击框内并添加以下注释 -
Reads iris.data
单击框外的任意位置退出编辑模式。根据需要调整框的大小并将其放置在节点周围。最后,双击节点下方的节点 1文本以将此字符串更改为以下内容 -
Loads data
此时,您的屏幕将如下所示 -
我们现在将添加一个新的节点,用于将我们加载的数据集划分为训练集和测试集。
添加分区节点
在节点存储库搜索窗口中,键入一些字符以找到分区节点,如下面的屏幕截图所示 -
将节点添加到我们的工作区。将其配置设置为如下 -
Relative (%) : 95 Draw Randomly
以下屏幕截图显示了配置参数。
接下来,在两个节点之间建立连接。为此,请单击文件读取器节点的输出,保持鼠标按钮按下,将出现一条橡皮筋线,将其拖动到分区节点的输入处,释放鼠标按钮。现在在两个节点之间建立了连接。
添加注释,更改描述,根据需要定位节点和注释视图。在此阶段,您的屏幕应如下所示 -
接下来,我们将添加k-Means节点。
添加k-Means节点
从存储库中选择k-Means节点并将其添加到工作区。如果您想复习k-Means算法的知识,只需在工作台的描述视图中查找其描述即可。这在下面的屏幕截图中显示 -
顺便说一句,在做出最终决定使用哪种算法之前,您可以在描述窗口中查找不同算法的描述。
打开节点的配置对话框。我们将使用此处显示的所有字段的默认值 -
单击确定以接受默认值并关闭对话框。
将注释和描述设置为以下内容 -
注释:分类集群
描述:执行聚类
将分区节点的顶部输出连接到k-Means节点的输入。重新定位您的项目,您的屏幕应如下所示 -
接下来,我们将添加一个集群分配器节点。
添加集群分配器
集群分配器将新数据分配给现有的一组原型。它有两个输入 - 原型模型和包含输入数据的datatable。在描述窗口中查找节点的描述,如下面的屏幕截图所示 -
因此,对于此节点,您必须进行两个连接 -
分区节点的 PMML 集群模型输出 → 集群分配器的原型输入
分区节点的第二个分区输出 → 集群分配器的输入数据
这两个连接在下面的屏幕截图中显示 -
聚类分配器不需要任何特殊配置。只需接受默认值即可。
现在,为该节点添加一些注释和描述。重新排列节点。您的屏幕应如下所示:
至此,我们的聚类已完成。我们需要以图形方式可视化输出。为此,我们将添加一个散点图。我们将在散点图中以不同的颜色和形状显示三个类别。因此,我们将首先通过颜色管理器节点,然后通过形状管理器节点过滤k-Means节点的输出。
添加颜色管理器
在资源库中找到颜色管理器节点。将其添加到工作区。将配置保留为默认值。请注意,您必须打开配置对话框并点击确定以接受默认值。为节点设置描述文本。
从k-Means的输出到颜色管理器的输入建立连接。在此阶段,您的屏幕将如下所示:
添加形状管理器
在资源库中找到形状管理器并将其添加到工作区。将其配置保留为默认值。与上一个节点类似,您必须打开配置对话框并点击确定以设置默认值。从颜色管理器的输出到形状管理器的输入建立连接。为节点设置描述。
您的屏幕应如下所示:
现在,您将向模型中添加最后一个节点,即散点图。
添加散点图
在资源库中找到散点图节点并将其添加到工作区。将形状管理器的输出连接到散点图的输入。将配置保留为默认值。设置描述。
最后,为最近添加的三个节点添加一个组注释
注释:可视化
根据需要重新定位节点。在此阶段,您的屏幕应如下所示。
这完成了模型构建任务。
KNIME - 测试模型
要测试模型,请执行以下菜单选项:节点→执行全部
如果一切正常,则每个节点底部的状态信号将变为绿色。否则,您需要在控制台视图中查找错误,修复它们并重新运行工作流。
现在,您已准备好可视化模型的预测输出。为此,右键单击散点图节点并选择以下菜单选项:交互式视图:散点图
这在下面的屏幕截图中显示:
您将在屏幕上看到如下所示的散点图:
您可以通过更改x轴和y轴来浏览不同的可视化效果。为此,请单击散点图右上角的设置菜单。将出现一个弹出菜单,如下面的屏幕截图所示:
您可以在此屏幕上设置图表的各种参数,以从多个方面可视化数据。
这完成了我们的模型构建任务。
KNIME - 总结和未来工作
KNIME提供了一个用于构建机器学习模型的图形工具。在本教程中,您学习了如何在您的机器上下载和安装KNIME。
总结
您学习了KNIME工作台中提供的各种视图。KNIME为您的学习提供了几个预定义的工作流。我们使用其中一个工作流来学习KNIME的功能。KNIME提供了几个预编程的节点,用于以各种格式读取数据、使用多种机器学习算法分析数据,以及最终以多种不同方式可视化数据。在本教程的最后,您从头开始创建了自己的模型。我们使用著名的鸢尾花数据集,使用k-Means算法对植物进行分类。
您现在可以将这些技术用于您自己的分析。
未来工作
如果您是开发人员,并且希望在您的编程应用程序中使用KNIME组件,您会很高兴地知道KNIME可以与多种编程语言(如Java、R、Python等)原生集成。