【问题标题】:How to use Arrays instead of NumberVector in Elki如何在 Elki 中使用数组而不是 NumberVector
【发布时间】:2018-05-24 13:17:49
【问题描述】:

我想使用preDistance(double[] v1, double[] v2, int start, int end) 函数而不是preDistance(NumberVector v1, NumberVector v2, int start, int end)。我怎样才能做到这一点?是否可以通过更改 parser.vector-type 或更改 dbc.parser 来实现?

【问题讨论】:

    标签: elki


    【解决方案1】:

    double[] 如果你想允许子类型化是很痛苦的,因为你不能子类化数组。在某些情况下,您可能只想使用float 精度来节省内存。因此,需要一个包装器。

    您可以在最新版本的 ELKI 中使用DoubleVector.wrap()。在许多情况下,JVM 应该能够通过逃逸分析很好地优化这一点。

    【讨论】:

    • 理解和修改别人的代码真的很头疼,尤其是像我这样的新手。
    • 尤其是涵盖广泛用例(例如不同精度向量、稀疏向量等)的代码也往往会变得更复杂一些。如果您还想允许例如浮点精度,则无法避免这种情况。但是,如果您尽可能多地使用诸如 NumberVector 之类的 API,那么事情通常比您尝试仅使用单个类并使其与 double[] 一起使用更容易。
    • 当我使用关系变量时,它包含了我的 csv 文件 45000 id 中 csv 文件中可用的所有数据行。是否可以将关系变量中的数据分为两部分,即一个关系变量中的 22500 行和第二个关系变量中的 22500 行?
    • ProxyDatabase 可用于在现有关系之上构建子集视图。 (在关系级别,类是ProxyView)这对于在数据分区上运行其他算法的某些算法是必要的。
    • 好的,但我不明白如何使用 ProxyView 或 ProxyDatabase 将关系分成两部分?
    猜你喜欢
    • 1970-01-01
    • 2015-10-14
    • 2013-10-20
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    • 2011-04-22
    • 1970-01-01
    • 2015-05-12
    相关资源
    最近更新 更多