在Java中使用weka:在数据集中增加属性

【学习笔记】山东大学生物信息学-07 数据挖掘(WEKA) 7.1 数据库系统 7.2 机器学习 7.3 WEKA 7.3.1 ARFF 文件的格式 7.3.2 ARFF 属性类型与格式转换 7.3.2 数据准备:Explorer 界面介绍 7.3.3 数据预处理 7.3.4 执行挖掘任务 阅读详情

下面的例子中增加了 nominal 和 a numeric属性,主函数传入的参数第一个为文件名,第二个参数定义数据是通过 Add filter (= filter) 还是 Weka API = java)操作。不知道怎么从主函数传值可以直接在代码中定义这两个参数。


AddAttribute.java

import weka.core.*;
import weka.filters.Filter;
import weka.filters.unsupervised.attribute.Add;

import java.io.*;
import java.util.*;

/**
 * Adds a nominal and a numeric attribute to the dataset provided as first
 * parameter (and fills it with random values) and outputs the result to
 * stdout. It's either done via the Add filter (second option "filter") 
 * or manual with Java (second option "java").<p/>
 *
 * Usage: AddAttribute <file.arff> <filter|java> 
 *
 * @author FracPete (fracpete at waikato dot ac dot nz)
 */
public class AddAttribute {
  /**
   * adds the attributes
   *
   * @param args    the commandline arguments
   */
  public static void main(String[] args) throws Exception {
    if (args.length != 2) {
      System.out.println("\nUsage: <file.arff> <filter|java>\n");
      System.exit(1);
    }

    // load dataset
    Instances data = new Instances(new BufferedReader(new FileReader(args[0])));
    Instances newData = null;

    // filter or java?
    if (args[1].equals("filter")) {
      Add filter;
      newData = new Instances(data);
      // 1. nominal attribute
      filter = new Add();
      filter.setAttributeIndex("last");
      filter.setNominalLabels("A,B,C,D");
      filter.setAttributeName("NewNominal");
      filter.setInputFormat(newData);
      newData = Filter.useFilter(newData, filter);
      // 2. numeric attribute
      filter = new Add();
      filter.setAttributeIndex("last");
      filter.setAttributeName("NewNumeric");
      filter.setInputFormat(newData);
      newData = Filter.useFilter(newData, filter);
    }
    else if (args[1].equals("java")) {
      newData = new Instances(data);
      // add new attributes
      // 1. nominal
      FastVector values = new FastVector();
      values.addElement("A");
      values.addElement("B");
      values.addElement("C");
      values.addElement("D");
      newData.insertAttributeAt(new Attribute("NewNominal", values), newData.numAttributes());
      // 2. numeric
      newData.insertAttributeAt(new Attribute("NewNumeric"), newData.numAttributes());
    }
    else {
      System.out.println("\nUsage: <file.arff> <filter|java>\n");
      System.exit(2);
    }

    // random values
    Random rand = new Random(1);
    for (int i = 0; i < newData.numInstances(); i++) {
      // 1. nominal
      newData.instance(i).setValue(newData.numAttributes() - 2, rand.nextInt(4));  // index of labels A:0,B:1,C:2,D:3
      // 2. numeric
      newData.instance(i).setValue(newData.numAttributes() - 1, rand.nextDouble());
    }

    // output on stdout
    System.out.println(newData);
  }
}


weka过滤器介绍 作业三、所有Filter介绍 下面将罗列weka中所有filter介绍 AllFilter 一个实例过滤器,它不经过修改就通过所有实例。主要用于测试目标目的。 MultiFilter: 连续应用多个过滤器。如果所有提供的过滤器都是StreamableFilters,它也将作为一个可流过滤器。 RenameRalation: 允许更改一组实例的关系名称的筛选器。 有监督: 属性Filter AddClassification:用于将分类、类分布和错误标志添加到具有分类器的数据集的过滤器。分类器要么根据数 阅读详情

相关推荐

Java领域数据挖掘:Weka与Java的结合

在当今数字化时代,数据量呈现爆炸式增长,如何从海量数据中提取有价值的信息成为了关键问题。数据挖掘作为一门交叉学科,融合了统计学、机器学习、数据库等多个领域的知识,旨在发现数据中的模式、规律和趋势。Java作为一种广泛使用的编程语言,具有跨平台、面向对象、安全性高等优点,在企业级应用开发中占据重要地位。Weka是一个开源的数据挖掘软件,提供了丰富的机器学习算法和工具,能够方便地进行数据预处理、模型训练和评估。

Java大师兄的博客 1485

