热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

de.lmu.ifi.dbs.elki.data.VectorUtil类的使用及代码示例

本文整理了Java中de.lmu.ifi.dbs.elki.data.VectorUtil类的一些代码示例,展示了VectorUtil类的具体

本文整理了Java中de.lmu.ifi.dbs.elki.data.VectorUtil类的一些代码示例,展示了VectorUtil类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。VectorUtil类的具体详情如下:
包路径:de.lmu.ifi.dbs.elki.data.VectorUtil
类名称:VectorUtil

VectorUtil介绍

[英]Utility functions for use with vectors. Note: obviously, many functions are class methods or database related. TODO: add more precise but slower O(n^2) angle computation according to: Computing the Angle between Vectors, P. Schatte Journal of Computing, Volume 63, Number 1 (1999)
[中]用于向量的实用函数。注意:显然,许多函数都与类方法或数据库有关。TODO:增加更精确但速度较慢的O(n^2)角度计算,参考:计算向量之间的角度,P.Schatte计算杂志,第63卷,第1期(1999年)

代码示例

代码示例来源:origin: elki-project/elki

/**
* Computes the cosine distance for two given feature vectors.
*
* The cosine distance is computed from the cosine similarity by
* 1-(cosine similarity).
*
* @param v1 first feature vector
* @param v2 second feature vector
* @return the cosine distance for two given feature vectors v1 and v2
*/
@Override
public double distance(NumberVector v1, NumberVector v2) {
double d = VectorUtil.cosAngle(v1, v2);
return (d <= 1) ? 1 - d : 0;
}

代码示例来源:origin: elki-project/elki

/**
* Produce a new vector based on random numbers in [0:1].
*
* @param factory Vector factory
* @param dim desired dimensionality
* @param vector type
* @return new instance
*/
public static V randomVector(NumberVector.Factory factory, int dim) {
return randomVector(factory, dim, new Random());
}

代码示例来源:origin: de.lmu.ifi.dbs.elki/elki-core-api

/**
* Compute the absolute cosine of the angle between two vectors.
*
* To convert it to radians, use Math.acos(angle)!
*
* @param v1 first vector
* @param v2 second vector
* @return Angle
*/
public static double cosAngle(NumberVector v1, NumberVector v2) {
// Java Hotspot appears to optimize these better than if-then-else:
return v1 instanceof SparseNumberVector ? //
v2 instanceof SparseNumberVector ? //
angleSparse((SparseNumberVector) v1, (SparseNumberVector) v2) : //
angleSparseDense((SparseNumberVector) v1, v2) : //
v2 instanceof SparseNumberVector ? //
angleSparseDense((SparseNumberVector) v2, v1) : //
angleDense(v1, v2);
}

代码示例来源:origin: elki-project/elki

SparseNumberVector s5 = new SparseFloatVector(new float[] { 0.f, 0.f, 0.f, 0.f, 5.f });
SparseNumberVector s6 = new SparseFloatVector(new float[] { });
assertEquals("Angle not exact.", 1., VectorUtil.angleDense(s2, d2), 0.);
assertEquals("Angle not exact.", 1., VectorUtil.angleSparseDense(s2, d2), 0.);
assertEquals("Angle not exact.", 1., VectorUtil.angleDense(s1, d1), 0.);
assertEquals("Angle not exact.", 1., VectorUtil.angleSparseDense(s1, d1), 0.);
assertEquals("Angle not exact.", 0.7142857142857143, VectorUtil.cosAngle(s1, s2), 0.);
assertEquals("Angle not exact.", 0.7142857142857143, VectorUtil.angleSparse(s1, s2), 0.);
assertEquals("Angle not exact.", 0.7142857142857143, VectorUtil.angleDense(s1, s2), 0.);
assertEquals("Angle not exact.", 0.7142857142857143, VectorUtil.cosAngle(d1, s2), 0.);
assertEquals("Angle not exact.", 0.7142857142857143, VectorUtil.angleDense(s2, d1), 0.);
assertEquals("Angle not exact.", 0.7142857142857143, VectorUtil.angleSparseDense(s2, d1), 0.);
assertEquals("Angle not exact.", 0.7142857142857143, VectorUtil.cosAngle(s1, d2), 0.);
assertEquals("Angle not exact.", 0.7142857142857143, VectorUtil.angleDense(s1, d2), 0.);
assertEquals("Angle not exact.", 0.7142857142857143, VectorUtil.angleSparseDense(s1, d2), 0.);
assertEquals("Angle not exact.", 0.8666666666666667, VectorUtil.cosAngle(s3, s4), 0.);
assertEquals("Angle not exact.", 0.8666666666666667, VectorUtil.angleSparse(s3, s4), 0.);
assertEquals("Angle not exact.", 0.8666666666666667, VectorUtil.angleDense(s3, s4), 0.);
assertEquals("Angle not exact.", 0.4879500364742666, VectorUtil.cosAngle(d1, s4), 0.);
assertEquals("Angle not exact.", 0.4879500364742666, VectorUtil.angleDense(s4, d1), 0.);
assertEquals("Angle not exact.", 0.4879500364742666, VectorUtil.angleSparseDense(s4, d1), 0.);
assertEquals("Angle not exact.", 0.4879500364742666, VectorUtil.cosAngle(s3, d2), 0.);
assertEquals("Angle not exact.", 0.4879500364742666, VectorUtil.angleDense(s3, d2), 0.);
assertEquals("Angle not exact.", 0.4879500364742666, VectorUtil.angleSparseDense(s3, d2), 0.);
assertEquals("Angle not exact.", 0., VectorUtil.angleSparseDense(s5, d1), 0.);

