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

对初学者来说,有太多的东西需要同时学习是机器学习面临的最大挑战之一,特别在你不知道如何编码的情况下。如果你没有过编写代码的经验,那么你可以使用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添加新的内容。

本文分享自微信公众号 - ATYUN订阅号(atyun_com)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-08-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏华章科技

Python爬虫新手进阶版:怎样读取非结构化网页、图像、视频、语音数据

导读:常见的数据来源和获取方式,你或许已经了解很多。本文将拓展数据来源方式和格式的获取,主要集中在非结构化的网页、图像、视频和语音。

24130
来自专栏机器之心

资源 | 让你事半功倍的小众Python库

提取数据,特别是从网络中提取数据是数据科学家的重要任务之一。Wget 是一个免费的工具,用于以非交互式方式从 Web 上下载文件。它支持 HTTP、HTTPS ...

16430
来自专栏CDA数据分析师

资源 | 让你事半功倍的小众Python库

提取数据,特别是从网络中提取数据是数据科学家的重要任务之一。Wget 是一个免费的工具,用于以非交互式方式从 Web 上下载文件。它支持 HTTP、HTTPS ...

17230
来自专栏人工智能LeadAI

MLSQL解决了什么问题

1、项目难以重现,可阅读性和环境要求导致能把另外一个同事写的python项目运行起来不得不靠运气

26130
来自专栏机器学习算法与Python学习

资源 | 让你事半功倍的小众Python库

Python 是世界上发展最快的编程语言之一。它一次又一次地证明了自己在开发人员和跨行业的数据科学中的实用性。Python 及其机器学习库的整个生态系统使全世界...

12820
来自专栏张善友的专栏

基于模型的测试工具: Spec Explorer

一、什么是基于模型的测试 Wiki的描述如下:基于模型的测试属于软件测试领域的一种测试方法。按照此方法,测试用例可以完全或部分的利用模型自动产生。以上所说的模型...

784100
来自专栏新智元

【重磅】TensorFlow 1.0 官方正式发布,重大更新及5大亮点

【新智元导读】昨天凌晨谷歌正式发布了TensorFlow1.0版,改进了库中的机器学习功能,发布了XLA的实验版本,对Python和Java用户开放,提升了de...

40970
来自专栏MixLab科技+设计实验室

全民刷军装背后的AI技术及简单实现

昨天有Design-AI-Lab用户后台留言,问为什么换军装的h5这么火,但没见到有技术文章分析如何实现。 我回复说,大概是比较简单吧,主要工作是图像合成。 ...

474100
来自专栏SAP最佳业务实践

从SAP最佳业务实践看企业管理(140)-库存进出策略

如何实现先进先出? 按照批次管理对仓库物料实施管理即可。即明确批次管理标准,入库产品按规定给其相应批次标识,并按照物料类别、批次号分层或分区存放,发料时,严格按...

33840
来自专栏新智元

DeepMind 开源内部深度学习框架 Sonnet,研究通过梯度下降学习

【新智元导读】DeepMind 今天开源了最新的深度学习框架 Sonnet。Sonnet 被专门设计用于与 TensorFlow 协同工作,能够更方便、直接地构...

34030

扫码关注云+社区

领取腾讯云代金券