weka数据预处理
Weka数据预处理(一)
对于数据挖掘而言,我们往往仅关注实质性的挖掘算法,如分类、聚类、关联规则等,而忽视待挖掘数据的质量,但是高质量的数据才能产生高质量的挖掘结果,否则只有"Garbage in garbage out"了。保证待数据数据质量的重要一步就是数据预处理(Data Pre-Processing),在实际操作中,数据准备阶段往往能占用整个挖掘过程6~8成的时间。本文就weka工具中的数据预处理方法作一下介绍。
Weka 主要支持一种ARFF格式的数据,含有很多数据过滤方法。关于ARFF格式文件,可以在此处了解详情。
Weka的数据预处理又叫数据过滤,他们可以在weka.filters中找到。根据过滤算法的性质,可以分为有监督的(SupervisedFilter)和无监督的(UnsupervisedFilter)。对于前者,过滤器需要设置一个类属性,要考虑数据集中类的属性及其分布,以确定最佳的容器的数量和规模;而后者类的属性可以不存在。同时,这些过滤算法又可归结为基于属性的(attribute)和基于实例的(instance)。基于属性的方法主要是用于处理列,例如,添加或删除列;而基于实例的方法主要是用于处理行,例如,添加或删除行。
数据过滤主要解决以下问题(老生常谈的):
数据的缺失值处理、标准化、规范化和离散化处理。
数据的缺失值处理:weka.filters.unsupervised.attribute.ReplaceMissingValues。对于数值属性,用平均值代替缺失值,对于nominal属性,用它的mode(出现最多的值)来代替缺失值。
标准化(standardize):类weka.filters.unsupervised.attribute.Standardize。标准化给定数据集中所有数值属性的值到一个0均值和单位方差的正态分布。
规范化(Nomalize):类weka.filters.unsupervised.attribute.Normalize。规范化给定数据集中的所有数值属性值,类属性除外。结果值默认在区间[0,1],但是利用缩放和平移参数,我们能将数值属性值规范到任何区间。如:但scale=2.0,translation=-1.0时,你能将属性值规范到区间[-1,+1]。
离散化(discretize):类weka.filters.supervised.attribute.Discretize和weka.filters.unsupervised.attribute.Discretize。分别进行监督和无监督的数值属性的离散化,用来离散数据集中的一些数值属性到分类属性。
下文将详细介绍一下Weka数据过滤类。
Weka数据预处理(二)
首先来看一下,有关属性—有监督过滤器。
AddClassification
该过滤器使用给定的分类器对原始数据添加分类标签,并给出类的分布以及关于原始数据集的错误分类标记。
其实就是利用分类算法对原始数据集进行预分类,其结果与在classify阶段得到的结果基本一致,同样包括分类的正确率等信息。
AttributeSelection
该过滤器,用于进行属性选择。根据给定的挖掘任务,利用合适的评估器,选择最有利于当前挖掘任务的属性。
ClassOrder
该过滤器用于改变的数据对象顺序,适用于binary对象和nominal对象。
Discretize
离散化过滤器,用于将连续属性离散化。使用频率非常高的一个过滤器,在实际应用当中,离散化也是很常见的数据预处理步骤。
NorminalToBinary
标称值转化为二分值。举个例子吧,看官请看下图,一目了然。

Nominal value

