Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在weka中添加新实例_Java_Machine Learning_Weka - Fatal编程技术网

Java 在weka中添加新实例

Java 在weka中添加新实例,java,machine-learning,weka,Java,Machine Learning,Weka,如何将新实例添加到已创建的现有实例对象中 以下是一个例子: ArrayList<Attribute> atts = new ArrayList<Attribute>(2); ArrayList<String> classVal = new ArrayList<String>(); classVal.add("A"); classVal.add("B"); atts.add(new Attribute("content",(ArrayList<

如何将新实例添加到已创建的现有实例对象中

以下是一个例子:

ArrayList<Attribute> atts = new ArrayList<Attribute>(2);
ArrayList<String> classVal = new ArrayList<String>();
classVal.add("A");
classVal.add("B");
atts.add(new Attribute("content",(ArrayList<String>)null));
atts.add(new Attribute("@@class@@",classVal));

Instances dataRaw = new Instances("TestInstances",atts,0);
ArrayList atts=新的ArrayList(2);
ArrayList classVal=新的ArrayList();
类别价值添加(“A”);
类别价值加上(“B”);
add(新属性(“content”,(ArrayList)null));
atts.add(新属性(“@@class@@@”,classVal));
实例数据原始=新实例(“测试实例”,atts,0);
我想向dataRaw添加一个新实例。据我所知,我必须使用dataRaw.add(实例I)。。。。如果实例类是接口,如何创建实例对象


提前感谢

让我们从一些亮点开始

  • weka将每个实例值存储为double[]。因此,您可以创建双[]instanceValue1并向该数组添加值
  • 偶数字符串存储在此双精度[]中。使用以下代码添加字符串值:
instanceValue1[0]=dataRaw.attribute(0.addStringValue(“这是一个字符串!”)

  • 实例是接口,它由两个类{SparseInstance,DenseInstance}实现。我们使用以下代码将值数组添加到数据集:
添加(新的DenseInstance(1.0,instanceValue1))

以下是完整的运行示例:

import java.util.ArrayList;

import weka.core.Attribute;
import weka.core.DenseInstance;
import weka.core.Instance;
import weka.core.Instances;

public class Program {
    public static void main(String[] args) {
        ArrayList<Attribute> atts = new ArrayList<Attribute>(2);
        ArrayList<String> classVal = new ArrayList<String>();
        classVal.add("A");
        classVal.add("B");
        atts.add(new Attribute("content",(ArrayList<String>)null));
        atts.add(new Attribute("@@class@@",classVal));

        Instances dataRaw = new Instances("TestInstances",atts,0);
        System.out.println("Before adding any instance");
        System.out.println("--------------------------");
        System.out.println(dataRaw);
        System.out.println("--------------------------");

        double[] instanceValue1 = new double[dataRaw.numAttributes()];

        instanceValue1[0] = dataRaw.attribute(0).addStringValue("This is a string!");
        instanceValue1[1] = 0;

        dataRaw.add(new DenseInstance(1.0, instanceValue1));

        System.out.println("After adding a instance");
        System.out.println("--------------------------");
        System.out.println(dataRaw);
        System.out.println("--------------------------");

        double[] instanceValue2 = new double[dataRaw.numAttributes()];

        instanceValue2[0] = dataRaw.attribute(0).addStringValue("This is second string!");
        instanceValue2[1] = 1;

        dataRaw.add(new DenseInstance(1.0, instanceValue2));

        System.out.println("After adding second instance");
        System.out.println("--------------------------");
        System.out.println(dataRaw);
        System.out.println("--------------------------");


    }

}

传递一个
实例的实现,您可以在所有已知的实现类下看到它。PS您将无法添加任何内容,因为您将
0
传递给构造函数中的
capacity
参数。我在这里遵循了此指南(),据我所知,这是初始容量。你能给我举个例子,如何给我创建的对象添加一个新实例吗?谢谢…我可以知道你使用了哪种api吗?Weka和普通java集合api。嗨@AtillaOzgur我得到了-1表示“dataRaw.attribute(0).addStringValue(“这是第二个字符串!”);“当我尝试分配给double[]var时,我的代码中的一部分你能给我一个提示吗?”。。。。。。
Before adding any instance
--------------------------
@relation TestInstances

@attribute content string
@attribute @@class@@ {A,B}

@data

--------------------------
After adding a instance
--------------------------
@relation TestInstances

@attribute content string
@attribute @@class@@ {A,B}

@data
'This is a string!',A
--------------------------
After adding second instance
--------------------------
@relation TestInstances

@attribute content string
@attribute @@class@@ {A,B}

@data
'This is a string!',A
'This is second string!',B
--------------------------