Ich habe eine CSV-Datei mit mehreren Spalten, wobei die Spalten "lat, lon, item1" sind. Ich in der Lage gewesen, die Daten mit dem folgenden Code zu laden:ELKI DBSCAN Ignorieren von Spalten
ListParameterization params = new ListParameterization();
List<ObjectFilter> filterlist = new ArrayList<>();
filterlist.add(new FixedDBIDsFilter(1));
NumberVectorLabelParser<DoubleVector> parser = new NumberVectorLabelParser<>(DoubleVector.FACTORY);
FileBasedDatabaseConnection dbc = new FileBasedDatabaseConnection(filterlist, parser, is);
params.addParameter(AbstractDatabase.Parameterizer.DATABASE_CONNECTION_ID, dbc);
Database db = ClassGenericsUtil.parameterizeOrAbort(StaticArrayDatabase.class, params);
db.initialize();
Ich habe auch eine DBSCAN laufen und die Anzahl der abgerufenen Cluster und ich kann die Daten aus den Clustern ziehen.
ListParameterization params1 = new ListParameterization();
params1.addParameter(DBSCAN.Parameterizer.EPSILON_ID, 0.05);
params1.addParameter(DBSCAN.Parameterizer.MINPTS_ID, 2);
DBSCAN<DoubleVector> dbscan = ClassGenericsUtil.parameterizeOrAbort(DBSCAN.class, params1);
Clustering<Model> result = dbscan.run(db);
Ich kann sehen, dass die DBSCAN alle drei Spalten für den Scan verwendet, weil, wenn ich nur zwei Spalten verwenden, lat, lon, erhalte ich eine andere Anzahl von Clustern.
Ich möchte alle Spalten in meiner Datenbank für den späteren Zugriff haben, aber nur aus den lat/lon Spalten Cluster. Ich glaube, dass ich etwas brauche, um die anderen Spalten zu markieren, damit sie nicht verwendet werden, aber ich kann die richtige Antwort nicht finden. Ich dachte das folgende würde funktionieren aber es tat nicht:
params.addParameter(NumberVectorLabelParser.Parameterizer.LABEL_INDICES_ID, 2);
Kann mir jemand dabei helfen?
Danke für die Hilfe. Es brauchte ein wenig, um herauszufinden, wie die Bitmaske funktionierte, aber ich benutze nur die Spalten lat und lon. Ich habe auch die Abstandsfunktion geändert und die Ergebnisse für Euklidisch und DimensionSelectingLatLngDistanceFunction sind sehr unterschiedlich, aber ich werde das Epsilon optimieren, um die Cluster passend zu sortieren. – SpiltMilk