返回介绍

5 DM 工具

发布于 2024-09-08 14:43:39 字数 9432 浏览 0 评论 0 收藏 0

5.1 DM 工具比较

表格 8 DM 工具比较 1

工具名功能特点适用场景
MATLAB不仅具有较强的数据统计、科学计算功能,还具有金融、经济等众多的行业应用工具箱。擅长矩阵计算和仿真模拟; 具有丰富的数学函数,适合算法开发或自主的程序开发; 具有强大的绘图功能。适合学习研究算法和灵活的产品开发。
SAS功能强大的统计分析软件。具有较强的大数据处理能力; 支持二次开发。有一些行业标准,适合工业使用。
SPSS侧重统计分析。使用方便,但不适合自己开发代码,就是说扩展上受限,如果要求不高,已经足够。界面友好,使用简单,但功能强大,也可以编程,能解决大部分统计学问题,适合初学者。
WEKA具有丰富数据挖掘函数,包括分类、聚类、关联分析等主流算法。Java 开发的开源数据分析、机器学习工具。适合于具有一定程序开发经验的工程师,尤其适合于用 Java 进行二次开发。
R类似 MATLAB,具有丰富的数学和统计分析函数。开源并支持二次开发。适合算法学习、小项目的产品研发。

表格 9 数据挖掘常用工具

工具简介
TipDM(顶尖数据挖掘平台) 使用 JAVA 语言开发,能从各种数据源获取数据,建立各种不同的数据挖掘模型(目前已集成数十种预测算法和分析技术,基本覆 盖了国外主流挖掘系统支持的算法)。工具支持数据挖掘流程所需的主要过程:数据探索(相关性分析、主成分分析、周期性分析);数据预处理(属性选择、特征 提取、坏数据处理、空值处理);预测建模(参数设置、交叉验证、模型训练、模型验证、模型预测);聚类分析、关联规则挖掘等一系列功能。
RapidMiner也叫 YALE,提供了图形化界面,采用了类似 Windows 资源管理器中的树状结构来组织分析组件,树上每个节点表示不同的运算符 (operator)。YALE 中提供了大量的运算符,包括数据处理、变换、探索、建模、评估等各个环节。YALE 是用 Java 开发的,基于 Weka 来构 建,也就是说它可以调用 Weka 中的各种分析组件。
KNIME(Konstanz InformationMiner),基于 Java 开发的,可以扩展使用 Weka 中的挖掘算法。KNIME 采用的是类似数据流(data flow)的方式来建立分析挖掘流程,挖掘流程由一系列功能节点组成,每个节点有输入/输出端口,用于接收数据或模型、导出结果。
WEKAWaikato Environment for Knowledge Analysis,是一款知名度较高的开源机器学习和数据挖掘软件。高级用户可以通过 Java 编程和命令行来调用其分析组件。同时,WEKA 也为普通用户 提供了图形化界面,称为 WEKA Knowledge Flow Environment 和 WEKA Explorer,可以实现预处理、分类、聚类、关联规则、文本挖掘、可视化等。

5.2 weka

5.2.1 weka 使用

简介
WEKA 的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),同时 weka 也是新西兰的一种鸟名,而 WEKA 的主要开发者来自新西兰。

WEKA 作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则以及在新的交互式界面上的可视化。

数据格式
WEKA 存储数据的格式是 ARFF(Attribute-Relation File Format)文件,这是一种 ASCII 文本文件。示例如下:

% ARFF file for the weather data with some numric features`
 `%`
 `@relation weather
@attribute outlook {sunny, overcast, rainy}`
 `@attribute temperature real
@data`
 `% 3 instances`
 `sunny,85,85,FALSE,no`
 `sunny,80,90,TRUE,no`
 `overcast,83,86,FALSE,yes

说明:如上所示,一个数据集类似一个``excel``表格,列为``attribute,``行为``data``或``instance. attribute``声明格式为 @attribute ,datatype 有 4 种,分别是 numberic, norminal, string, date。

1)数据预处理 preprocess
包括属性离散化 Discretize, 过滤 filter 等。

**2)关联规则(购物篮分析)**Associate
默认关联规则分析是用 Apriori 算法。

