文章目录
- 1 Weka
- 2 数据和数据集
- 3 ARFF 文件
- 4 过滤器与预处理
- 5 分类与回归
- 6 聚类分析
- 7 关联分析
1 Weka
Weka 是一种使用 Java 语言编写的数据挖掘及机器学习软件,主要用于科研、教育和应用领域。Weka 是一套完整的数据处理工具、学习算法、评价方法,包含数据可视化的图形界面,同时还可以比较和评估不同的学习算法的性能。
国内外很多著名大学都采用 Weka 作为数据挖掘和机器学习课程的实践工具。
Weka 系统包含处理标准数据挖掘问题的所有方法:回归、分类、聚类、关联规则以及属性选择。此外,Weka 提供了很多用于数据可视化和预处理的工具。输入数据可以有两种形式,一种是文件,比如 ARFF 文件,另一种是直接读取数据库表。
2 数据和数据集
通常将数据集视为被处理的数据对象的集合。数据对象有多个别名,如记录(record)、点、行、向量(vector)、案例、样本、观测等。数据对象也是对象,因此可以用刻画对象基本特征的属性来进行描述。属性也有多个别名,比如变量(var)、特征(feature)、字段(field)、维度(dim)、列(column),等等。
数据集可以类似于一个二维表格或数据表,最简单的情况,每个训练输入 是一个 N 维的数据向量,表示特定事物的一些特征,比如身高、体重、年龄等。这些特征也可以成为属性,有时
属性可分为四种类型:标称(nominal)、序数(ordinal)、区间(interval)和比率(ratio);其中,标称与序数属性统称为分类或定性属性,区间属性和比率属性统称为定量或数值(numeric)属性。
3 ARFF 文件
ARFF (Attribute-Relation File Format)文件是一种 Weka 专用的文件格式。该文件是 ASCII 文本文件,描述共享一组属性结构的实例列表,由名称可以看出,Attribute-Relation 就是属性表。
示例:
@relation weather
@attribute outlook {sunny, overcast, rainy}
@attribute temperature real
@attribute humidity real
@attribute windy {TRUE, FALSE}
@attribute play {yes, no}
@data
sunny,85,85,FALSE,no
sunny,80,90,TRUE,no
overcast,83,86,FALSE,yes
rainy,70,96,FALSE,yes
rainy,68,80,FALSE,yes
rainy,65,70,TRUE,no
overcast,64,65,TRUE,yes
sunny,72,95,FALSE,no
sunny,69,70,FALSE,yes
rainy,75,80,FALSE,yes
sunny,75,70,TRUE,yes
overcast,72,90,TRUE,yes
overcast,81,75,FALSE,yes
rainy,71,91,TRUE,no
说明:
- 以
%
开始的行尾注释行; -
@relation
定义数据集的名称,可以理解为数据表名称; -
@attribute
定义属性,包括名称、类型; - 最后一个属性,默认为用于预测的变量;
-
@data
定义数据实例列表,由逗号分隔,顺序与@attribute
所定义属性的顺序一致;
4 过滤器与预处理
数据预处理是数据挖掘的重要步骤,Weka 专门提供若干过滤器进行预处理,数据预处理涉及的策略和技术非常广泛,主要包括如下技术:
- 聚集:将多个对象合并为一个对象,定量数据通过求和或均值进行聚集,定性数据通过汇总进行聚集;
- 抽样:抽样是一个统计过程,好的抽样方案就是确保以很高的概率得到有代表性的样本;
- 维度规约:Dimension Reduction,减少维度的数量,提升维度的信息密度;
- 属性选择:选择最具有代表性的属性子集,删除冗余或不相关的属性;
- 属性创建:通过对旧属性进行处理(属性提取、映射数据到新空间、属性构造),创建新的数据集;
- 离散化和二元化:将数值属性转化为分类属性;
- 变量变换:例如,简单函数变换和规范化;
5 分类与回归
分类(Classification)和回归(Regression)是数据挖掘应用领域的重要技术。
分类就是在已有数据的基础上学习出一个分类函数或构造出一个分类模型,就是通常所说的分类器(Classifier);分类和回归是预测的两种形式,分类预测输出目标是离散值,而回归预测输出目标是连续值。
在 Weka 中,分类和回归都归为同一类的问题,都是要构建能对目标进行预测的分类器。
分类模型学习方法主要分为:
- 决策树:已有很多成熟而有效的决策树学习算法,如 ID3,C4.5,CART,Random Forest等
- 贝叶斯分类:该方法有一个明确的基本概率模型,用以给出某个样本属于某个类型标签的概率;
- k-最邻近分类:这是一种基于实例的学习算法,不需要事先使用训练样本构建分类器;
- 神经网络分类:使用大量的简单神经元按一定规则连接构成的网络系统,能够模拟人类大脑的结构和功能。
6 聚类分析
聚类(Clustering)就是将数据集划分为由若干相似实例组成的簇(cluster)的过程,聚类分析是数据挖掘和机器学习中十分重要的技术,应用领域极为广泛,如统计学、模式识别、生物学、空间数据库技术、电子商务等。
聚类是一种无监督的机器学习方法,主要依据样本间相似性的度量标准将数据集自动划分为几个簇,聚类中的簇不是预先定义的,而是根据实际数据的特征按照数据之间的相似性来定义的。聚类方法适合用于讨论样本间的相互关联,从而能初步评价其样本结构。
Weka实现的聚类算法主要有:K均值算法、EM算法和DBSCAN。
7 关联分析
关联分析(Association Analysis)方法就是用于发现隐藏在大型数据集中有意义的联系,这种联系可以用关联规则(Association Rule)进行表示。
关联分析最著名的算法是 Apriori 算法,其核心是基于两阶段频繁项集思想的递推算法。
寻找最大项集(频繁项集)的基本思想是:算法需要对数据集进行多步处理。第一步,简单统计所有含一个元素项集出现的频数,并找出那些不小于最小支持度的项集,即一维最大项集。从第二步开始循环处理直到再没有最大项集生成。循环过程是:第k步中,根据第k-1步生成的(k-1)维最大项集产生k维候选项集,然后对数据库进行搜索,得到候选项集的支持度,与最小支持度进行比较,从而找到k维最大项集。
Weka实现了Apriori 算法和另一个关联分析的FP-Growth算法。