WEKA-过滤器算法学习
抱怨不会让你成功,努力才会让你出色
概述
Weka中实现的过滤算法。所有的过滤器都是输入数据集进行某种程度的转换,转换为适合数据挖掘的形式。选择某个过滤器之后,过滤器的名字以及默认参数会出现在Choose按钮旁边的输入框中,通过单击框 可以在通用对象编辑器中设置其属性。过滤器和参数都会以命令行的形式出现在输入框。
无监督属性过滤器
添加和删除属性:
- Add:在一个给定的位置添加属性
- AddID:用户指定缩影的属性列表中插入一个数字标标识符属性,标识符主要是便于跟踪。
- Remove:删除数据集合中指定范围的属性InterquartileRange过滤器添加新属性,以指示实例的值是否可以视为离群值或者极端值。
- AddCluster:先将一种聚类算法应用于数据,然后进行过滤。用户通过编辑器选择聚类算法。
- AddExpression:过滤器通过将一个数学函数应用于数值型属性而生成一个新的属性。
- MathExpression:类似于AddExpression。
- NumericTransform:对选中的数值属性可以调用
Java 函数,可以执行任意的转换。 - Normalize:将数据集中的全部数值属性规范化为[0,1]空间。
改变值
- SwapValue:交换同一个标称属性的两个值的位置。
- MergeTwoValues:将一个标称属性的两个值合并为一个单独的类别,新的名称是两个原有值的字符串的链接。
- ReplaceMissingValues:替代缺失值。
- NumbericCleaner:使用默认的值取代数值属性中值太大、太小 或者接近于某一个特定值。
- 转换
- MakeIndicator:将标称属性转换为二元指示符属性,将用于多个数据集转换为多个类别的数据集
- 字符串转换
- StringToNominal用一组值将其转换为标称型。
- ChangeDateFormat:更改用于解析日期属性的格式化字符串,可以指定
Java 的SimpleDateFormat 类支持的所有类型的格式。
- 时间序列
- 随机化
无监督实例过滤器
- 随机化子采样
- Randomize:用于将数据中实例进行随机重排。
- RemovePercentage:删除数据集中给定百分比的实例。
- RemoveFrequentValues:删除满足某个标称型属性值最经常或者最不经常使用的对应的实例。
- SubsetByExpression:满足用户提供的表达式的所有实例。
- 稀疏矩阵
- NonSparseToSparse:全部输入实例转换为稀疏格式。
- SparseToNonSparse:将稀疏格式的实例转换为非稀疏格式。
有监督属性过滤器
- Discretize:将数据集中在一定范围内的数值属性离散化为标称属性,用户指定属性的范围以及强制属性进行二元离散化。
- NrminalToBinary: 将全部的标称属性转换为二元的数值属性。
- ClassOrder:更改类别排序。
- AddClassfication:使用指定分类器为数据集添加分类、分类分布和错误标志。
有监督实例过滤器
- Resample:与同名的无监督实例过滤器是类似,但它保持在子样本的类别分布。
- SpreadSubSample:也产生一个随机子样本,但是可以控制最稀少和最常见类别之间的频率差异。
应用案例
参考学习内容(感谢http://www.huangyunkun.com/)
添加属性
属性添加
添加属性取值空间
属性次序交换
离散化
无监督离散化和有监督的离散化。
无监督的离散化数值属性的java类是Discretize,它实现了等宽和等频两种离散化方法。
原始数据分布
等宽离散化
等频离散化
总结:一般情况下,等频离散化之后直方图大致等高,但如果有很多实例的值都完全相等,等频离散化也没法做到等频。
有监督的离散化
踏实 踏踏实实~