前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >初学者福利!无需编码,使用KNIME构建你的第一个机器学习模型

初学者福利!无需编码,使用KNIME构建你的第一个机器学习模型

作者头像
AiTechYun
发布2018-03-02 17:31:42
6.8K0
发布2018-03-02 17:31:42
举报
文章被收录于专栏:ATYUN订阅号ATYUN订阅号

对初学者来说,有太多的东西需要同时学习是机器学习面临的最大挑战之一,特别在你不知道如何编码的情况下。如果你没有过编写代码的经验,那么你可以使用GUI驱动的工具开始学习数据科学。这篇文章将首先介绍一个基于GUI的工具-KNIME。到本文结束时,你将能够在不编写代码的情况下预测零售商店的销售情况。

为什么选择KNIME?

KNIME是一个基于GUI的工作流建立的强大的分析平台。这意味着,你不需要知道如何编写代码就可以使用KNIME,并获得深入的见解。你可以执行从基本的输入输出到数据操作、转换和数据挖掘等功能。它将整个流程的所有功能整合到一个单独的工作流中。

下面让我们开始吧!

1.设置系统

首先需要安装KNIME,并将它设置在你的PC上。

步骤1:访问 www.knime.com/downloads

步骤2:为你的PC确定正确的版本。

步骤3:安装该平台,并为KNIME设置工作目录以存储其文件。

这就是你的主屏幕在KNIME上的样子。

1.1创建你的第一个工作流

在我们深入了解KNIME的工作原理之前,让我们先定义几个关键术语来帮助我们理解,然后看看如何在KNIME中开创一个新的项目。

节点(Node):节点是任何数据操作的基本处理点。它可以根据你在工作流程中选择的内容进行多种操作。

工作流(Workflow):工作流是你在平台上完成特定任务的步骤或操作的序列。

左上角的Workflow Coach将向你展示KNIME社区中所推荐的特定节点的百分比。Node Repository(节点存储库)将显示特定工作流所拥有的所有节点,这取决于你的需求。一旦你创建了第一个工作流,你还可以去“Browse Example Workflows(浏览示例工作流)”查看更多的工作流。这是向任何问题构建解决方案的第一步。

要设置工作流,你可以遵循以下步骤。

步骤1:找到File菜单,点击New。

步骤2:在你的平台中创建一个新的KNIME工作流,并将其命名为“Introduction”。

步骤3:当你点击Finish时,你应该已经成功地创建了你的第一个KNIME工作流。

这只是你在KNIME上的空白工作流。现在,你可以通过从repository中拖拽任何节点到你的工作流中来探索和解决任何问题。

2.介绍KNIME

KNIME是一个平台,在今天的数据科学的边界上,它可以帮助我们解决任何我们可能想到的问题,从最基本的可视化或线性回归到高级深度学习的主题,KNIME可以做到这一切。

作为一个示例,我们在本教程中要解决的问题是在Datahack中可以访问的“Big Mart Sales(大商场销售)”实践问题。地址:https://datahack.analyticsvidhya.com/contest/practice-problem-big-mart-sales-iii/

问题陈述如下:

Big Mart的数据科学家收集了2013年在不同城市的10家商店的1559种产品的销售数据。此外,还定义了每个产品和商店的某些属性。其目的是建立一个预测模型,并找出每个产品在特定商店的销售情况。

使用这个模型,Big Mart将尝试了解产品和商店的属性,这些特性在增加销售中起着关键的作用。

2.1导入数据文件

让我们从第一步开始,导入我们的数据。

将“file reader”节点拖放到工作流中,并双击它。接下来,浏览需要导入到工作流程中的文件。

在这篇文章中,我们将学习如何解决“Big Mart Sales”的实践问题,我将从大商场的销售中导入训练数据集。

当你导入数据集时,这就是预览后的样子。

让我们将一些相关的列形象化,并找出它们之间的相关性(Correlation)。相关性帮助我们发现哪些列可能相互关联,并在最终的结果上具有更高的预测能力来帮助我们。

为了创建一个关联矩阵,我们在node repository中输入“Linear Correlation”,然后将其拖放到我们的工作流中。

在像显示的那样拖放之后,我们将把文件阅读器的输出连接到节点的“Linear Correlation”的输入。点击顶部面板上的绿色按钮“Execute”。现在右键单击相关节点并选择“View: Correlation Matrix”来生成下图。

这将帮助你选择那些重要的特性,并通过在特定的储存格上悬停(hover)来获得更好的预测。接下来,我们将对数据集的范围和模式进行可视化,以便更好地理解它。

2.2可视化和分析

我们想从数据中了解到的最重要的事情之一是,哪些商品被卖得最多。有两种解释信息的方式:

1.Scatterplot(散点图)

在我们的node repository的视图选项卡下搜索“Scatter Plot”。将其拖放到与你的工作流类似的方式中,并将文件阅读器的输出连接到该节点。接下来,配置你的节点来选择需要的数据的行数(我选择了3000),并希望可视化。

单击execute,然后View: Scatter Plot。

我选择了X轴为Item_Type,Y轴为Item_Outlet_Sales。

上面的图代表每一种商品类型的销售,可以看出水果和蔬菜的销售量是最高的。

