weka数据挖掘

基础知识:

数据挖掘:将大量数据转变为有实际意义的模式和规则,分为两种:直接的和间接的

数据挖掘的最终目标就是要创建一个模型,这个模型可改进您解读现有数据和将来数据的方式。

数据挖掘的核心就是将正确的模型应用于数据。

第一种技术是回归,用来基于其他的示例数据预测一个数值输出(比如房屋价值)。

第二种技术是分类(即分类树或决策树),用来创建一个实际的分支树来预测某个未知数据点的输出值。

第三种技术是群集,可用它来创建数据组(群集)并从中识别出趋势和其他规则

第四种技术是最近邻,最近邻(也即 Collaborative Filtering 或 Instance-based Learning)是一种非常有用的数据挖掘技术,可用来用输出值已知的以前的数据实例来预测一个新数据实例的未知输出值。

工具简介:

窗口右侧共有4个应用,分别是

  1. Explorer:用来进行数据实验、挖掘的环境,它提供了分类,聚类,关联规则,特征选择,数据可视化的功能。示例图如下:
  2. Experimentor:用来进行实验,对不同学习方案进行数据测试的环境。
  3. KnowledgeFlow:功能和Explorer差不多,不过提供的接口不同,用户可以使用拖拽的方式去建立实验方案。另外,它支持增量学习。
  4. SimpleCLI:简单的命令行界面。

    Weka支持很多种文件格式,包括arff、xrff、csv,甚至有libsvm的格式。其中,arff是最常用的格式,我们在这里仅介绍这一种。 
    Arff全称是Attribute-Relation File Format

    使用weka进行数据挖掘的流程如下图:

其中,在weka内进行的是数据预处理,训练,验证这三个步骤。 
         1)数据预处理:数据预处理包括特征选择,特征值处理(比如归一化),样本选择等操作。 
         2)训练:训练包括算法选择,参数调整,模型训练。 
         3)验证:对模型结果进行验证。

数据预处理:

数据预处理:打开Explorer界面,点“open file”,在weka安装目录下,选择data目录里的“labor.arff”文件,将会看到如下界面。我们将整个区域分为7部分,下面将分别介绍每部分的功能。

区域1共6个选项卡,用来选择不同的数据挖掘功能面板,从左到右依次是Preprocess(预处理)、Classify(分类)、Cluster(聚类)、Associate(关联规则)、Select attribute(特征选择)和Visualize(可视化)。 
        区域2提供了打开、保存,编辑文件的功能。打开文件不仅仅可以直接从本地选择,还可以使用url和db来做数据源。Generate按钮提供了数据生成的功能,weka提供了几种生成数据的方法。点开Edit,将看到如下界面:

在这个界面,可以看到各行各列对应的值,右键每一列的名字(先点击列名),可以看到一些编辑数据的功能,这些功能还是比较实用的。

区域3名为Filter,有些人可能会联想到特征选择里面的Filter方法,事实上,Filter针对特征(attribute)和样本(instance)提供了大量的操作方法,功能十分强大。 
        区域4,可以看到当前的特征、样本信息,并提供了特征选择和删除的功能。在区域4用鼠标选择单个特征后,区域5将显示该特征的信息。包括最小值、最大值、期望和标准差。 
        区域6提供了可视化功能,选择特征后,该区域将显示特征值在各个区间的分布情况,不同的类别标签以不同的颜色显示。
        区域7是状态栏,没有任务时,小鸟是坐着的,任务运行时,小鸟会站起来左右摇摆。如果小鸟站着但不转动,表示任务出了问题。

Filters实例

点开Filter下面的choose按钮,可以看到如下界面:

Filters可分为两大类,supervised(监督、管理)和unsupervised。supervised下的方法需要类别标签,而unsupervised则不需要。attribute类别表示对特征做筛选,instance表示对样本做选择。

