Java에서 Apache Commons RealVector 및 ArrayRealVector 클래스를 사용하고 있습니다. 나는 내가 제곱 유클리드 거리를 얻기 위해 찾고 있어요, 그러나Apache Commons의 RealVectors와의 제곱 유클리드 거리
double dist = v1.getDistance(v2);
로 두 개의 벡터 v1 및 V2 사이의 유클리드 거리를 계산할 수 있습니다. 나는 아파치 커먼즈 Vector3D로 이것을 수행 할 수있는 방법이 있다는 것을 알고있다. 단지 distanceSq 함수를 사용하라. 고차원 벡터를 사용하여 가장 가까운 이웃 검색을 수행하고 있으므로 제곱근을 취할 필요가 없습니다. 단지 계산상의 낭비 일뿐입니다.
나는 이것이 내가 피하려는 중간 ArrayRealVector를 반환 포함 물론
ArrayRealVector diff = v1.subtract(v2);
double dist = diff.dotProduct(diff);
할 수 있습니다. 제곱 된 유클리드 거리를 얻기위한 코드를 쉽게 작성할 수 있지만 Apache Commons 수학의 해답을 원합니다. 모든 내장 된 솔루션은 훌륭 할 것입니다. 심지어 다른 Apache Math 클래스의 솔루션조차도 괜찮을 것입니다.
에 저를지도 한 :
이미 Commons Math를 사용하고 있다면 Commons Math가하는 일을 복사하는 것이 더 관련이 있습니다. –
그래, 동의 했어. 그래서 그가 마후트를 끌어 들이고 싶어할지 모르겠다. 제안은 코드를 작성하거나 Mahout의 코드를 복사하는 것입니다. 그는 다른 누군가의 것보다 빨리 그 코드를 쓰지 않을까 우려하고 있습니다. –
p.s. 내가 수색을 한 후에 나는 Mahout에 대해 궁금해서 책을 사기 시작했다. :-) –