【问题标题】:Pass Java array as an input for ELKI DBSCAN传递 Java 数组作为 ELKI DBSCAN 的输入
【发布时间】:2014-07-20 05:50:18
【问题描述】:

我已经能够使用 Java 代码将 ELKI 用于 DBSCAN,并且与任何其他工具相比,它的速度非常快。 到目前为止,我一直在使用 CSV 文件并使用以下内容作为输入。

params.addParameter(FileBasedDatabaseConnection.Parameterizer.INPUT_ID,fileLocation)

我想知道如何将 (lat,long,timestamp) 数组作为输入而不是 CSV 文件传递​​。我想不通。

【问题讨论】:

    标签: cluster-analysis data-mining dbscan elki


    【解决方案1】:

    早上好。

    这就是 ArrayAdapterDatabaseConnection 类的用途。

    DatabaseConnection dbc = new ArrayAdapterDatabaseConnection(...);
    
    // Pass an instance, not a class, as parameter.
    params.addParameter(
        AbstractDatabase.Parameterizer.DATABASE_CONNECTION_ID, dbc);
    

    或者,您可以实现自己的DatabaseConnectionParser

    使用纬度、经度、时间戳时,请注意距离和类型。不要在 lat,long,timestamp 上使用欧几里得距离;而是仔细构建特定领域的相似性度量。

    【讨论】:

    • 谢谢!!它的工作。关于标签的一个问题。 “DatabaseConnection dbc = new ArrayAdapterDatabaseConnection(datamatrix,timestmp);”我用作标签的timestmp。 “标签 = db.getRelation(TypeUtil.LABELLIST);”给我一个错误“没有找到令人满意的数据类型:LabelList”
    • 标签当前以TypeUtil.STRING 的形式添加到数据中。对于TypeUtil.LABELLIST,他们需要进行额外的封装。但是为了保持一致性,可能应该以这种方式更改该类。
    猜你喜欢
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-07
    • 2015-11-10
    • 2018-06-11
    • 2014-07-01
    • 2014-07-15
    相关资源
    最近更新 更多