Я использую фреймворк ELKI для группировки ряда точек, определяемых их географическими координатами (долгота, широта). Я использую алгоритм DBSCAN.Кластеризация нескольких атрибутов с помощью ELKI
Теперь я хотел бы добавить еще один (числовой) атрибут, который весит важность точек (допустим, размер).
Теоретически точки теперь будут определены в трехмерном пространстве (а не в 2D), а расстояние будет представлять собой расстояние от географического расстояния и расстояния.
На практике я пытался сделать это в ELKI, но я вхожу в конкретную проблему. Алгоритмы кластеризации ожидают «базу данных» в качестве входных данных.
Clustering<DBSCANModel> de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm.run(Database database)
Эта база данных создается из LisParametrization, который, среди прочего, гласит подключение к базе данных:
params.addParameter(
AbstractDatabase.Parameterizer.DATABASE_CONNECTION_ID, dbc);
Наконец, соединение с базой данных считывает данные из 2D массива:
Импортируйте существующую матрицу данных (double[rows][cols]
) в базу данных ELKI.
DatabaseConnection dbc = new ArrayAdapterDatabaseConnection(array[][]);
Мой вопрос: есть ли способ заменить этот 2D массив для матрицы * D?
Например, в моем случае я хотел бы использовать 3D-массив для хранения двух географических координат и численного атрибута. Что-то вроде этого:
массив [] [] []
Вы хотите, чтобы 'double [rows] [3]' array, а не 'double [] [] []', очевидно. Три столбца, а не тензоры. 'double [] [] []' не будет матрицей, а тензором *. Это будут строки x столбцов x глубинных фрагментов. Это распространено в сверточном глубоком обучении, когда у вас есть 16x16 пиксельных патчей, для 1000 местоположений вашего входного изображения. –