So verbinden Sie zwei Sätze von weka-Instanzen zusammen
Derzeit bin ich beim kopieren einer Instanz zu einem Zeitpunkt von einem Datensatz zum anderen. Gibt es eine Möglichkeit, dies zu tun, so dass string-mappings intakt bleiben? Die mergeInstances arbeitet horizontal, gibt es ein äquivalent vertikale Zusammenführen?
Dies ist ein Schritt von einer Schleife, die ich zum Lesen von Datensätzen aus der gleichen Struktur aus mehreren arff-Dateien in eine große datasets. Es hat doch eine einfachere Möglichkeit.
Instances iNew = new ConverterUtils.DataSource(name).getDataSet();
for (int i = 0; i < iNew.numInstances(); i++) {
Instance nInst = iNew.instance(i);
inst.add(nInst);
}
InformationsquelleAutor fodon | 2012-05-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Warum nicht eine neue ARFF-Datei, die die Daten aus der originalen? Eine einfache
wo
20
wird ersetzt durch jedoch viele Zeilen lang Ihre arff-header ist. Dies würde dann einen neuen arff-Datei mit allen gewünschten Instanzen, und Sie konnte Lesen, Sie diese neue Datei mit den existierenden code:Könnte man auch aufrufen, weka auf der Kommandozeile mit Hilfe dieser Dokumentation: http://old.nabble.com/how-to-merge-two-data-file-a.arff-and-b.arff-into-one-data-list--td22890856.html
Gibt es jedoch keine Funktion in der Dokumentation http://weka.sourceforge.net/doc.dev/weka/core/Instances.html#main%28java.lang.String denen Sie Anhängen, mehrere arff-Dateien nativ in java-code. Als der Weka 3.7.6, der code fügt zwei arff-Dateien, ist dies:
So wie es aussieht Weka sich einfach iteriert durch alle Instanzen in einem Datensatz und druckt Sie, den gleichen Prozess, den der code verwendet.
InformationsquelleAutor kaz
Wenn Sie möchten, eine Total voll automatisierten Methode, die auch ordnungsgemäß kopiert string und nominalen Attributen können Sie folgende Funktion verwenden:
Bitte beachten Sie, dass die folgenden Bedingungen halten sollte (es sind nicht geprüft in die Funktion):
Ändern on-the-fly die Werte der nominalen Attribute von data2 übereinstimmen, die von data1, die Sie verwenden können:
InformationsquelleAutor mountrix
Eine weitere mögliche Lösung ist die Verwendung addAll aus java.util.AbstractCollection, da Instanzen implementieren.
Diese Methode funktioniert nicht immer, wenn Sie Filter verwenden.Für mehr Informationen: stackoverflow.com/q/38460698/3923800
InformationsquelleAutor user2402105
Ich haben gerade gemeinsam einen erweiterten
weka.core.Instaces
Klasse mit Methoden wieinnerJoin
,leftJoin
,fullJoin
,update
undunion
.Instanzen können unterschiedliche Anzahl von Attributen, Ebenen der
NOMINAL
undSTRING
Variablen werden zusammengeführt, wenn nötig.Quellen und einige Beispiele sind hier auf GitHub: weka.beitreten.
InformationsquelleAutor btaranta