当前位置: 首页 > 面试题库 >

将实例添加到Weka中的实例

袁建木
2023-03-14
问题内容

我有一些arff文件。我想顺序阅读它们并创建一个大数据集。Instances.add(Instance
inst)不会将字符串值添加到实例,因此尝试setDataset()…但即使失败。有没有办法完成直观上正确的字符串操作?

                ArffLoader arffLoader = new ArffLoader();
                arffLoader.setFile(new File(fName));
                Instances newData = arffLoader.getDataSet();
                for (int i = 0; i < newData.numInstances(); i++) {
                        Instance one = newData.instance(i);
                        one.setDataset(data);
                        data.add(one);
                }

问题答案:

这是从邮件列表。我以前保存过

如何将两个数据文件a.arff和b.arff合并到一个数据列表中?

取决于您在说什么合并。您是否只想追加第二个文件(两个都具有相同的属性)还是要添加合并属性(两个都具有相同的实例数)?

In the first case ("append"): 
java weka.core.Instances append filename1 filename2 > output-file

and the latter case ("merge"): 
java weka.core.Instances merge filename1 filename2 > output-file

以下是相关的Javadoc:http://weka.sourceforge.net/doc.dev/weka/core/Instances.html#main(java.lang.String
[])

使用mergeInstances合并两个数据集。

 public static Instances mergeInstances(Instances first,
                                   Instances second)

您的代码如下所示。对于相同的实例编号。

ArffLoader arffLoader = new ArffLoader();
arffLoader.setFile(new File(fName1));
Instances newData1 = arffLoader.getDataSet();
arffLoader.setFile(new File(fName2));
Instances newData2 = arffLoader.getDataSet();
Instances mergedData = Instances.mergeInstances( newData1 ,newData2);

您的代码如下所示。对于相同的属性编号。我在weka中没有看到任何Java方法。如果您阅读代码,则如下所示。

// Instances.java
//  public static void main(String[] args) {
// read two files, append them and print result to stdout
  else if ((args.length == 3) && (args[0].toLowerCase().equals("append"))) {
DataSource source1 = new DataSource(args[1]);
DataSource source2 = new DataSource(args[2]);
String msg = source1.getStructure().equalHeadersMsg(source2.getStructure());
if (msg != null)
  throw new Exception("The two datasets have different headers:\n" + msg);
Instances structure = source1.getStructure();
System.out.println(source1.getStructure());
while (source1.hasMoreElements(structure))
  System.out.println(source1.nextElement(structure));
structure = source2.getStructure();
while (source2.hasMoreElements(structure))
  System.out.println(source2.nextElement(structure));
  }


 类似资料:
  • 问题内容: 如何将新实例添加到我创建的现有Instances对象中? 这是一个例子: 我想向dataRaw添加一个新实例。据我所知,我必须使用dataRaw.add(Instance i)....如果Instance类是一个接口,如何创建一个实例对象? 提前致谢 问题答案: 让我们从一些亮点开始。 weka将每个实例值存储为double []。因此,您创建double [] instanceVal

  • 我在连接EBS卷到我的Ubuntu EC2实例时遇到了问题。 以下是我所做的: > 从Amazon AWS控制台,我创建了一个150GB的EBS卷,并将其附加到Ubuntu11.10EC2实例。在EBS卷属性下,“附件”显示:“[我的Ubuntu实例id]://dev/sdf(附件)” 尝试在Ubuntu盒子上安装驱动器,它告诉我“mount:/dev/sdf不是块设备” 错误: mount:错误

  • 问题内容: 我试图将Integration Services添加到现有的SQL Server 2008实例中。 我去了SQL Server安装中心,然后单击“新安装或向现有安装添加功能”选项。此时,将弹出一个文件系统窗口。我被要求浏览以查找SQL Server 2008 R2安装介质。 我尝试使用 C:Program Files \ MicrosoftSQLServer, 但收到错误消息,该错误消

  • 问题内容: 我目前正在运行ec2微型实例,但发现该实例有时会耗尽内存。 除了使用更大的实例大小之外,还可以做什么? 问题答案: 解决此问题的方法是向实例添加(即)空间。 分页通过在硬盘驱动器上创建一个区域并将其用于额外的内存来工作,该内存比普通内存要慢得多,但可用空间更多。 要为您的实例添加此额外空间,请输入: 如果您需要超过1024,则将其更改为更高的值。 要在重新启动后默认启用它,请将此行添加

  • 问题内容: weka是否要求测试实例具有class属性。我已经使用了一个训练集arff文件来训练分类器。现在,我想测试一个没有class属性的实例(不是从arf​​f文件,必须通过代码创建)并预测该类。我找到了此链接。Weka:如何在Java中获得测试实例的预测值? 但是我的课程属性是字符串“ Y”或“ N”。如果valuateModelOnce()返回double,那是什么意思。是class属性