Weka数据挖掘——选择属性

如果你现在还不努力,那么将来的你会过的更加吃力。 1 选择属性 属性选择是通过搜索数据中所有可能的属性组合,以找到预测效果最好的属性子集。手工选择属性既繁琐又容易出错,为了帮助用户事项选择属性自动化。Weka中提供了选择属性面板。要自动选择属性需要设立两个对象:属性评估器和搜索方法,如下图所示: 属性评估器确定使用什么方法给每个属性分配一个评估值...

weixin_30487317的博客 1606

使用Weka进行数据挖掘(Weka教程一)Weka初识之在你的代码中使用Weka

Weka教程一,讲解Weka的组件、和开发环境配置

乔阳的博客 8628

【使用分享】Java使用weka进行时间序列预测

本教程将向您展示如何使用Weka库在Java中进行基于时间序列数据的预测。我们将使用示例数据集,该数据集包含每月销售额的历史记录,并尝试预测未来12个月的销售额。

Ry1的博客 3402

在java中怎么使用weka_在Java中使用weka:入门

本文介绍如何使用weka构建特征向量,训练分类器,测试分类器,使用分类器。第一步:用特征表达问题(属性)这一步相当于构建一个arff文件我们先把特征放入weka.core.FastVector中每个特征都包含在weka.core.Attribute类中现在我们有两个numeric 特征,一个 nominal 特征 (blue, gray, black) 和一个 nominal 类 (positiv...

weixin_39562338的博客 1415

Java与机器学习:Weka框架使用

📚 Weka是一个开源的Java机器学习库,包含了丰富的数据预处理方法、分类、回归、聚类算法以及评估技术。它以易用性和强大功能著称。

java专栏 1441

Weka教程,使用Weka进行简单的分类和聚类

对于Percentage split选项,当你的数据集没有测试集时,可以通过设置右侧的数字来将你的数据集分为训练集和测试集,图中的数字为66,其代表将数据集66%的数据作为训练集,其余34%的数据作为测试集。3,找到自己Weka的安装目录,进入data文件夹,选择自己需要分类的数据集,当然也可以是外部数据集,但文件需要是arff类型文件,其它文件类型如何转为arff类型可参考。1,前面的操作和上面分类操作的步骤一样,导入数据集后进入到聚类的界面,需要注意的地方在下图中进行了标注。

weixin_46039606的博客 1万+

Weka学习笔记01:初探Weka世界

下载、安装和启动Weka、Weka数据格式

howard2005的专栏 1471

数据挖掘与机器学习:Weka Java 编程接口 API

文章目录1 环境配置2 数据模型2.1 Instances:数据集2.2 Instance:数据实例2.3 Attribute:属性类3 DataSource4 DataSink5 数据集处理5.1 创建数据集5.2 添加数据6 过滤7 分类8 聚类 1 环境配置 在 Idea 上创建 Maven Java 项目,并添加依赖: <dependency> <groupId>nz.ac.waikato.cms.weka</groupId> &l

抱朴守拙 6663

Qt绘图实战:用QGraphicsItem实现可拖拽箭头连接(附完整代码)

本文详细介绍了如何使用Qt的QGraphicsItem框架实现一个功能完备的可拖拽箭头连接组件。通过核心代码示例,讲解了如何创建自定义图形项、实现智能吸附、碰撞检测以及实时拖拽编辑路径,为构建流程图、拓扑图等专业图形编辑器提供了完整的解决方案。

m2n3b4v5c6的博客 626

OpenCompass实战:从零部署大模型评测平台,量化模型能力选型

在大模型技术选型与评估中,客观、可量化的评测体系是工程实践的关键。其核心原理在于通过标准化的数据集、统一的评测方法与自动化流程,将主观的模型体验转化为可比较的指标数据。这种评测框架的技术价值在于解决了模型能力评估的模糊性问题,为开发者提供了模型选型、效果对比与迭代优化的科学依据。典型的应用场景包括对比不同开源模型在代码生成、逻辑推理等特定任务上的性能,或是评估微调后模型在业务数据集上的提升效果。OpenCompass作为开源的大模型全能力评测平台,正是这一理念的工程化实现。它通过模块化的四层流水线架构和配置

weixin_28725037的博客 626

在eclipse下使用java调用weka

weka是很好用的机器学习库,这里就不详细介绍了。言归正传,要使用程序方式使用weka,步骤如下:一、在eclipse里新建一个java project: 1.      建立工程:单击菜单中file->new->java project,在弹出对话框的project name中起任意一个名字,此处假设是wekaTest。单击Finish按钮(在对话框底部)。 2.      建立

Felomeng的技术博客 3万+

Winform美化框架AntdUI中Table的使用方法

使用核心注意点: 数据模型中属性名需要完全与new Column里的列名一致否则添加数据源则无法读取到详细内容。

wevix的博客 3677

使用Weka进行数据挖掘(Weka教程三)Weka数据之Instances和Instance

本博客讲解以下Weka运行时数据的存储对象Instances和Instance。

乔阳的博客 1万+

ARM64麒麟V10系统下PyTorch离线安装全攻略(附资源下载)

本文详细介绍了在ARM64架构的银河麒麟V10操作系统上,如何通过离线方式成功安装PyTorch深度学习框架。文章提供了从系统环境准备、依赖梳理、离线资源获取与验证,到分步安装、避坑指南及安装后验证的完整流程,并附有资源下载建议,旨在帮助开发者在国产化环境中高效部署AI开发平台。

metal的博客 746

feko金属球远场RCS双站

feko金属球远场RCS双站

a264672的博客 6910

在eclipse下使用java调用weka 与 在MyEclipse中运行数据挖掘工具weka

要使用程序方式使用weka,步骤如下: 一、在eclipse里新建一个java project: 1. 建立工程:单击菜单中file->new->java project,在弹出对话框的project name中起任意一个名字,此处假设是wekaTest。单击Finish按钮(在对话框底部)。 2. 建立package:在package Explorer中找到刚才新建的工程,在其

WangDongLing123的专栏 1410

l0phtcrack 7(爆破管理员密码)使用教程

l0phtcrack7简称lc7,是爆破计算机管理员密码的软件,早期是网络安全管理员用来检测系统用户是否使用了不安全的密码,后被黑客用于用户口令破解 功能:该工具支持远程破解,理论上能破解所有密码,但对复杂度比较高的密码,破解时间很长 使用前提:1.登录了需要破解的计算机 2.知道需要破解的计算机的一个管理员的账户,密码 ** 也许你会疑惑,我都知道了一个管理员账户密码了,还要另外的管理员密码...

Xiongcanne的博客 2万+

java weka 聚类_数据挖掘学习02 - 使用weka的kmeans聚类分析

本文目的weka是一套使用java开发的数据挖掘工具集合,提供GUI/CLI界面和Java API使用方式。所以,在学习和解决数据挖掘问题时,可以先尝试用weka的GUI或CLI做出合适的分析,找到适当的算法,然后在将此算法集成到自己的项目中。最近在的项目中遇到了文本聚类的问题,kmeans是一种常见的聚类算法,这里先拿此算法和示例数据做一些实验,以便熟悉weka的界面操作。什么是kmeans详细...

weixin_27727467的博客 1482

C和C++Everything教程的简介

C和C++Everything教程的简介 C和C++Everything教程,该专栏目前已有8000博文,订阅该专栏相当于同时订阅以下所有收费专栏

希望我的博客,能帮上你解决学习中工作中所遇到的问题 4390

Allegro如何去掉PCB内层未使用的过孔孔环?

在用Allegro进行PCB设计过程中,遇到铺铜铜箔被焊盘大量割断,导致铺铜不完整,这样就会导致铺铜过电流太小,影响板的性能,严重的会导致板工作不稳定,甚至不工作。解决办法:是去掉内层未使用的过孔孔环,增大过铜箔面积。

bhxc809751502的博客 2571

在Python中使用Weka

Weka是用Java编写的数据挖掘工具,如果要在Python中调用Weka,需要用到Jython。Jython是100%用Java实现的Python,可以无缝的嵌入到Java平台当中。 前期准备: 1. 安装JDK,Jython 2. 将Jython的执行路径加入到$PATH,将Weka.jar的路径加入到$CLASSPATH中 下面我们用Jython调用Weka的朴素...

weixin_30832351的博客 2321

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

weka的使用

weka 的使用 环境: ubuntu 16.04 目录 weka的简介 weka的安装 使用 1. weka的简介 weka是新西兰的一种鸡,差不多长这样: 也是一款基于java的数据挖掘(data mining)、机器学习(machine learning)常用软件,是开源的,非商业化的。 weka学习视频在怀卡托大学网站Weka MOOC和优酷上可以找到,Youtube上也有...

Explorer 1214

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Weka使用

下载地址https://sourceforge.net/projects/weka/

qq_41122834的博客 1313

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: 在Java中使用weka:将实例转化为ARFF文件
下一篇: 在Java中使用weka:入门
Bryan__
博客等级 码龄12年 2500粉丝 166原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值