Binary value
下面谈到的是实例—有监督过滤器
Resample
让人又爱又恨的抽样过滤器。利用放回或者不放回方法抽取特定大小的随机样本。
抽样方法有很多种,基于水库的、链式抽样、分层抽样等等。
SMOTE
同样是抽样过滤器,叫综合少数过采样技术。他要求被采样的原始数据集必须全部存储在内存中。详细内容可以参考Synthetic Minority Over-sampling Technique。
SpreadSubsamp
该分类器需要得知类标是属性中的哪一个.当获得了类标之后,他会计算出类标属性的分布,同时,按照参数M,指定类标分布的最大差距,比如当给出参数W时,调整数据实例的权重。
注意,M参数设定值为l时,那么就认为是均匀分布,当设定为0的时候,那么不进行类标分布的拓展(SPread);如果设定大于l,那么这个值就表示了分布最大的类标属性(类标属性最为常见的值)和分布最小的属性(类标属性最为稀少的值)的分布的比例。
StratfiedRemoveFold
该过滤器简单的使用n重交叉验证的方法,将数据集进行分割,并返回按照参数指定的子集。
关于无监督方法的过滤器,可以参考:http://www.cnblogs.com/htynkn/archive/2012/04/02/weka_3.html
参考:
输入数据与ARFF文件--数据挖掘学习和weka使用(二)
数据预处理和weka.filters的使用--数据挖掘学习和weka使用(三)
weka数据预处理的更多相关文章
- WEKA中的数据预处理
数据预处理包括数据的缺失值处理.标准化.规范化和离散化处理. 数据的缺失值处理:weka.filters.unsupervised.attribute.ReplaceMissingValues. 对于 ...
- 借助 SIMD 数据布局模板和数据预处理提高 SIMD 在动画中的使用效率
原文链接 简介 为发挥 SIMD1 的最大作用,除了对其进行矢量化处理2外,我们还需作出其他努力.可以尝试为循环添加 #pragma omp simd3,查看编译器是否成功进行矢量化,如果性能有所提升 ...
- R语言进行数据预处理wranging
R语言进行数据预处理wranging li_volleyball 2016年3月22日 data wrangling with R packages:tidyr dplyr Ground rules ...
- Scikit-Learn模块学习笔记——数据预处理模块preprocessing
preprocessing 模块提供了数据预处理函数和预处理类,预处理类主要是为了方便添加到 pipeline 过程中. 数据标准化 标准化预处理函数: preprocessing.scale(X, ...
- Deep Learning 11_深度学习UFLDL教程:数据预处理(斯坦福大学深度学习教程)
理论知识:UFLDL数据预处理和http://www.cnblogs.com/tornadomeet/archive/2013/04/20/3033149.html 数据预处理是深度学习中非常重要的一 ...
- R语言--数据预处理
一.日期时间.字符串的处理 日期 Date: 日期类,年与日 POSIXct: 日期时间类,精确到秒,用数字表示 POSIXlt: 日期时间类,精确到秒,用列表表示 Sys.date(), date( ...
- 对数据预处理的一点理解[ZZ]
数据预处理没有统一的标准,只能说是根据不同类型的分析数据和业务需求,在对数据特性做了充分的理解之后,再选择相关的数据预处理技术,一般会用到多种预处理技术,而且对每种处理之后的效果做些分析对比,这里面经 ...
- Python数据预处理—归一化,标准化,正则化
关于数据预处理的几个概念 归一化 (Normalization): 属性缩放到一个指定的最大和最小值(通常是1-0)之间,这可以通过preprocessing.MinMaxScaler类实现. 常用的 ...
- sklearn数据预处理-scale
对数据按列属性进行scale处理后,每列的数据均值变成0,标准差变为1.可通过下面的例子加深理解: from sklearn import preprocessing import numpy as ...
随机推荐
- mysql查询所有字段(*),并且联表时需要特别注意的地方
如果不标明*是读取哪个表,确实会将所有三个表都读出来.需要小心
- 推荐!国外程序员整理的 PHP 资源大全
推荐!国外程序员整理的 PHP 资源大全 2014/08/02 · PHP, 工具与资源 · 8.5K 阅读 · 1 评论· php 分享到:0 与<YII框架>不得不说的故事—安全篇 R ...
- PHP文件操作 之统计目录大小
<?php //定义一个函数 统计目录大小函数 function dirSize($dirName) { //判断目录是否存在 if (!file_exists($dirName)) { die ...
- BundleConfig 的使用 通配符
//是不是说一定要是前缀文件呢 OK 通过 通配符只能使用在前缀或后缀 //捆绑名称 bundles.Add(new StyleBundle("~/caijinhao/caijinhao&q ...
- Memcache技术分享:介绍、使用、存储、算法、优化、命中率
1.memcached 介绍 1.1 memcached 是什么? memcached 是以LiveJournal旗下Danga Interactive 公司的Brad Fitzpatric 为首开发 ...
- ASP.NET WebForm与ASP.NET MVC的不同点
ASP.NET WebForm ASP.NET MVC ASP.NET Web Form 遵循传统的事件驱动开发模型 ASP.NET MVC是轻量级的遵循MVC模式的请求处理响应的基本开发模型 ASP ...
- java JDK8 学习笔记——第16章 整合数据库
第十六章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API中的接口会有数据库厂商操作,称为JDBC驱动程 ...
- 读书笔记——《图解TCP/IP》(1/4)
读书笔记——<图解TCP/IP>(1/4) 经典摘抄 第一章 网络基础知识 1.独立模式:计算机未连接到网络,各自独立使用的方式. 2.广域网 WAN 局域网 LAN 城域网 MAN 3. ...
- Redis-分布式
package test.jedis; import java.util.HashSet; import java.util.Set; import org.junit.Test; import re ...
- Visual Mingw
Visual-MinGW 是一个专门为MinGW所设计的IDE.如果,你曾经用过VC++ 6.0这个IDE,你的第一感觉就是,Visual-MinGW和VC++ 6.0非常相似.所以,对于曾经用惯VC ...