我目前正在尝试使用elki库提供的KMeans群集功能。
这就是我提出的:
double[][] dblArray = new double[100][10] // 100 10-dimensional data points
//populate array...
KMeansInitialization<NumberVector<Double>> kinit = new FirstKInitialMeans<>();
KMeansLloyd<NumberVector<Double>, DoubleDistance> kmeans
= new KMeansLloyd<NumberVector<Double>, DoubleDistance>(EuclideanDistanceFunction.STATIC, K, KMEANSMAXITER, kinit);
DatabaseConnection dbc = new ArrayAdapterDatabaseConnection(dblArray));
Database d = new StaticArrayDatabase(dbc, null);
kmeans.run(d);
埃尔基给了我:
de.lmu.ifi.dbs.elki.data.type.NoSupportedDataTypeException:无数据 找到满足的类型:NumberVector,字段和NumberVector可用 类型:at de.lmu.ifi.dbs.elki.database.AbstractDatabase.getRelation(未知 来源)at de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm.run(Unknown Source)
答案 0 :(得分:0)
不要忘记初始化您的数据库:
d.initialize();
此时,将从数据库连接中获取数据,并将构建索引。
如果您忘记初始化数据库,它将保持为空。