3)分类与回归 Classification & Regression
在 WEKA 中,待预测的目标(输出)被称作 Class 属性,这应该是来自分类任务的“类”。一般的,若 Class 属性是分类型时我们的任务才叫分类,Class 属性是数值型时我们的任务叫回归。分类质量指标:P(正确度),R(召回率),F 值。

  • 训练集 trainset: 用来建立模型
  • 测试集 testset: 用来验证模型
  • 测试:模型建立后,若用训练集进行验证,叫封闭测试;若用测试集验证,则为开放测试。
  • 模型:训练后得到的模型,包括算法,各类参数等

常用算法 :NB…
运行结果分析
//说明:正确率,越大越好
Correctly Classified Instances 25 50 %

1) 聚类分析 cluster
有以下度量:

  • 空间距离
  • 欧氏距离:通常用于数值的属性。
    常用算法 :KNN…
    运行结果分析
    //说明:衡量标准,越小越好
    Within cluster sum of squared errors: 540.7387788014682

2) 命令行工具 simple CLT

//-p [num]指被预测属性的位置; -l 模型路径; -T 测试集路径; -t 训练集路径 -d 生成模型路径
//trainset
java weka.classifiers.trees.J48 -C 0.25 -M 2 -t D:\my_install\Weka-3-6\data-test\bank.arff -d D:\my_install\Weka-3-6\data-test\bank.model
//testset:
java weka.classifiers.trees.J48 -p 9 -l D:\my_install\Weka-3-6\data-test\bank.model -T D:\my_install\Weka-3-6\data-test\bank-test.arff

5.2.2 Package Hierarchies

PackagesDesc
weka.associations关联规则,缺省使用 Apriori 算法
weka.associations.tertius 
weka.attributeSelection 
weka.classifiers分类器
weka.classifiers.bayes贝叶斯方法:native, net
weka.classifiers.evaluation 
weka.classifiers.functions 
weka.classifiers.functions.neural 
weka.classifiers.functions.pace 
weka.classifiers.functions.supportVectorSVM
weka.classifiers.lazy 
weka.classifiers.meta 
weka.classifiers.misc 
weka.classifiers.rules 
weka.classifiers.trees 
weka.classifiers.trees.adtree决策树 Dtree 算法
weka.classifiers.trees.j48 
weka.classifiers.trees.lmt 
weka.classifiers.trees.m5 
... 
weka.clusterers包括 SimpleKMeans 算法
weka.core 
weka.filters 
weka.gui 

5.2.3 weka development

在 WEKA 的安装目录中找到 weka-src.jar,用 winrar 之类的解压缩软件打开,即是一个完好的 JAVA Application 项目。主类可选择 weka.gui.GUIChoosew 然后出现二进制程序所显示的界面了。
开发示例: http://weka.wikispaces.com/MessageClassifier
在 classpath 未设置好的情况下,编码和运行需指定 classpath, 如下:

# compile:
## classpath: –classpath ./weka.jar;./
$java –classpath ./weka.jar;./ MessageClassifier -m email1.txt -c miss -t messageclassifier.model

# training:
java MessageClassifier -m email1.txt -c miss -t messageclassifier.model

# classify:
java MessageClassifier -m email1023.txt -t messageclassifier.model

5.2.4 本节参考

[1]. http://rapid-i.com/content/view/64/74/lang,en/
[2]. http://www.cs.waikato.ac.nz/~ml/index.html
[3]. http://forum.wekacn.org/viewtopic.php?f=2&t=9
[4]. weka 学习总结 http://www.sciencenet.cn/m/user_content.aspx?id=262955

5.3 RapidMiner

RapidMiner 是世界领先的数据挖掘解决方案,在一个非常大的程度上有着先进技术。它数据挖掘任务涉及范围广泛,包括各种数据艺术,能简化数据挖掘过程的设计和评价。
功能和特点

  • 免费提供数据挖掘技术和库
  • 100%用 Java 代码(可运行在操作系统)
  • 数据挖掘过程简单,强大和直观
  • 内部 XML 保证了标准化的格式来表示交换数据挖掘过程
  • 可以用简单脚本语言自动进行大规模进程
  • 多层次的数据视图,确保有效和透明的数据
  • 图形用户界面的互动原型
  • 命令行(批处理模式)自动大规模应用
  • Java API(应用编程接口)
  • 简单的插件和推广机制
  • 强大的可视化引擎,许多尖端的高维数据的可视化建模
  • 400 多个数据挖掘运营商支持
  • 耶鲁大学已成功地应用在许多不同的应用领域,包括文本挖掘,多媒体挖掘,功能设计,数据流挖掘,集成开发的方法和分布式数据挖掘。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文