QlikView+R(以iris数据作为案例)(一)

来源:互联网 发布:上古卷轴5跳出优化补丁 编辑:程序博客网 时间:2024/06/06 08:38

QlikView+R(以iris数据作为案例)
一、序
之所以想要写这样一篇文章是因为在对QlikView的逐步深入了解后越来越觉得它不那么开放,而之前接触到的工具虽说不多,但是大都会比QlikView开放。这里开放的标准不是指它能够支持的数据源一类的,如果在这方面的支持都很少的话,那就不是开放能力的问题了而是生存能力的问题了。这里的开放性主要是指工具能力的拓展可能性。
基于此,在自己对R有一定的了解基础上,觉得R的开放性是其能力出众的重要原因之一,也就是所谓的群智群力。而QlikView也有它能够生存下去的理由,它主要是基于企业实际运用,界面化操作以及所谓的内存分析快速反应。所以我在想是否可以将两者进行融合,各取所长。
在查阅了资料后,发现有大神已经实现了(http://community.qlik.com/docs/DOC-8080)。而我存在的价值就是花些时间自己学习增长已及为大家展现一个更加详细的步骤。
且中文网站对于这个问题的讨论好像不多,所以在下就献丑了。问题思路和实现都极简单,望大家勿喷。今天先展示以脚本进行QlikView+R操作的方法。


二、+R
Iris 数据就不介绍了,想必大家都比较熟悉,经常被用来作为案例解释数据。在UCI可以直接下载。(http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data)
+R的思路也非常简单。简而言之就是准备数据->用R处理QlikView不能处理的数据->结果返回到QlikView中。
QlikView+R思路
至于哪些是QlikView不能处理的数据。以本案例来说,iris数据集有5个维度,class维度是用来标识鸢尾花是哪一种鸢尾花的。现在我们假设class维度是没有的,只有前面四个维度的数据,而我们要如何利用前面四个维度来区分某一条数据是哪一类鸢尾花呢?简言之:聚类。一般来说QV处理这类问题有点难度。
然而我们利用R的kmean聚类算法则可以很简单的处理这个问题。当然,还有很多成熟的算法可以用来做这种聚类,具体情况需要根据数据和需求来决定,对于iris数据集和问题来说,kmean足矣。
准备工作:编写能够实现聚类R程序。
R程序

在QlikView脚本中启动R并调用R处理后生成的数据进行分析。
QV脚本

这里写图片描述
R的分类画图:
这里写图片描述
QlikView中展示:
1、 R处理后的分类结果
这里写图片描述
2、 Iris数据集原本的分类
这里写图片描述
3、 聚类比较
这里写图片描述 这里写图片描述
可以发现,虽然聚类效果不错,但是还是与本来的类标签有出入。
4、 使用QV来展示聚类效果的好处就是可以具体的查看和自定义查看。
比如说:
这里写图片描述
5、 这样或许可以两者的长处互补。


三、后语
这样的QlikView+的好处很明显,就是可以扩展QlikView的分析能力,自然也就扩展了生存能力。
当然这样做也会存在问题,那就是在实际运用中如何实现无缝衔接以及两者工具之间的配合以及运用R算法可能带来的问题(比如算法的准确性和企业决策所需要的可靠性能否达成妥协?)。
所以,有了以上问题后我们就需要考虑这种融合的适用范围以及改进方法。当然以上问题有些是我们可以考虑的有些则是力有不逮的。
希望大家多多交流,批评指正。
参考文献:http://community.qlik.com/docs/DOC-8080

0 0