文档章节

weka特征选择之构建数据集

稀疏矩阵
 稀疏矩阵
发布于 2017/08/28 18:27
字数 460
阅读 18
收藏 1
点赞 0
评论 0

1、weka数据集基本概念 

weka.core.Instances-拥有一个完整的数据集。这个数据结构是基于行的;单一的行可以通过从0开始索引的instance(int) 方法获得。有关列的信息可以通过attribute(int)方法获得。此方法返回 weka.core.Attribute对象。

 weka.core.Instance。-封装了一个单行。它基本上是一个双原语数组的包装。因为这个类不包含关于列的类型的任何信息,它总是需要访问weka.core.Instances对象。

weka.core.Attribute -拥有数据集中单个列的类型信息。它存储属性的类型,以及标称属性的标签,字符串属性可能的值或关系属性的数据集(这些也都是weka.core.Instances对象)。

2、手动构建weka数据输入Instances

    public Instances produceData(){

       Attribute length = new Attribute("length");

       Attribute weight = new Attribute("weight");

      

       // Create vector to hold nominal values "first", "second", "third"

       FastVector my_nominal_values = new FastVector(3);

       my_nominal_values.addElement("first");

       my_nominal_values.addElement("second");

       my_nominal_values.addElement("third");

      

       // Create nominal attribute "position"

       Attribute position = new Attribute("position", my_nominal_values);

      

       // Create vector of the above attributes

       FastVector attributes = new FastVector(3);

       attributes.addElement(length);

       attributes.addElement(weight);

       attributes.addElement(position);

      

       // Create the empty dataset "race" with above attributes

       Instances race = new Instances("race", attributes, 0);

      

       // Make position the class attribute

       race.setClassIndex(position.index());

      

       // Create empty instance with three attribute values

       Instance inst = new Instance(3);

      

       // Set instance's values for the attributes "length", "weight", and "position"

       inst.setValue(length, 5.3);

       inst.setValue(weight, 300);

       inst.setValue(position, "first");

      

       // Set instance's dataset to be the dataset "race"

       inst.setDataset(race);

       race.add(inst);

       return race;

    }

3、对输入的数据集Instances进行特征选择

    private ArffLoader loader;

    private Instances dataSet;

    private File arffFile;

    private int sizeOfDataset;

    private int numOfOldAttributes;

    private int numOfNewAttributes;

    private int classIndex;

    private int[] selectedAttributes;

 

    public WekaSelector(File file) throws IOException {

        loader = new ArffLoader();

        arffFile = file;

        loader.setFile(arffFile);

        dataSet = loader.getDataSet();

        sizeOfDataset = dataSet.numInstances();

        numOfOldAttributes = dataSet.numAttributes();

        classIndex = numOfOldAttributes - 1;

        dataSet.setClassIndex(classIndex);

    }

 

    public void select() throws Exception {

        ASEvaluation evaluator = new CfsSubsetEval();

        ASSearch search = new BestFirst();

        AttributeSelection eval = null;

 

        eval = new AttributeSelection();

        eval.setEvaluator(evaluator);

        eval.setSearch(search);

        

        Instances data = produceData();

        //eval.SelectAttributes(dataSet);

        eval.SelectAttributes(data);

       

        numOfNewAttributes = eval.numberAttributesSelected();

        selectedAttributes = eval.selectedAttributes();

        System.out.println("result is "+eval.toResultsString());

       // System.out.println("old number of Attributes is "+numOfOldAttributes);

        System.out.println("new number of Attributes is "+numOfNewAttributes);

        for(int i=0;i<selectedAttributes.length;i++){

            System.out.println(selectedAttributes[i]);

        }

    }

 

 

© 著作权归作者所有

共有 人打赏支持
稀疏矩阵
粉丝 2
博文 9
码字总数 2847
作品 0
初试weka数据挖掘

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

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

Weka开发[4]-特征选择