代码示例来源:origin: elki-project/elki

SparseNumberVector s2 = new SparseFloatVector(new float[] { 3.f, 2.f, 1.f });
assertEquals("Angle not exact.", 1., VectorUtil.cosAngle(s1, s1), 0.);
assertEquals("Angle not exact.", 1., VectorUtil.angleSparse(s1, s1), 0.);
assertEquals("Angle not exact.", 1., VectorUtil.angleDense(s1, s1), 0.);
assertEquals("Angle not exact.", 1., VectorUtil.cosAngle(s2, s2), 0.);
assertEquals("Angle not exact.", 1., VectorUtil.angleSparse(s2, s2), 0.);
assertEquals("Angle not exact.", 1., VectorUtil.angleDense(s2, s2), 0.);
assertEquals("Angle not exact.", 0.7142857142857143, VectorUtil.cosAngle(s1, s2), 0.);
assertEquals("Angle not exact.", 0.7142857142857143, VectorUtil.angleSparse(s1, s2), 0.);
assertEquals("Angle not exact.", 0.7142857142857143, VectorUtil.angleDense(s1, s2), 0.);
new float[] { 3.f, 2.f, -2.f, 1.f, -1.f, -3.f }, 100);
assertEquals("Angle not exact.", 1., VectorUtil.cosAngle(s3, s3), 0.);
assertEquals("Angle not exact.", 1., VectorUtil.angleDense(s3, s3), 0.);
assertEquals("Angle not exact.", 1., VectorUtil.angleSparse(s3, s3), 0.);
assertEquals("Angle not exact.", 1., VectorUtil.cosAngle(s4, s4), 0.);
assertEquals("Angle not exact.", 1., VectorUtil.angleDense(s4, s4), 0.);
assertEquals("Angle not exact.", 1., VectorUtil.angleSparse(s4, s4), 0.);
assertEquals("Angle not exact.", 0.35714285714285715, VectorUtil.angleDense(s3, s4), 0.);
assertEquals("Angle not exact.", 0.35714285714285715, VectorUtil.cosAngle(s3, s4), 0.);
assertEquals("Angle not exact.", 0.35714285714285715, VectorUtil.angleSparse(s3, s4), 0.);
assertEquals("Angle not exact.", 0.35714285714285715, VectorUtil.angleDense(s4, s3), 0.);
assertEquals("Angle not exact.", 0.35714285714285715, VectorUtil.cosAngle(s4, s3), 0.);
assertEquals("Angle not exact.", 0.35714285714285715, VectorUtil.angleSparse(s4, s3), 0.);

代码示例来源:origin: elki-project/elki

@Test
public void denseAngle() {
NumberVector v1 = new DoubleVector(new double[] { 1.0, 2.0, 3.0 });
NumberVector v2 = new FloatVector(new float[] { 3.f, 2.f, 1.f });
NumberVector v3 = new ByteVector(new byte[] { 1, 2, 3, 0 });
NumberVector v4 = new IntegerVector(new int[] { 3, 2, 1, 0 });
// Exact: (3+4+3)/(1+4+9) = 0.7142857142857143
assertEquals("Angle not exact.", 1., VectorUtil.cosAngle(v1, v1), 0.);
assertEquals("Angle not exact.", 1., VectorUtil.cosAngle(v2, v2), 0.);
assertEquals("Angle not exact.", 1., VectorUtil.cosAngle(v1, v3), 0.);
assertEquals("Angle not exact.", 1., VectorUtil.cosAngle(v2, v4), 0.);
assertEquals("Angle not exact.", 1., VectorUtil.cosAngle(v3, v1), 0.);
assertEquals("Angle not exact.", 1., VectorUtil.cosAngle(v4, v2), 0.);
assertEquals("Angle not exact.", 0.7142857142857143, VectorUtil.cosAngle(v1, v2), 0.);
assertEquals("Angle not exact.", 0.7142857142857143, VectorUtil.angleDense(v1, v2), 0.);
assertEquals("Angle not exact.", 0.7142857142857143, VectorUtil.cosAngle(v2, v1), 0.);
assertEquals("Angle not exact.", 0.7142857142857143, VectorUtil.angleDense(v2, v1), 0.);
}

代码示例来源:origin: elki-project/elki

@Override
public double similarity(final NumberVector o1, final NumberVector o2) {
return VectorUtil.dot(o1, o2);
}

代码示例来源:origin: de.lmu.ifi.dbs.elki/elki

