WEKA-过滤器算法学习

抱怨不会让你成功,努力才会让你出色

概述

Weka中实现的过滤算法。所有的过滤器都是输入数据集进行某种程度的转换,转换为适合数据挖掘的形式。选择某个过滤器之后,过滤器的名字以及默认参数会出现在Choose按钮旁边的输入框中,通过单击框 可以在通用对象编辑器中设置其属性。过滤器和参数都会以命令行的形式出现在输入框。
这里写图片描述

无监督属性过滤器

  1. 添加和删除属性:

    • Add:在一个给定的位置添加属性
    • AddID:用户指定缩影的属性列表中插入一个数字标标识符属性,标识符主要是便于跟踪。
    • Remove:删除数据集合中指定范围的属性InterquartileRange过滤器添加新属性,以指示实例的值是否可以视为离群值或者极端值。
    • AddCluster:先将一种聚类算法应用于数据,然后进行过滤。用户通过编辑器选择聚类算法。
    • AddExpression:过滤器通过将一个数学函数应用于数值型属性而生成一个新的属性。
    • MathExpression:类似于AddExpression。
    • NumericTransform:对选中的数值属性可以调用Java 函数,可以执行任意的转换。
    • Normalize:将数据集中的全部数值属性规范化为[0,1]空间。
  2. 改变值

    • SwapValue:交换同一个标称属性的两个值的位置。
    • MergeTwoValues:将一个标称属性的两个值合并为一个单独的类别,新的名称是两个原有值的字符串的链接。
    • ReplaceMissingValues:替代缺失值。
    • NumbericCleaner:使用默认的值取代数值属性中值太大、太小 或者接近于某一个特定值。
  3. 转换
    • MakeIndicator:将标称属性转换为二元指示符属性,将用于多个数据集转换为多个类别的数据集
  4. 字符串转换
    • StringToNominal用一组值将其转换为标称型。
    • ChangeDateFormat:更改用于解析日期属性的格式化字符串,可以指定JavaSimpleDateFormat类支持的所有类型的格式。
  5. 时间序列
  6. 随机化

无监督实例过滤器

  1. 随机化子采样
    • Randomize:用于将数据中实例进行随机重排。
    • RemovePercentage:删除数据集中给定百分比的实例。
    • RemoveFrequentValues:删除满足某个标称型属性值最经常或者最不经常使用的对应的实例。
    • SubsetByExpression:满足用户提供的表达式的所有实例。
  2. 稀疏矩阵
    • NonSparseToSparse:全部输入实例转换为稀疏格式。
    • SparseToNonSparse:将稀疏格式的实例转换为非稀疏格式。

有监督属性过滤器

  1. Discretize:将数据集中在一定范围内的数值属性离散化为标称属性,用户指定属性的范围以及强制属性进行二元离散化。
  2. NrminalToBinary: 将全部的标称属性转换为二元的数值属性。
  3. ClassOrder:更改类别排序。
  4. AddClassfication:使用指定分类器为数据集添加分类、分类分布和错误标志。

有监督实例过滤器

  1. Resample:与同名的无监督实例过滤器是类似,但它保持在子样本的类别分布。
  2. SpreadSubSample:也产生一个随机子样本,但是可以控制最稀少和最常见类别之间的频率差异。

应用案例

参考学习内容(感谢http://www.huangyunkun.com/)

添加属性

属性添加
属性添加
添加属性取值空间
添加取值空间
属性次序交换
属性次序交换

离散化

无监督离散化和有监督的离散化。
无监督的离散化数值属性的java类是Discretize,它实现了等宽和等频两种离散化方法。
原始数据分布
这里写图片描述
等宽离散化
这里写图片描述
等频离散化
这里写图片描述

总结:一般情况下,等频离散化之后直方图大致等高,但如果有很多实例的值都完全相等,等频离散化也没法做到等频。

有监督的离散化
设置有监督离散化
总体查看

posted @ 2016-01-18 15:31  snowwolf101  阅读(1683)  评论(0编辑  收藏  举报