特征选择,我对这一部分也不熟,大概讲一下,用AttributeSelection进行特征选择,它需要设置3个方面,第一:对属性评价的类(自己到Weka软件里看一下,英文Attribute Evaluator),第二:搜索...

pior ⋅ 2015/10/17 ⋅ 0

面向零编程基础人员 | 最全数据科学和机器学习工具清单

编程是数据科学的重要组成部分,理解编程逻辑、循环和函数的开发者也更容易成为数据科学家。但是,对于那些未在大学时期学习过软件开发,或接触过编程语言的人们来说,就真的没办法涉足这一领...

DataHunter小数 ⋅ 06/06 ⋅ 0

用 WEKA 进行数据挖掘

什么是 数据挖掘?您会不时地问自己这个问题,因为这个主题越来越得到技术界的关注。您可能听说过像 Google 和 Yahoo! 这样的公司都在生成有关其所有用户的数十亿的数据点,您不禁疑惑,“它...

红薯 ⋅ 2010/05/21 ⋅ 12

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

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

我是吴文华 ⋅ 05/18 ⋅ 0

安卓恶意软件检测:系统调用日志+机器学习算法

  本文内容源自Sanya Chaba等人的学术论文《Malware Detection Approach for Android systems Using System Call Logs》。   基于签名的静态检测技术广泛应用于安卓平台的恶意应用检测。...

嘶吼RoarTalk ⋅ 01/02 ⋅ 0

机器学习常见分类算法

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

srcool ⋅ 2016/11/05 ⋅ 0

Weka manual 3.6翻译: 16.4 随机化数据

更好的排版点这里 16.4 随机化数据 因为学习算法容易出现按数据到达的顺序来操作,因此随机(也称为“洗牌”)是一种常见的方法来缓解这个问题。特别是重复的随机化,例如,在交叉验证时,有...

Honghe ⋅ 2012/11/26 ⋅ 0

Weka 开发[1]-Instances类

言归正传,开始介绍Weka,先google一下,把Weka软件下载下来,在Weka的目录中有一个weka.jar的包。 把包添加到工程中后,就可以调用weka中的函数了。 再介绍一点weka的基本知识,在weka的目录...

pior ⋅ 2015/10/17 ⋅ 0

Weka manual 3.6翻译: 16.5 过滤

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

Honghe ⋅ 2012/11/27 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 今天 ⋅ 0

sbt网络问题解决方案

转自:http://dblab.xmu.edu.cn/blog/maven-network-problem/ cd ~/.sbt/launchers/0.13.9unzip -q ./sbt-launch.jar 修改 vi sbt/sbt.boot.properties 增加一个oschina库地址: [reposit......

狐狸老侠 ⋅ 今天 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 今天 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 今天 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

深入Java多线程——Java内存模型深入(2)

5. final域的内存语义 5.1 final域的重排序规则 1.对于final域,编译器和处理器要遵守两个重排序规则: (1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用...

江左煤郎 ⋅ 今天 ⋅ 0

面试-正向代理和反向代理

面试-正向代理和反向代理 Nginx 是一个高性能的反向代理服务器,但同时也支持正向代理方式的配置。

秋日芒草 ⋅ 今天 ⋅ 0

Spring 依赖注入(DI)

1、Setter方法注入: 通过设置方法注入依赖。这种方法既简单又常用。 类中定义set()方法: public class HelloWorldOutput{ HelloWorld helloWorld; public void setHelloWorld...

霍淇滨 ⋅ 昨天 ⋅ 0

马氏距离与欧氏距离

马氏距离 马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ的随机变量之间的差异程度。 如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧氏距离,如果协方差矩阵为对角阵,则其也...

漫步当下 ⋅ 昨天 ⋅ 0

聊聊spring cloud的RequestRateLimiterGatewayFilter

序 本文主要研究一下spring cloud的RequestRateLimiterGatewayFilter GatewayAutoConfiguration @Configuration@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMi......

go4it ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部