Gleicher Instances-Header (arff) für alle meine Datenbankabfragen

ich benutzeInstanceQuery , SQL-Abfragen, um meineInstanzen. Meine Abfrageergebnisse sind jedoch nicht immer in der gleichen Reihenfolge wie in SQL üblich. Aufgrund dessen haben Instanzen, die aus unterschiedlichem SQL aufgebaut sind, unterschiedliche Header. Ein einfaches Beispiel ist unten zu sehen. Ich vermute, dass sich meine Ergebnisse aufgrund dieses Verhaltens geändert haben.

Header 1

@attribute duration numeric
@attribute protocol_type {tcp,udp}
@attribute service {http,domain_u}
@attribute flag {SF}

Header 2

@attribute duration numeric
@attribute protocol_type {tcp}
@attribute service {pm_dump,pop_2,pop_3}
@attribute flag {SF,S0,SH}

Meine Frage lautet: Wie kann ich der Instanzkonstruktion korrekte Headerinformationen geben?

Ist so etwas wie unten Workflow möglich?

Holen Sie sich vorbereitete Header-Informationen aus der ARFF-Datei oder einem anderen Ort.Geben Sie der Instanzkonstruktion diese Header-InformationSQL-Funktion aufrufen und Instanzen abrufen (Header + Daten)

Ich benutze folgende SQL-Funktion, um Instanzen aus der Datenbank zu erhalten.

public static Instances getInstanceDataFromDatabase(String pSql
                                      ,String pInstanceRelationName){
    try {
        DatabaseUtils utils = new DatabaseUtils();

        InstanceQuery query = new InstanceQuery();

        query.setUsername(username);
        query.setPassword(password);
        query.setQuery(pSql);

        Instances data = query.retrieveInstances();
        data.setRelationName(pInstanceRelationName);

        if (data.classIndex() == -1)
        {
              data.setClassIndex(data.numAttributes() - 1);
        }
        return data;
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage