文档章节

weka特征选择之构建数据集

稀疏矩阵
 稀疏矩阵
发布于 2017/08/28 18:27
字数 460
阅读 51
收藏 1

钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>

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
838
0
Weka开发[4]-特征选择

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

pior
2015/10/17
291
0
6大最常用的Java机器学习库一览

在 MLOSS.org 网站上,列出了 70 多个基于 Java 的开源机器学习项目,可能还有更多未列出的项目,存于大学里的服务器、GitHub 或 Bitbucket 中。我们将在本文中回顾 Java 中的主流机器学习库...

osc_u949m2a6
2019/04/19
10
0
用 WEKA 进行数据挖掘,第 1 部分: 简介和回归

数据挖掘是技术界的谈论话题,因为各公司都在生成有关其用户的数百万的数据点并在想方设法将该信息转变为收入的增加。数据挖掘是很多技术的共同术语,用以表达从数据中一点点地收集信息并将其...

cookqq
2013/12/29
116
0
用 WEKA 进行数据挖掘

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

红薯
2010/05/21
1.1W
12

没有更多内容

加载失败,请刷新页面

加载更多

还在用Swagger(丝袜哥)生成接口文档?我推荐你试试它.....

JApiDocs是一个无需额外注解、开箱即用的SpringBoot接口文档生成工具。 编写和维护API文档这个事情,对于后端程序员来说,是一件恼人但又不得不做的事情,我们都不喜欢写文档,但除非项目前后...

路人甲Java
07/09
7
0
智能仓储的独角兽逻辑

智能仓储的主要应用市场在哪里?客户的付费意愿和付费能力如何? 1、仓储设备具备标准化和通用化特点 由于电商和新零售的快速发展,轻工业品零售仓库的需求量大幅增加。而中国又是全球轻工业...

logiter
2019/08/23
14
0
可是小腿哪能扭过大腿

父亲是一个特别勤苦的人,他从不睡懒觉,每天天麻麻亮,或是下地干活,或是在家搞副业,或是拿着铁锨、粪筐,到路边,到村子周围,到牲畜常出入的地方,去拾粪蛋子,为庄稼积攒肥料,父亲不仅...

瑾123
33分钟前
16
0
一个volatile跟面试官扯了半个小时

《安琪拉与面试官二三事》系列文章,本文是此系列第三篇 一个HashMap能跟面试官扯上半个小时 一个synchronized跟面试官扯了半个小时 欢迎关注Wx公众号:【安琪拉的博客】—揭秘Java后端技术,...

osc_6ls9vwji
34分钟前
0
0
内网渗透靶机-VulnStack 2

WEB服务器:windows2008系统 外网网卡IP:192.168.1.152 内网网卡IP:10.10.10.80 域成员:windows server 2003系统 网卡IP:10.10.10.200 域控服务器:windows server 2008系统 网卡IP:192...

dnsil
07/10
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部