文档章节

Weka开发[4]-特征选择

pior
 pior
发布于 2015/10/17 22:31
字数 346
阅读 235
收藏 1
点赞 0
评论 0

       特征选择,我对这一部分也不熟,大概讲一下,用AttributeSelection进行特征选择,它需要设置3个方面,第一:对属性评价的类(自己到Weka软件里看一下,英文Attribute Evaluator),第二:搜索的方式(自己到Weka软件里看一下,英文Search Method),第三:就是你要进行特征选择的数据集了。最后调用Filter的静态方法userFilter,感觉写的都是废话,一看代码就明白了。唯一值得一说的也就是别把AttributeSelection的包加错了,代码旁边有注释。

       另一个函数懒的解释了(它也不是我写的),基本上是自解释的,不太可能看不懂。

package instanceTest;
 
import java.io.FileReader;
import java.util.Random;
 
import weka.attributeSelection.CfsSubsetEval;
import weka.attributeSelection.GreedyStepwise;
import weka.classifiers.Evaluation;
import weka.classifiers.meta.AttributeSelectedClassifier;
import weka.classifiers.trees.J48;
import weka.core.Instances;
import weka.filters.Filter;
import weka.filters.supervised.attribute.AttributeSelection;
 
public class FilterTest{
    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 selectAttUseFilter() throws Exception {
        AttributeSelection filter = new AttributeSelection();  // package weka.filters.supervised.attribute!
        CfsSubsetEval eval = new CfsSubsetEval();
        GreedyStepwise search = new GreedyStepwise();
        filter.setEvaluator(eval);
        filter.setSearch(search);
        filter.setInputFormat( m_instances );
        
        System.out.println( "number of instance attribute = " + m_instances.numAttributes() );
        
        Instances selectedIns = Filter.useFilter( m_instances, filter);
        System.out.println( "number of selected instance attribute = " + selectedIns.numAttributes() );
    }
    
    public void selectAttUseMC() throws Exception {   
         AttributeSelectedClassifier classifier = new AttributeSelectedClassifier();
         CfsSubsetEval eval = new CfsSubsetEval();
         GreedyStepwise search = new GreedyStepwise();
         J48 base = new J48();
         classifier.setClassifier( base );
         classifier.setEvaluator( eval );
         classifier.setSearch( search );
         // 10-fold cross-validation
         Evaluation evaluation = new Evaluation( m_instances );
         evaluation.crossValidateModel(classifier, m_instances, 10, new Random(1));
         System.out.println( evaluation.toSummaryString() );
    }
    
    public static void main( String[] args ) throws Exception {
        FilterTest filter = new FilterTest();
        
        filter.getFileInstances( "F://Program Files//Weka-3-4//data//soybean.arff");
        filter.selectAttUseFilter();
        
        filter.selectAttUseMC();
    }
 
}


本文转载自:

共有 人打赏支持
pior
粉丝 25
博文 151
码字总数 22496
作品 0
济南
高级程序员
初试weka数据挖掘

偶然间在网上看到了一篇关于weka好的博文,就记录了下来…… weka下载地址为http://www.cs.waikato.ac.nz/ml/weka/downloading.html 读者有时候看到两个图片并列,其中一个是原文的,另一个是...

王国龙_成长 ⋅ 2013/09/08 ⋅ 0

数据挖掘简述和weka介绍--数据挖掘学习和weka使用(一)

写在开篇 weka用了一些时日了,觉得真心不错。功能很完善,而且是开源的。最重要的扩展方便,非常适合搞研究和做全国大学生数学建模之类的比赛。 我学习weka主要是看的一本数据挖掘和weka使用...

长平狐 ⋅ 2013/11/25 ⋅ 0

Weka manual 3.6翻译: 1.1 简介

第一章 Weka命令行入门 1.1简介 在最初的实验,Weka所包含的图形用户界面是相当足够,若深入使用则建议使用命令行界面,因为它提供了一些功能(这些功能在图形用户界面下不可用) - 并使用少...

Honghe ⋅ 2012/11/24 ⋅ 0

推荐:六款强大的开源数据挖掘工具

在互联网发展到大数据时代,那么数据就等于金钱。随着向一个基于应用的领域过渡,数据则呈现出了指数级增长。然而,百分之八十的数据是非结构化的,因此它需要一个程序和方法来从中提取有用信...

勿忘初心321 ⋅ 2016/08/18 ⋅ 0

六款值得推荐的数据挖掘得力助手

当今这个时代,说数据就是金钱一点都不夸张。随着向一个基于应用的领域过渡,数据则呈现出了指数级增长。然而,大部分数据是非结构化的,因此需要一个程序和方法来从中提取有用信息,并且将其...

HappyBKs ⋅ 2014/10/13 ⋅ 0

人工智能之机器学习与数据挖据之WEKA使用与实践

阅读对象 只要你想读,你就读呗!最好点个赞再走。。。:-) 本文尽量通过例子和直观描述,来说明人工智能中机器学习和数据挖据的主要概念,分类,和使用方法,并通过例子描述如何使用它来促进...

我是吴文华 ⋅ 05/18 ⋅ 0

weka数据挖掘(一)

这周一位老师叫我研究数据挖掘,包括算法的研究和weka数据挖掘平台的研究,算法的研究到后面再写,目前研究了wek这个数据挖掘平台,很强大,故写一博文,还有一些自己不懂的问题,求大牛指教...

szu_吴鹏 ⋅ 2013/05/30 ⋅ 0

超全!基于Java的机器学习项目、环境、库...

转自:数据派THUID:DatapiTHU 你是一名希望开始或者正在学习机器学习的Java程序员吗? 利用机器学习编写程序是最佳的学习方式。你可以从头开始编写算法,但是利用现有的开源库,你可以取得更...

嘿你好夏天 ⋅ 2017/12/06 ⋅ 0

超全!基于Java的机器学习项目、环境、库...

https://yq.aliyun.com/articles/278837?utmsource=tuicool&utmmedium=referral 摘要: 你是一名希望开始或者正在学习机器学习的Java程序员吗? 利用机器学习编写程序是最佳的学习方式。你可...

u011001084 ⋅ 2017/12/07 ⋅ 0

机器学习常见分类算法

机器学习常见分类算法 朴素贝叶斯分类器(Naive Bayes) 主要思想: 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入/...

srcool ⋅ 2016/11/05 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 54分钟前 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

一起读书《深入浅出nodejs》-node模块机制

node 模块机制 前言 说到node,就不免得提到JavaScript。JavaScript自诞生以来,经历了工具类库、组件库、前端框架、前端应用的变迁。通过无数开发人员的努力,JavaScript不断被类聚和抽象,...

小草先森 ⋅ 昨天 ⋅ 0

Java桌球小游戏

其实算不上一个游戏,就是两张图片,不停的重画,改变ball图片的位置。一个左右直线碰撞的,一个有角度碰撞的。 左右直线碰撞 package com.bjsxt.test;import javax.swing.*;import j...

森林之下 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部