我使用ELKI框架对一系列点进行聚类,这些点由它们的地理坐标(经度、纬度)定义。我使用的算法是 DBSCAN。
现在我想添加另一个(数字)属性来衡量点的重要性(比如说大小)。
理论上,这些点现在将在 3 维空间(而不是 2D)中定义,并且距离将是地理距离和数据距离的混合。
在实践中,我尝试在 ELKI 中执行此操作,但我遇到了一个具体问题。聚类算法需要一个“数据库”作为输入。
Clustering<DBSCANModel> de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm.run(Database database)
该数据库是从 LisParametrization 创建的,其中包括读取数据库连接:
params.addParameter(
AbstractDatabase.Parameterizer.DATABASE_CONNECTION_ID, dbc);
最后,这个数据库连接从一个二维数组中读取数据:
将现有数据矩阵 ( double[rows][cols]
) 导入 ELKI 数据库。
DatabaseConnection dbc = new ArrayAdapterDatabaseConnection(array[][]);
我的问题是:有没有办法用 *D 矩阵替换这个二维数组?
例如,在我的情况下,我想使用 3D 数组来存储两个地理坐标和数值属性。像这样的东西:
大批[][][]