【发布时间】: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
我想使用preDistance(double[] v1, double[] v2, int start, int end) 函数而不是preDistance(NumberVector v1, NumberVector v2, int start, int end)。我怎样才能做到这一点?是否可以通过更改 parser.vector-type 或更改 dbc.parser 来实现?
【问题讨论】:
标签: elki
double[] 如果你想允许子类型化是很痛苦的,因为你不能子类化数组。在某些情况下,您可能只想使用float 精度来节省内存。因此,需要一个包装器。
您可以在最新版本的 ELKI 中使用DoubleVector.wrap()。在许多情况下,JVM 应该能够通过逃逸分析很好地优化这一点。
【讨论】:
NumberVector 之类的 API,那么事情通常比您尝试仅使用单个类并使其与 double[] 一起使用更容易。
ProxyDatabase 可用于在现有关系之上构建子集视图。 (在关系级别,类是ProxyView)这对于在数据分区上运行其他算法的某些算法是必要的。