备忘--简单比较SPSS、RapidMiner、KNIME以及Kettle四款数据分析工具
SPSS、RapidMiner、KNIME以及Kettle四款工具都可以用来进行数据分析,只是彼此有各自的侧重点和有劣势。它们都可以逐步的定义数据分析过程,也同样都可以对数据进行ETL处理。笔者从自己关心的角度简单对比以上四款数据分析工具。
SPSS不用多说,一款成功的商业数据分析软件,涵盖了统计分析、数据挖掘分析等各种数据分析方法。界面简单易用,分析过程定义时非常直观方便。因为,没有源码,无从知道其过程的调度机制。
RapidMiner一款出色的开源数据分析工具。有非常丰富的数据分析算法。过程定义界面也简单易用,帮助文档也很全面。过程定义时的每一步操作都有端口的概念,不同的端口可以接入和输出不同意义的数据,但数据的结构是一样的,这意味着可以将任意两个端口进行连接,只是有时无法得到正确的结论。粗看了下RapidMiner的源码,发现其整个过程是单线程调用的。这样的调用方式,在处理较大数据集时可能会有一定的影响。其过程定义文件是用xml语言进行描述的,格式很工整,体现了前期良好的设计,唯一不足的是,将调试用的断点也设计进了过程定义文件当中。
KNIME也是一款出色的开源数据分析工具,但其使用起来不是很好上手。其每一步操作与RapidMiner一样,也带有端口的概念。但是其端口间的连接关系有严格的约定。就是一个操作的输出端口只能连其它固定几种操作的输入端口,否则你是无法将这两个操作建立前后执行顺序的。从一定意义上讲,这样的约束可以帮助人们减少定义过程中的错误。单就程序实现讲,其复杂度也是提升了的。但对于笔者这样的使用者来说,怎么都创建不了一个分析过程,(主要是用的不熟,总违反端口连接约束)顿时失去大半兴趣,没有对其进行再进一步的研究了。
Kettle最早的定位是一个ETL工具,它有非常丰富的数据处理操作,后面的版本中也加入了部分数据分析功能。其过程定义界面也非常简单直观,与SPSS一样,操作都没有端口的概念。操作间的关系是建立在操作与操作之上的。但其设计中,正因为没有端口概念的出现,当其进行错误信息的处理流程时,我们看其过程定义生成的xml文件会发现,错误流定义在XML文件中加入的很不规整,是以补丁的方式加入的,影响了系统整体设计的完整性与美观度。不过,其可以对错误流进行处理的概念是这几款产品中独有的,还是要特别表扬一下。另外,通过Kettle的源代码我们可以知道,其调度是多线程并发进行的。即读数据操作每读到一定的数据就传给后面的处理操作,然后继续读数据。在数据很大的情况下,有可能是读操作还在继续读数据,而早期读出的数据在处理完后,都在向外写出数据了。Kettle的调用机制更利于对较大数据的分析处理,占用的内存相对会较少,多线程并发的处理速度相对也会比较高。
以上四款工具都是单机版工具,都不太适用于对海量数据的分析处理。
备忘--简单比较SPSS、RapidMiner、KNIME以及Kettle四款数据分析工具的更多相关文章
- Colletion View 简单的备忘
UIColletionView 这篇只是做UIColletionView的常用属性.代理方法和数据源方法的备忘,之后做一些自定义布局,增加删除动画等. UIColletionViewFlowLayou ...
- 个人 WPF+EF(DBFirst) 简单应用开发习惯及EF学习测试(备忘) -- 2
接上篇:个人 WPF+EF(DBFirst) 简单应用开发习惯及EF学习测试(备忘) -- 1 Step1 在主程序中设置连接数据库 从Model类库的 App.Config 把数据库字符串拷贝出来, ...
- Spring boot 注解简单备忘
Spring boot 注解简单备忘 1.定义注解 package com.space.aspect.anno;import java.lang.annotation.*; /** * 定义系统日志注 ...
- 简单备忘一下Linux下的wget和curl如何使用http proxy
简单备忘一下Linux下的wget和curl如何使用http proxywget -e "http_proxy=porxyhost:port" www.baidu.comcurl ...
- ECMAScript 5(ES5)中bind方法简介备忘
一直以来对和this有关的东西模糊不清,譬如call.apply等等.这次看到一个和bind有关的笔试题,故记此文以备忘. bind和call以及apply一样,都是可以改变上下文的this指向的.不 ...
- 『备忘』HttpWebRequest 在 POST 提交时, 标头(Headers)丢失原因
近来研究 HttpWebRequest —— 辅助类完成时,POST JSON数据 总会 丢失标头(Headers). HttpWebRequest POST JSON数据,分如下几步: > 将 ...
- 11. 星际争霸之php设计模式--备忘模式
题记==============================================================================本php设计模式专辑来源于博客(jymo ...
- Bonobo Git Server (Simple git server for Windows.) 测试备忘
Bonobo Git Server是一款Windows上的Git Server,它使用IIS即可,走的是Http协议,只要简单的安装就能使用,但是因为我的项目大小有1.35GB在 push 的时候一直 ...
- java开发微信公众平台备忘
简单记录下前段时间开发的电子书的 公众平台的一些备忘及开发心得经验等 eclipse的一些技巧: 1.ctrl+shift+o 自动添加必要import空间及移除无用import 项目备忘+说明 1. ...
随机推荐
- C#读取带命名空间的xml,xaml文件的解决方案
使用C#读取xml文件有三种常用的方式: 1.xmlDocument 2.XmlTextReader 3.Linq To Xml 但是这些方式在读写有些带命名空间的xml时就不知道怎么办了(例如把xa ...
- ubuntu导出文件
ye@aliyun:python$ ./deploy.sh backup static-rw-r--r-- 1 ye ye 174K 2014-03-22 10:36 ./backup/fbz_sta ...
- JavaScript模块化开发实例
最近接触了一些JavaScript开发的例子,在这里与大家一起分享一下: 例子:当我们一个团队在写Js文件的时候,你一个人写的JS代码自己可以看懂也可以维护,但是别人想对你的JS进行扩展的话,如果都在 ...
- jquery插件的写法
jquery插件及zepto插件,写法上有些区别. 区别点: 1.自定义事件的命名空间 jq的时间命名空间是用点“.”,而zepto是用冒号“:” 如 //jquery $(this).trigger ...
- 我的pch文件
/** * 1. RGB背景色 */ #define PPCOLOR_RGB(r,g,b) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue: ...
- python加密解密
from Crypto.Cipher import Blowfish #easy_install pycrypto可以获得
- 创建基于文件组的数据库SQL救命语句
CREATE DATABASE Sales ON PRIMARY (NAME = SPri1_dat, FILENAME = 'D:\SQLDB\SPri1dat.mdf', SIZE , MAXSI ...
- ASP.NET多用户操作相同互斥的对象
[一篮饭特稀原创,转载请注明出自http://www.cnblogs.com/wanghafan/p/3574154.html ] 现象:公有静态变量不可用于ASP.NET多用户操作,否则该变量会被多 ...
- OA学习笔记-004-Spring2.5配置
一.jar包 (1)spring.jar (2)Aop包 aspectjrt.jaraspectjweaver.jar (3)动态代理 cglib-nodep-2.1_3.jar (4)日志 comm ...
- perl 导出函数到当前名字空间
Vsftp:/root/perl/7# cat scan1.pm package scan1; require Exporter; @ISA = qw(Exporter); @EXPORT_OK = ...