Case 1:特征值归一化 
        该项功能与类别无关,且是针对attribute的,我们选择unsupervised -> attribute下面的Normalize。点开Normalize所在的区域(在所选择的filter上点击即可),将看到如下界面。左边的窗口,有几个参数可以选择。点击more,将出现右边的窗口,该窗口详细介绍了此功能。

使用默认参数,点击ok,回到主窗口。在区域4选好将要归一化的特征,可以是一个或多个,然后点击apply。在可视化区域中,我们可以看到特征值从1到3被归一到了0到1之间(看区域5的最大最小值)。

Case 2: 分类器特征筛选 
        该功能与类别相关,选择supervised -> attribute下面的AttributeSelection。该界面有两个选项,evaluator是评价特征集合有效性的方法,search是特征集合搜索的方法。在这里,我们使用InformationGainAttributeEval作为evaluator,使用Ranker作为search,表示我们将根据特征的信息增益值对特征做排序。Ranker中可以设置阈值,低于这个阈值的特征将被扔掉。

点击apply,可以看到在区域4里特征被重新排序,低于阈值的已被删掉。 
        Case 3:选择分类器错分的样本 
        选择unsupervised -> instance下面的RemoveMisclassified,可以看到6个参数,classIndex用来设置类别标签,classifier用来选择分类器,这里我们选择J48决策树,invert我们选择true,这样保留的是错分样本,numFolds用来设置交叉验证的参数。设置好参数之后,点击apply,可以看到样本的数量从57减少到了7。

五.分类

在Explorer中,打开classify选项卡,整个界面被分成几个区域。分别是

1)Classifier:点击choose按钮,可以选择weka提供的分类器。常用的分类器有 
      a)bayes下的Nave Bayes(朴素贝叶斯)和BayesNet(贝叶斯信念网络)。 
      b)functions下的LibLinear、LibSVM(这两个需要安装扩展包)、Logistic Regression(逻辑回归)、Linear            Regression(线性回归)。 
      c)lazy下的IB1(1-NN)和IBK(KNN)。 
      d)meta下的很多boosting和bagging分类器,比如AdaBoostM1。 
      e)trees下的J48(weka版的C4.5)、RandomForest。 
2)Test options 
评价模型效果的方法,有四个选项。 
  a)Use training set:使用训练集,即训练集和测试集使用同一份数据,一般不使用这种方法。 
  b)Supplied test set:设置测试集,可以使用本地文件或者url,测试文件的格式需要跟训练文件格式一致。 
  c)Cross-validation:交叉验证,很常见的验证方法。N-folds cross-validation是指,将训练集分为N份,使用

N-1份做训练,使用1份做测试,如此循环N次,最后整体计算结果。 
  d)Percentage split:按照一定比例,将训练集分为两份,一份做训练,一份做测试。在这些验证方法的下面,有      一个More options选项,可以设置一些模型输出,模型验证的参数。 
3)Result list

这个区域保存分类实验的历史,右键点击记录,可以看到很多选项。常用的有保存或加载模型以及可视化的一些选     项。 
4)Classifier output 
 分类器的输出结果,默认的输出选项有Run information,该项给出了特征、样本及模型验证的一些概要信息;Classifier model,给出的是模型的一些参数,不同的分类器给出的信息不同。最下面是模型验证的结果,给出了   一些常用的一些验证标准的结果,比如准确率(Precision),召回率(Recall),真阳性率(True positive rate),假阳性率(False positive rate),F值(F-Measure),Roc面积(Roc Area)等。Confusion Matrix给出了测试样本的分类情况,通过它,可以很方便地看出正确分类或错误分类的某一类样本的数量。

Case 1:使用J48对labor文件做分类 
     a.打开labor.arff文件,切换到classify面板。 
     b.选择trees->J48分类器,使用默认参数。 
     c.Test options选择默认的十折交叉验证,点开More options,勾选Output predictions。 
     d.点击start按钮,启动实验。 
     e.在右侧的Classifier output里面,我们看到了实验的结果