2.Pie Chart(饼形图)

为了理解数据库中所有产品类型的平均销售估计,我们将使用饼形图。

单击Views下的Pie Chart node并将其连接到你的文件阅读器。选择你需要的用于隔离的列,并选择你喜欢的聚合方法,然后应用。

这张图表显示的是销售在各种产品上的平均分配。“Starchy Foods(淀粉类食品)”的平均销售额达到了7.7%。

我只使用了两种类型的视觉效果,尽管你可以在浏览“Views”选项卡时,以多种形式浏览数据。你可以使用直方图、折线图等来更好地可视化你的数据。

3.如何清洗你的数据?

在训练你的模型之前,你可以在你的方法中包括数据清洗和特征提取。在这里,我将介绍KNIME中数据清洗步骤的概述。

为了进一步理解,请遵循“数据探索和特性工程”这篇文章的内容。文章地址:https://www.analyticsvidhya.com/blog/2016/01/guide-data-exploration/

3.1寻找缺失值(Missing Values)

在我们虚拟估算值之前,我们需要知道哪些值是缺失的。

再次访问node repository,并找到节点“Missing Values”。拖放它,并将我们的文件阅读器的输出连接到节点。

3.2虚拟估算值(Imputations)

要虚拟估算值时,选择节点Missing Values,然后单击configure。根据所需要的数据类型选择适当的数据,然后“Apply”。

现在,当我们执行它时,带有估算值的完整数据集将在节点的输出端口“Missing Values”中准备好。在我的分析中,我选择了这些方法:

字符串(String):最常见的值

数字(双)(Number(Double)):中值

数字(整)(Number(Integer)):中值

你可以从各种各样的虚拟估值技巧中选择:

字符串:

1.下一个值(Next Value)

2.之前的值(Previous Value)

3.自定义值(Custom Value)

4.删除行(Remove Row)

数字(双和整):

1.平均值(Mean)

2.中值(Median)

3.之前的值(Previous Value)

4.下一个值(Next Value)

5.自定义值(Custom Value)

6.线性插值(Linear Interpolation)

7.移动平均线(Moving Average)

4.训练你的第一个模型

让我们来看看如何在KNIME中构建一个机器学习模型。

4.1实现线性模型

首先,我们训练一个包含数据集所有特性的线性模型,以了解如何选择特性和构建模型。

访问你的node repository,并将“Linear Regression Learner”拖到你的工作流中。然后将在“Missing Value”节点的“Output Port(输出端口)”中收集的清洗数据连接起来。

这应该是你现在的屏幕视觉。在configuration选项卡中,排除Item_Identifier,并在顶部选择目标变量。完成此任务后,需要导入Test data(测试数据)以运行你的模型。

将另一个文件阅读器拖放到你的工作流中,并从你的系统中选择测试数据。

正如我们所看到的,测试数据也包含了缺失值。我们将以与训练数据相同的方式运行“Missing Value”节点。

在我们对测试数据进行清洗之后,我们将引入一个新的节点“Regression Predictor(回归预测器)”。

通过将learner的输出与预测器的输入连接起来,将模型加载到预测器中。在预测器的第二个输入中,加载你的测试数据。

预测器会根据你的learner自动调整预测栏,你也可以手动修改它。KNIME有能力在“Analytics”标签下训练一些非常专业的模型。比如:

1.聚类

2.神经网络

3.集成学习(Ensemble Learners)

4.朴素贝叶斯(Naïve Bayes)

5.提交你的解决方案

在你执行预测器之后,输出几乎已经准备好提交了。

在你的node repository中找到节点“Column Filter(列筛选)”,并将其拖到你的工作流中。将你的预测器的输出连接到列筛选中,并将其配置为你需要的过滤出的列。在这种情况下,你需要Item_Identifier, Outlet_Identifier和 Outlet_Sales的预测。

执行“Column Filter”,最后搜索节点“CSV Writer”,并记录下你的硬盘驱动器上的预测。

调整路径来设置你想要的.csv文件存储,并执行该节点。最后,打开.csv文件来纠正列名作为我们的解决根据。将.csv文件变为一个.zip(压缩)文件并提交你的解决方案!

这是获得的最后一个工作流图。如果想导出一个KNIME工作流,你可以:点击File ->Export KNIME Workflow

在此之后,选择需要导出的合适的工作流并单击Finish!

这将创建一个.knwf文件,你可以把它发送给任何人,只要点击一下就可以访问它了!

6.限制

KNIME是一种非常强大的开源工具,但它有自己的局限性。主要包括:

  • 可视化技术并不像其他开源软件(例:RStudio)那样简洁和优雅。
  • 版本更新不受支持,你将不得不重新安装软件。(例如:为了更新从版本2到版本3的KNIME,你需要一个全新的安装,而更新将无法工作)。
  • 不像Python或CRAN论坛社区那么大,所以需要花很长时间才能对KNIME添加新的内容。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ATYUN订阅号 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么选择KNIME?
  • 1.设置系统
  • 2.介绍KNIME
  • 3.如何清洗你的数据?
  • 4.训练你的第一个模型
  • 5.提交你的解决方案
  • 6.限制
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档