1.      weka简单介绍

1)  weka是新西兰怀卡托大学WEKA小组用JAVA开发的机器学习/数据挖掘开源软件。

2)  相关资源链接

http://sourceforge.net/projects/weka/files/

http://www.cs.waikato.ac.nz/ml/weka/

3)  主要特点

  • 集数据预处理、学习算法(分类、回归、聚类、关联分析)和评估方法等为一体的综合性数据挖掘工具
  • 具有交互式可视化界面
  • 提供算法学习比較环境
  • 通过其接口。可实现自己的数据挖掘算法

2.      数据集(.arff文件)



数据集的呈现形式如上图所看到的,其表现为一个二维表,当中:

  • 表格里一行称作一个实例(Instance),相当于统计学中的一个样本,或者数据库中的一条记录
  • 表格里一列称作一个属性(Attribute)。相当于统计学中的一个变量,或者数据库中的一个字段

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemwxOTg5MDEyNA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

数据集的存储格式如上图所看到的。是一种ASCII文本文件,整个ARFF文件能够分为两个部分:

  • 第一部分给出了头信息(Headinformation)。包含了对关系的声明和对属性的声明
  • 第二部分给出了数据信息(Datainformation)。即数据集中给出的数据。从”@data”标记開始。后面即为数据信息

注:当中凝视部分以”%”開始。凝视部分weka将忽略这些行;

假设关系名。属性名,数据的字符串包括空格,它必须加上引號;

最后一个声明的属性被称作class属性,在分类或回归任务中它是默认的目标变量。

3.      数据类型

1)Weka支持四种数据类型,分别为:

  • numeric 数值型

数值型能够是整数(integer)或者实数(real),weka将它们都当作实数看待。

  • nominal 标称型

标称属性由一系列的类别名称放在花括号里。

  • string 字符串型

字符串属性能够包括随意的文本。

  • date日期和时间型

日期和时间属性统一用”date”类型表示,默认的字符串是ISO-8601所给的日期时间组合格式:“yyyy-MM-dd HH:mm:ss”

eg.  @ATTRIBUTE timestamp DATE“yyyy-MM-dd HH:mm:ss”

@DATA   “2015-06-23 20:05:40”

2)稀疏数据

当数据集中含有大量的0值时。用稀疏格式的数据存储更加省空间。

稀疏格式是针对数据信息中某个对象的表示而言。不须要改动ARFF文件的其他部分。比如:

@data                           @data

0, X, 0, Y,“class A”                  {1 X, 3 Y, 4“class A”}

0, 0, W, 0,“class B”                 {2 W, 4 “classB”}

4.      数据准备

.xls -> .csv -> .arff

5.      分类 Classify

1)  分类过程

依据一个WEKA实例的一组特征属性(输入变量),对目标属性进行分类预測。为了实现这一目的,我们须要有一个训练数据集。这个数据集中每一个实例的输入和输出都是已知的。观察训练集中的实例,能够建立预測的分类/回归模型。有了这个模型,就能够对新的未知实例进行分类预測。衡量模型的好坏主要在于预測的准确程度。

2)  数据预測的样例

a.      注意測试数据集和训练数据集的各个属性声明部分的设置必须是一致的。即使在測试数据集中没有class属性的值,也须要加入这个属性,能够将该属性在各个实例上的值均设置为缺失值。

b.      打开“Simple CLI”模块。使用“J48”算法的命令格式为:

java weka.classifiers.trees.J48 -C0.25 -M 2 -t "C:\\Users\\Administrator\\Desktop\\课题\\数据文件\\測试数据\\2.3參考文献--相关性分析+数据变换.csv.arff"-d"C:\\Users\\Administrator\\Desktop\\课题\\数据文件\\測试数据\\2.3參考文献--相关性分析+数据变换.model"

这里的” 2.3參考文献--相关性分析+数据变换.csv.arff”是训练数据集。当中參数“-C 0.25”表示置信因子,“-M 2”表示最小实例数。

“-t”后面为训练数据集的完整路径,“-d”后面为保存模型的完整路径。

c.      把这个模型应用到測试数据集的命令格式为:

java weka.classifiers.trees.J48 -p 11 -l"C:\\Users\\Administrator\\Desktop\\课题\\数据文件\\測试数据\\2.3參考文献--相关性分析+数据变换.model"-T "C:\\Users\\Administrator\\Desktop\\课题\\数据文件\\測试数据\\3.3学位论文中提取的參考文献.csv.arff"

当中“-p 11”指模型中的待预測属性的真实值存在第11个属性中,“-l”后面为模型的完整路径。“-T”后面为測试数据集的完整路径。

d.      输入上述命令后。出现的结果:

===Predictions on test data ===

inst#     actual predicted error prediction ()

1       1:?        1:J       1

2       1:?        1:J       1

3       1:?

2:M       0.667

4       1:?

2:M       0.667

5       1:?        3:C       1

6        1:?        2:M       0.667

第一列为实例编号。第二列为測试数据集中原来class属性的值,第三列是预測后的结果,第四列为预測结果的置信度,比如对于实例1,有百分之百的把握说它的值为J.