上图给出了实验用的分类器以及具体参数,实验名称,样本数量,特征数量以及所用特征,测试模式。

上图给出了生成的决策树,以及叶子节点数、树的节点数、模型训练时间。如果觉得这样不直观,可以在Result list里面右键点击刚刚进行的实验,点击Visualize Tree,可以看到图形界面的决策树,十分直观。

再往下是预测结果,可以看到每个样本的实际分类,预测分类,是否错分,预测概率这些信息。

最下面是验证结果,整体的accuracy是73.68%,bad类准确率是60.9%,召回率70.0%,good类准确率是82.4%,召回率75.7%。

5)  可视化 
        打开Explorer的Visualize面板,可以看到最上面是一个二维的图形矩阵,该矩阵的行和列均为所有的特征(包括类别标签),第i行第j列表示特征i和特征j在二维平面上的分布情况。图形上的每个点表示一个样本,不同的类别使用不同的颜色标识。下面有几个选项,PlotSize可以调整图形的大小,PointSize可以调整样本点的大小,Jitter可以调整点之间的距离,有些时候点过于集中,可以通过调整Jitter将它们分散开。

上图是duration和class两个特征的图形,可以看出,duration并不是一个好特征,在各个特征值区间,good和bad的分布差不多。 
单击某个区域的图形,会弹出另外一个窗口,这个窗口给出的也是某两个特征之间分布的图形,不同的是,在这里,通过点击样本点,可以弹出样本的详细信息。可视化还可以用来查看误分的样本,这是非常实用的一个功能。分类结束后,在Result list里右键点击分类的记录,选择Visualize classify errors,会弹出如下窗口。

这个窗口里面,十字表示分类正确的样本,方块表示分类错误的样本,X轴为实际类别,Y轴为预测类别,蓝色为实际的bad,红色为实际的good。这样,蓝色方块就表示实际为bad,但为误分为good的样本,红色方块表示实际为good,被误分为bad的样本。单击这些点,便可以看到该样本的各个特征值,分析为什么这个样本被误分了。 
        再介绍一个比较实用的功能,右键点击Result list里的记录,选择Visualize threshold curve,然后选好类别(bad 还是good),可以看到如下图形。

该图给出的是分类置信度在不同阈值下,分类效果评价标准的对比情况。上图给出的是假阳性比率和真阳性比率在不同阈值下的对比,其实给出的就是ROC曲线。我们可以通过选择颜色,方便地观察不同评价标准的分布情况。如果X轴和Y轴选择的是准确率和召回率,那我们可以通过这个图,在这两个值之间做trade-off,选择一个合适的阈值。

时间: 2024-11-03 21:23:46

weka数据挖掘的相关文章

Weka数据挖掘平台

Explorer: menu selection and form filling 缺点:when you open a dataset, it immediately loads it all in. This means that the Explorer can only be applied to small- to medium-size problems. Knowledge  Flow : allows you to design configurations for stream

从零开始学习weka数据挖掘

作为一个免费.公开.开源的数据挖掘工作平台,Weka集合了大量能承担数据挖掘任务的机器学习算法,包括预处理.分类.回归.聚类.关联规则以及在新的交互式界面上的可视化操作等:目前,Weka最新版本为weka-3-7-11,可以利用weka进行大数据的挖掘和分析处理. WEKA的全名是怀卡托智能分析环境(Waikato     Environment for Knowledge Analysis),其源代码可从http://www.cs.waikato.ac.nz/ml/weka/ 得到.同时wek

weka数据挖掘拾遗(三)----再谈如果何生成arff

前一阵子写过一个arff的随笔,但是写完后发现有些啰嗦.其实如果使用weka自带的api,生成arff文件将变成一件很简单的事儿. 首先,可以先把特征文件生成csv格式的.csv格式就是每列数据都用逗号分隔的一种格式.(还有不清楚的googling一下就知道了) 一.首先看下特征文件怎么保存成csv格式. 1.首行为特征名,以逗号分隔. 2.除首行外的行都为数据行,每列数据都是首行对应的值.(可以是字符串,数字) 例: 二.通过weka的api把上面的csv转化成arff格式文件 1.weka代

