2014-10-29 102 views
0

我目前正在尝试使用由elki库提供的KMeans聚类功能。ELKI中非常简单的K均值聚类示例

这是我想出了:

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); 

Elki给我:

de.lmu.ifi.dbs.elki.data.type.NoSupportedDataTypeException:无数据 类型发现满足:NumberVector,字段AND NumberVector可用 类型:at de.lmu.ifi.dbs.elki.database.AbstractDatabase.getRelation(Unknown Source)at de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm.run (UNK nown源)

回答

0

不要忘了初始化数据库:

d.initialize(); 

在这一点上,将数据从数据库连接中获取,并且将构建索引。

如果您忘记初始化数据库,它将保持空白。

+0

argh:D谢谢 – Simbi 2014-10-30 14:29:08