文档章节

Weka开发[2]-分类器类

pior
 pior
发布于 2015/10/17 22:23
字数 398
阅读 543
收藏 1
点赞 0
评论 0

       这次介绍如何利用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
Weka manual 3.6翻译: 16.5 过滤

16.5 过滤 在WEKA中,过滤器用来进行数据预处理。他们可以在weka.filters包中找到。各过滤器可归为以下两类别之一: • 有监督 -过滤器需要设置一个类属性。 • 无监督 - 类的属性可以不存在...

Honghe
2012/11/27
0
0
Weka manual 3.6翻译: 16.6 分类

若觉排版不好,可点这里。 16.6 分类 在WEKA内,分类和回归算法都被称为“分类”,并都位于 weka.classifiers 包中。本节包括以下主题: • 建立一个分类 -批量和增量学习。 • 评价一个分类...

Honghe
2012/11/28
0
1
25 个 Java 机器学习工具和库

本列表总结了25个Java机器学习工具&库: 1. Weka集成了数据挖掘工作的机器学习算法。这些算法可以直接应用于一个数据集上或者你可以自己编写代码来调用。Weka包括一系列的工具,如数据预处理...

oschina
2015/12/28
10.9K
11
Weka manual 3.6翻译: 16.1 选项处理

16.1 选项处理 配置一个对象,例如一个分类器, 可以通过调用我们想要改变的属性的 get/set 方法来实现,就像搜索者(Explorer)做的。或者,如果类实现了 weka.core.OptionHandler 接口,我...

Honghe
2012/11/24
0
0
Weka 中的算法名说明

数据输入和输出 WOW():查看Weka函数的参数。 Weka_control():设置Weka函数的参数。 read.arff():读Weka Attribute-Relation File Format (ARFF)格式的数据。 write.arff:将数据写入Weka ...

pior
2015/10/17
304
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

upstream sent too big header while reading...

nginx 报错:1736 upstream sent too big header while reading response header from upstream 1. 一般处理 location ~ \.php$ { #增加下面两句 fastcgi_buffer_size 128k; ......

dubox
12分钟前
0
0
Python解析配置文件模块:ConfigPhaser

import configparser as pa# [SectionA]# a = aa# b = bb# c = cc# [SectionB]# optionint = 1# optionfloat = 1.1# optionstring = string#https://www.cnblogs.com/a......

易野
19分钟前
0
0
Java基础——面向对象

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 Object的方法: clone() Object 克隆 to Strin...

凯哥学堂
21分钟前
0
0
rabbitmq学习记录(八)消息发布确认机制

RabbitMQ服务器崩了导致的消息数据丢失,已经持久化的消息数据我们可以通过消息持久化来预防。但是,如果消息从生产者发送到vhosts过程中出现了问题,持久化消息数据的方案就无效了。 Rabbit...

人觉非常君
25分钟前
0
0
毕业5年,我是怎么成为年薪30W的运维工程师

#转载# 我在大学读的是计算机专业,但大学毕业之后,进入到一家私企进行工作,工作的内容类似于网管,会经常的去修电脑,去做水晶头等内容。刚开始工作,也没想太多,最想的是丰富自己的工作...

Py爱好
32分钟前
1
0
大数据基础知识,大数据学习,涉及的知识点

一、什么是大数据 一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流 转、多样的数据类型和价值密度低四大特征。...

董黎明
47分钟前
0
0
Linux CentOS 7上安装极点五笔

话说几天前在新买的惠普笔记本上成功地安装了Linux CentOS 7操作系统、Nvidia Quandro P600驱动程序及X Window,并在VMware下安装Red Hat教学环境,彻底跳出Windows的苦海,但仍然有一件事不...

大别阿郎
今天
16
0
2018年7月20日集群课程

一、集群介绍 集群,简单地说是指一组(若干个)相互独立的计算机,利用高速通信网络组成一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器。 ...

人在艹木中
今天
0
0
spark开发机中调试snappy

目的 在Idea中的点击运行,使spark可以直接读取snappy 自己编译hadoop,以支持snappy的压缩。 自己编译的目的就是要得到支持snappy文件读写的动态链接库。如果可以在网上下载,可以跳过自行编...

benny周
今天
0
0
centos7 安装docker

1,查看系统版本 cat /etc/redhat-release 2,安装gcc yum -y install gccyum -y install gcc-c++ 3,卸载旧版本 yum remove docker \ docker-client \ ......

暗中观察
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部