首页 > 代码库 > 数据挖掘与机器学习——weka应用技术与实践
数据挖掘与机器学习——weka应用技术与实践
第一章 weka介绍
1.1 weka简介
weka是怀卡托智分析环境(Waikato Environment for Knowledge Analysis)的英文缩写,官方网址为:<http://www.cs.waikato.ac.nz/ml/weka/>,在该网站可以免费下载可运行软件和代码,还可以获得说明文档、常见问题解答、数据集和其他文献等资源。
1.1.1 Weka的历史
团队宣称:我们的目标是要建立最先进的软件开发机器学习技术,并将其应用于解决现实世界的数据挖掘问题。目标:是机器学习技术容易获得,开发新的机器学习算法并推向世界。
1.1.2 Weka功能简介
Weka系统汇集了最前沿的机器学习算法和数据预处理工具。它为数据挖掘的整个过程提供了全面的支持,包括准备输入数据、统计评估学习方案、输入数据和学习效果的可视化。
Weka系统包括处理标准数据挖掘问题的所有方法:回归、分类、聚类、关联规则以及属性选择。分析要进行处理的数据是重要的一个环节,Weka提供了很多用于数据可视化和预处理的工具。输入数据可以由两种形式,第一种是以ARFF格式为代表的文件;另一种是直接读取数据库表。
使用Weka的方式主要有三种:第一种是将学习方案应用于某个数据集,然后分析其输出从而更多地了解这些数据;第二种是使用已经学习到的模型对新实例进行预测;第三种是使用多种学习器,然后根据其性能表现来选择其中的一种来进行预测。
Weka提供的最容易使用的图形用户接口称为Explorer。通过选择菜单和填写表单,可以调用Weka的所有功能。但是他会将所需数据武全部一次性读入内存,这种批量方式仅适合处理小规模问题。
Knowledge界面可以使用增量方式的算法来处理大型数据集,
1.2 基本概念
1.2.1 数据挖掘和机器学习
机器学习方法构成数据挖掘的核心,绝大多数的数据挖掘技术来自于机器学习领域。数据挖掘是在数据中寻找模式的过程。机器学习定义为能够自动寻找数据中的模式的一套方法,使用所发现的模式进行预测或者决策。
机器学习分为两种主要类型,第一种称为有监督的学习,或称为预测学习,其目标是在给定一系列输入输出实例所构成的数据集的条件下,学习输入X到输出y的映射关系。这里的数据集称为训练集。第二种为无监督的学习,或称描述学习,在给定一系列仅由输入实例构成的数据集的条件下,其目标是发现数据中的有趣模式。无监督学习有时也称知识发现。这类问题没有明确的定义,也没有明显的误差度量可供使用。
1.2.2 数据和数据集
数据挖掘的对象可以是各种各样的书记处,这些书记处可以以各种形式存储,如数据库、数据仓库、数据文件、流数据、多媒体、网页,等等。即可以集中存储在数据存储库中,也可以分布在世界各地的网络服务器上。数据集就是待处理数据对象的集合。数据对象有多个别名,如记录、点、行、向量、案例、样本、观测等。属性用于刻画数据对象的基本特征。属性也有多个别名,如变量、特征、字段、维、列等。
属性可以分为四种类型:标称(nominal)、序数(ordinal)、区间(interval)和比率(ratio),其中,标称属性仅提供区分对象的足够信息,如性别(男、女)等;序数属性的值可以提供确定对象的顺序的足够信息,如成绩等级(优、良、中、及格、不及格)等;区间属性的值之间的差是有意义的,即存在测量单位,如温度、日历日期等;比率属性的值之间的差和比值都是有意义的,如绝对温度、年龄,长度等。标称属性和序数属性统称为分类的(Categorical)或定性的(Qualitative)属性,它们的取值为集合,即使使用数值来表示,也不具备数的大部分性质,知识一个符号而已;区间属性和比率属性统称为定量的(Quantitative)或数值的(Numeric)属性,定量属性可以使用整数值或连续值来表示,具备数的大部分性质。
1.2.3 ARFF格式
ARFF是weka专用的数据格式,代表Attribute-Relation File Format(属性-关系文件格式)。该文件是ASCII文本文件,描述共享一组属性结构的实力列表,由独立且无序的实例组成。略
1.2.4 预处理
数据挖掘所使用的数据往往不是专门为挖掘准备的,人的错误、测量设备的限制以及数据收集过程的漏洞都可能导致一些问题。数据挖掘只能通过两个方面设法避免数据质量问题:1.数据质量问题的检测与纠正;2.使用能容忍低质量数据的算法。第一种方式在数据挖掘前检测并纠正一些质量问题,这个过程称为数据的预处理;第二种方式需要提高算法的健壮性。
数据预处理是数据挖掘的重要步骤,weka专门提供若干过滤器进行预处理,还在Explorer界面中提供选择属性标签页专门处理属性的自动选择问题。数据预处理包括如下技术:
1)聚类
聚类(Aggregation)就是将两个或多个对象合并为单个对象。一般定量数据通常通过求和或者求平均值的方式进行聚集,定性数据通常通过汇总进行聚集。聚集通过数据规约来减少数据量,所导致的较小数据集只需要较少内存和处理时间的开销。但有可能导致有趣细节的丢失。
2)抽样
如果处理全部数据的开销过大,数据预处理可以使用抽样,只选择数据对象的子集进行分析。使用抽样可以压缩数据量,但是要确保样本近似地具有原数据相同的性质。
3)维度归约
维度是指数据集中属性的数目。维度归约(Dimension Reduction)是指创建新属性,通过数据编码或数据变换,将一些旧属性合并在一起以降低数据集的维度。
4)属性选择
除维度归约外,降低维度的另一种方法是仅只使用属性的一个子集。表面看来似乎这种方法可能丢失信息,但很多情况下,数据集存在冗余和不相关的属性。如果将全部可能的属性子集作为输入,然后选取能产生最好结果的子集(理想算法),这样工作量巨大。这是考虑三种标准的属性选择方法:嵌入、过滤和包装。
嵌入方法(Embedded Approach)将属性选择作为数据挖掘算法的一部分。在挖掘算法运行期间,算法本身决定使用哪些属性以及忽略哪些属性。决策树算法通常使用这种方法。过滤方法(Filter Approach)在运行数据挖掘算法之间,使用独立于数据挖掘任务的方法进行属性选择。包装方法(Wrapper Approach)将学习算法的结果作为评价准则的一部分,使用类似前文介绍的理想算法,但通常无法枚举出全部可能的子集以找出最佳属性子集。
5)属性创建
属性创建就是通过对数据集中旧的属性进行处理。创建新的数据集,这样能更有效的获得重要的信息。由于通常新数据集的维度比原数据集少,可以获得维度归约带来的好处。属性创建有三种方式:属性提取、映射数据到新空间和属性构造。略
6)离散化和二元化
将连续属性转化为分类属性称为离散化(Discretization),将连续和离散属性转换为一个或多个二元属性
数据挖掘与机器学习——weka应用技术与实践