@Override
public double minDist(SpatialComparable mbr1, SpatialComparable mbr2) {
double d = 1 - VectorUtil.minCosAngle(mbr1, mbr2);
if (d <0) {
d = 0;
}
return d;
}

代码示例来源:origin: elki-project/elki

@Override
protected V filterSingleObject(V obj) {
return VectorUtil.project(obj, selectedAttributes, factory);
}

代码示例来源:origin: de.lmu.ifi.dbs.elki/elki

return angleSparse((SparseNumberVector) v1, (SparseNumberVector) v2);

代码示例来源:origin: de.lmu.ifi.dbs.elki/elki-core-distance

@Override
public double similarity(final NumberVector o1, final NumberVector o2) {
return VectorUtil.dot(o1, o2);
}

代码示例来源:origin: elki-project/elki

@Override
public double minDist(SpatialComparable mbr1, SpatialComparable mbr2) {
double d = VectorUtil.minCosAngle(mbr1, mbr2);
return (d <= 1) ? 1 - d : 0;
}

代码示例来源:origin: de.lmu.ifi.dbs.elki/elki

@Override
protected V filterSingleObject(V obj) {
return VectorUtil.project(obj, selectedAttributes, factory);
}

代码示例来源:origin: de.lmu.ifi.dbs.elki/elki-core-distance

/**
* Computes the cosine distance for two given feature vectors.
*
* The cosine distance is computed from the cosine similarity by
* 1-(cosine similarity).
*
* @param v1 first feature vector
* @param v2 second feature vector
* @return the cosine distance for two given feature vectors v1 and v2
*/
@Override
public double distance(NumberVector v1, NumberVector v2) {
double d = VectorUtil.cosAngle(v1, v2);
return (d <= 1) ? 1 - d : 0;
}

代码示例来源:origin: de.lmu.ifi.dbs.elki/elki-core-api

/**
* Produce a new vector based on random numbers in [0:1].
*
* @param factory Vector factory
* @param dim desired dimensionality
* @param vector type
* @return new instance
*/
public static V randomVector(NumberVector.Factory factory, int dim) {
return randomVector(factory, dim, new Random());
}

代码示例来源:origin: elki-project/elki

/**
* Compute the absolute cosine of the angle between two vectors.
*
* To convert it to radians, use Math.acos(angle)!
*
* @param v1 first vector
* @param v2 second vector
* @return Angle
*/
public static double cosAngle(NumberVector v1, NumberVector v2) {
// Java Hotspot appears to optimize these better than if-then-else:
return v1 instanceof SparseNumberVector ? //
v2 instanceof SparseNumberVector ? //
angleSparse((SparseNumberVector) v1, (SparseNumberVector) v2) : //
angleSparseDense((SparseNumberVector) v1, v2) : //
v2 instanceof SparseNumberVector ? //
angleSparseDense((SparseNumberVector) v2, v1) : //
angleDense(v1, v2);
}

代码示例来源:origin: de.lmu.ifi.dbs.elki/elki-core-distance

/**
* Computes the cosine distance for two given feature vectors.
*
* The cosine distance is computed from the cosine similarity by
* 1-(cosine similarity).
*
* @param v1 first feature vector
* @param v2 second feature vector
* @return the cosine distance for two given feature vectors v1 and v2
*/
@Override
public double distance(NumberVector v1, NumberVector v2) {
double d = VectorUtil.dot(v1, v2);
return (d <= 1) ? 1 - d : 0;
}

代码示例来源:origin: de.lmu.ifi.dbs.elki/elki-core-distance

@Override
public double minDist(SpatialComparable mbr1, SpatialComparable mbr2) {
double d = VectorUtil.minCosAngle(mbr1, mbr2);
return (d <= 1) ? 1 - d : 0;
}

代码示例来源:origin: de.lmu.ifi.dbs.elki/elki-input

@Override
protected V filterSingleObject(V obj) {
return VectorUtil.project(obj, selectedAttributes, factory);
}

代码示例来源:origin: de.lmu.ifi.dbs.elki/elki

/**
* Computes the cosine distance for two given feature vectors.
*
* The cosine distance is computed from the cosine similarity by
* 1-(cosine similarity).
*
* @param v1 first feature vector
* @param v2 second feature vector
* @return the cosine distance for two given feature vectors v1 and v2
*/
@Override
public double distance(NumberVector v1, NumberVector v2) {
double d = 1 - VectorUtil.cosAngle(v1, v2);
if (d <0) {
d = 0;
}
return d;
}

推荐阅读
  • 标题: ... [详细]
  • 本文介绍了Java高并发程序设计中线程安全的概念与synchronized关键字的使用。通过一个计数器的例子,演示了多线程同时对变量进行累加操作时可能出现的问题。最终值会小于预期的原因是因为两个线程同时对变量进行写入时,其中一个线程的结果会覆盖另一个线程的结果。为了解决这个问题,可以使用synchronized关键字来保证线程安全。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
author-avatar
辽宁何氏医学院视光张丽杰
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有