文档章节

Weka开发[2]-分类器类

pior
 pior
发布于 2015/10/17 22:23
字数 398
阅读 545
收藏 1

       这次介绍如何利用weka里的类对数据集进行分类,要对数据集进行分类,第一步要指定数据集中哪一列做为类别,如果这一步忘记了(事实上经常会忘记)会出现Class index is negative (not set)!这个错误,设置某一列为类别用Instances类的成员方法setClassIndex,要设置最后一列为类别则可以用Instances类的numAttributes()成员方法得到属性的个数再减1

    然后选择分类器,比较常用的分类器有J48NaiveBayesSMOLibSVMJava版的,可以在weka中使用,但要设置路径),训练分类器使用J48buildClassifier(注意J48还有别的分类器它们都继承自Classifier类,使用方法都差不多),分类数据用J48类中的classifyInstance方法,例中使用的数据集为contact-lenses.arff,分类结果为2.0,结果为2.0的原因是:首先用文本编辑器打开数据集,有一行为@attribute contact-lenses {soft, hard, none},而第一个样本为young, myope, no, reduced, none,最后一列为类别,也就是contact-lences为类别,第一个样本的类别为none,在属性说明中none为第二个所以为2.0(从0开始数)。

package instanceTest;
 
import java.io.FileReader;
 
import weka.classifiers.trees.J48;
import weka.core.Instances;
 
public class ClassifierTest
{
    private Instances m_instances = null;
    
    public void getFileInstances( String fileName ) throws Exception{
        FileReader frData = new FileReader( fileName );
        m_instances = new Instances( frData );
        m_instances.setClassIndex( m_instances.numAttributes() - 1 );
    }
    
    public void classify() throws Exception{
        J48 classifier = new J48();
        //NaiveBayes classifier = new NaiveBayes();
        //SMO classifier = new SMO();
        
        classifier.buildClassifier( m_instances );
        System.out.println( classifier.classifyInstance( m_instances.instance( 0 ) ) );
    }
    
    public static void main( String[] args ) throws Exception{
        ClassifierTest ctest = new ClassifierTest();
        ctest.getFileInstances( "F://Program Files//Weka-3-4//data//contact-lenses.arff");
        ctest.classify();
    }
}


本文转载自:

共有 人打赏支持
pior
粉丝 25
博文 151
码字总数 22496
作品 0
济南
高级程序员
Weka开发[6]-参数设置

这一次介绍的非常简单,会用传命令行参数的人就不用浪费时间看这一篇了,这一篇介绍weka中一些类参数传递的问题。 首先要传递参数当然要知道参数有哪些,有什么作用,要知道这些,建议用Wek...

pior
2015/10/17
79
0
Weka开发[7]-LibSVM

首先要提的是LibSVM是一个库,Lib很明显是library的缩写,有些人不知道怎么会认为它是一种算法。它是由中国台湾的Chih-Chung Chang和Chih-Jen Lin等人开发的,他们用多种语言实现写了LibSVM。...

pior
2015/10/17
187
0
如何在weka中添加自定义的分类器

我自己用java写了一个分类器的类MyClassifier,该类继承了Classifier。怎么把这个分类器添加到weka中,使得我双击arrf文件打开之后时候,能够选择选择我自己写的这个分类器...

Chen_huajie
2013/12/14
364
0
Weka开发[3]-Evaluation类

上一次最后的结果就是一个分类的值,可能让大家大失所望,这一次会给大家一个比较完美的答案,这就是Evaluation类,这次只讲一下最简单的用法,首先初始化一个Evaluation对象,Evaluation类没...

pior
2015/10/17
219
0
weka manual 3.6 翻译:1.1 引言

第一部分 命令行 第一章 命令行入门 1.1 引言 在首次实验中,使用图形界面会很方便,然而,我们还是推荐在深入的使用中使用命令行界面。因为,它提供了一些图形界面无法访问到的功能,而且占...

apachecn_飞龙
2015/04/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

centos7安装rsync及两台机器进行文件同步

centos7安装rsync及两台机器进行文件同步 2017年12月21日 11:17:46 码农下的天桥 阅读数:2210 标签: centosrsync同步 更多 个人分类: 后端 所属专栏: 研发模式及运维 版权声明:本文为博...

linjin200
19分钟前
1
0
jpg、jpeg、png... 的区别

jpg、jpeg、png... 的区别 对于做设计这一行的人来说,这几个图片格式是最常用的,也是最常见的,几乎每一天都要与他们打交道。 刚刚入门的新人通常不知道在什么地方如何使用他们或者说如何更...

DemonsI
38分钟前
5
0
白话SpringCloud | 第十章:路由网关(Zuul)进阶:过滤器、异常处理

前言 简单介绍了关于Zuul的一些简单使用以及一些路由规则的简单说明。而对于一个统一网关而言,需要处理各种各类的请求,对不同的url进行拦截,或者对调用服务的异常进行二次处理等等。今天,...

oKong
43分钟前
2
0
Character的static方法

基本类型char的包装类是Character,使用的比较多,大家是比较熟悉的。 我只是觉得里面有很多static方法,平时不怎么用,学习一下怎么实现的,或许日后就用到了。 static int compare(char x,...

woshixin
55分钟前
2
0
正则介绍_sed

10月17日任务 9.4/9.5 sed sed工具 匹配打印 -n 只打印匹配行,不然其他行也会打印出来 p 打印(配合-n使用) [root@centos7 tmp]# sed -n '/root/'p passwd root:x:0:0:root:/root:/bin/ba...

robertt15
55分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部