Это из списка рассылки. Я сохранил это раньше
как объединить два файла данных 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);
Ваш код будет примерно таким, как показано ниже. Для одинаковых номеров атрибутов. Я не вижу никакого java-метода в weka. Если вы читаете код, есть что-то вроде ниже.
// 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));
}
person
Atilla Ozgur
schedule
07.06.2012
String
тип данных Java? Вы вставляетеInstance
в наборInstances
, поэтому мне трудно понять, что вы имеете в виду. Что вы делаете, чтобы проверить, обновляются ли строки, о которых вы говорите? этот код может нам помочь. - person kaz   schedule 07.06.2012{"red","green","blue"}
в обоих или{"red","green"}
в одном и{"blue"}
в другом)? - person kaz   schedule 08.06.2012