2014-10-29 105 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