Weka – 分类的更多相关文章

  1. WEKA使用(基础配置+垃圾邮件过滤+聚类分析+关联挖掘)

    声明: 1)本文由我bitpeach原创撰写,转载时请注明出处,侵权必究. 2)本小实验工作环境为Windows系统下的WEKA,实验内容主要有三部分,第一是分类挖掘(垃圾邮件过滤),第二是聚类分析, ...

  2. 【Tech】POI标签分类

    寒假老板给的任务,让我重现这个实验http://www.liuhaihua.cn/archives/15565.html.自己就随便试了下,用的都是比较经典(lao)的算法和知识,记录一下. 一.从网 ...

  3. 基于weka的文本分类实现

    weka介绍 参见 1)百度百科:http://baike.baidu.com/link?url=V9GKiFxiAoFkaUvPULJ7gK_xoEDnSfUNR1woed0YTmo20Wjo0wY ...

  4. weka 文本分类(1)

    一.初始化设置 1 jvm out of memory 解决方案: 在weka SimpleCLI窗口依次输入java -Xmx 1024m 2 修改配置文件,使其支持中文: 配置文件是在Weka安装 ...

  5. weka实际操作--构建分类、回归模型

    weka提供了几种处理数据的方式,其中分类和回归是平时用到最多的,也是非常容易理解的,分类就是在已有的数据基础上学习出一个分类函数或者构造出一个分类模型.这个函数或模型能够把数据集中地映射到某个给定的 ...

  6. 【weka】分类,cross-validation,数据

    一.分类classifier 如何利用weka里的类对数据集进行分类,要对数据集进行分类,第一步要指定数据集中哪一列做为类别,如果这一步忘记了(事实上经常会忘记)会出现“Class index is ...

  7. 利用DM工具Weka进行数据挖掘(分类)的完整过程

    利用DM工具Weka进行数据挖掘(分类)的完整过程:

  8. 在Eclipse中调用weka包实现分类

    1.如题. 最近写了一个FCM的聚类算法,希望能够可视化结果,因此一个想法是调用weka中的包,使自己的程序可以可视化.这里参考了网络上的方法,首先实现在Eclipse中调用weka包实现分类的功能. ...

  9. 机器学习:weka中添加自己的分类和聚类算法

    不管是实验室研究机器学习算法或是公司研发,都有需要自己改进算法的时候,下面就说说怎么在weka里增加改进的机器学习算法. 一 添加分类算法的流程 1 编写的分类器必须继承 Classifier或是Cl ...

随机推荐

  1. 06day1

    Rabbit Number 枚举 [问题描述] 设 S(N)表示 N 的各位数字之和,如 S(484)=4+8+4=16,S(22)=2+2=4.如果一个正整数 x满足 S(x*x)=S(x)*S(x ...

  2. H264码流打包分析(精华)

    H264码流打包分析 SODB 数据比特串-->最原始的编码数据 RBSP 原始字节序列载荷-->在SODB的后面填加了结尾比特(RBSP trailing bits 一个bit“1”)若 ...

  3. RGB图像数据字符叠加,图像压缩(ijl库),YUV转RGB

    jackyhwei 发布于 2010-01-01 12:02 点击:3218次  来自:CSDN.NET 一些非常有用的图像格式转换及使用的源代码,包括RGB图像数据字符叠加,图像压缩(ijl库),Y ...

  4. 将Temporary文件夹里的Logo文件转移到Logo文件夹

    /// <summary> /// 将Temporary文件夹里的Logo文件转移到Logo文件夹 /// </summary> /// <param name=&quo ...

  5. 也说Autofac在MVC的简单实践:破解在Controller构造函数中的实例化 - winhu

    相信大家对Autofac并不陌生,很多人都在使用.本文只是介绍一下本人在使用时的一点想法总结. 在使用一个框架时,肯定要去它的官网查阅一下.autofac的官网给出了一些经典的使用案例.如注册容器: ...

  6. void、void*以及NULL

    void.void*以及NULL 写在前面 在使用C++的过程中,void和NULL用到的频率挺高的,但是从来没有去探索过这两个关键字的联系和区别,也没有对它们做更多的探索.对于void*,说实话,实 ...

  7. MSI/MSI-X

    MSI PCI2.2规范引进了MSI作为传统的基于线的中断的替代方案.MSI允许设备通过向一个特定的地址写入一个特定的值来允许中断,而不是使用一个专有的引脚来触发中断.注意消息的目的地址和消息数据被当 ...

  8. C++设计模式——建造者模式

    建造者模式 在GOF的<设计模式 可复用面向对象软件的基础>中是这样说的:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 这句话,似懂非懂的.一个复杂对象的创建 ...

  9. 机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)

    版权声明: 本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com.如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任. 前言: ...

  10. [JS代码]如何判断ipad或者iphone是否为横屏或者竖屏 - portrait或者landscape

    //判断横屏或者竖屏 function orient() { //alert('gete'); if (window.orientation == 0 || window.orientation == ...