冬至听雪分享——数据分析入门

本文关键词:数据分析基础,数据分析入门 数据分析是数据挖掘的基础,数据挖掘是数据分析的高级阶段! 数据分析,数据来源要客观,数据分析的过程要符合业务的规则,符合科学的方法. 数据分析是一个结构导向,业务解释性要好! # 数据分析的注意事项 1.所有数据分析要从结果出发,没有结论的数字罗列并不是分析 2.数据分析要建立在业务模型的基础上 3.数据分析是基于数据严谨的分析过程 1.什么是数据分析? 定义:使用统计方法对收集的大量数据进行分析.理解.达到业务分析的目的,获取有用的信息和结论而对数据进行

机器学习课程1-笔记

课程1 授课讲师: 黄志洪(tigerfish),ITPUB创始人,中山大学海量数据与云计算研究中心主任.数据库专家,数据分析专家,有丰富的IT领域.数学领域的知识经验. R语言.Hadoop.Python.Matlab,推荐的这些软件,是为了不用写程序,核心不是掌握工具 是一门算法课程.面向数学建模,如电子商务数据.推荐系统.脱离具体软件讲算法 懂原理,要经得起别人问什么. 基本统计知识.线性代数.90%讲数据分析 怎样把复杂的算法用浅显易懂的方式和例子,向非专业人士清晰表达 数学为什么难?剥

用 WEKA 进行数据挖掘 ——第一章:简介

1.简介数据挖掘.机器学习这些字眼,在一些人看来,是门槛很高的东西.诚然,如果做算法实现甚至算法优化,确实需要很多背景知识.但事实是,绝大多数数据挖掘工程师,不需要去做算法层面的东西.他们的精力,集中在特征提取,算法选择和参数调优上.那么,一个可以方便地提供这些功能的工具,便是十分必要的了.而weka,便是数据挖掘工具中的佼佼者.Weka的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),是一款免费的,非商业化的,基于JAVA环境下

用 WEKA 进行数据挖掘——第二章: 回归

回归 回归是最为简单易用的一种技术,但可能也是最不强大(这二者总是相伴而来,很有趣吧).此模型可以简单到只有一个输入变量和一个输出变量(在 Excel 中称为 Scatter 图形,或 OpenOffice.org 内的 XYDiagram).当然,也可以远比此复杂,可以包括很多输入变量.实际上,所有回归模型均符合同一个通用模式.多个自变量综合在一起可以生成一个结果 — 一个因变量.然后用回归模型根据给定的这些自变量的值预测一个未知的因变量的结果. 每个人都可能使用过或看到过回归模型,甚至曾在头

数据挖掘:关联规则的apriori算法在weka的源码分析

相对于机器学习,关联规则的apriori算法更偏向于数据挖掘. 1) 测试文档中调用weka的关联规则apriori算法,如下 try { File file = new File("F:\\tools/lib/data/contact-lenses.arff"); ArffLoader loader = new ArffLoader(); loader.setFile(file); Instances m_instances = loader.getDataSet(); Discre

数据挖掘与机器学习——weka应用技术与实践

第一章 weka介绍 1.1 weka简介 weka是怀卡托智分析环境(Waikato Environment for Knowledge Analysis)的英文缩写,官方网址为:<http://www.cs.waikato.ac.nz/ml/weka/>,在该网站可以免费下载可运行软件和代码,还可以获得说明文档.常见问题解答.数据集和其他文献等资源. 1.1.1 Weka的历史 团队宣称:我们的目标是要建立最先进的软件开发机器学习技术,并将其应用于解决现实世界的数据挖掘问题.目标:是机器学