Package de.lmu.ifi.dbs.elki.distance.distancevalue

Examples of de.lmu.ifi.dbs.elki.distance.distancevalue.DoubleDistance


    // covariance matrix of cluster
    // Matrix covariance = Util.covarianceMatrix(database, cluster.objectIDs);
    List<DistanceResultPair<DoubleDistance>> results = new ArrayList<DistanceResultPair<DoubleDistance>>(cluster.objectIDs.size());
    for(Iterator<DBID> it = cluster.objectIDs.iterator(); it.hasNext();) {
      DBID id = it.next();
      DoubleDistance distance = distFunc.distance(cluster.centroid, database.get(id));
      DistanceResultPair<DoubleDistance> qr = new GenericDistanceResultPair<DoubleDistance>(distance, id);
      results.add(qr);
    }
    Collections.sort(results);
    PCAResult pcares = pca.processQueryResult(results, database);
View Full Code Here


  private ProjectedEnergy projectedEnergy(Relation<V> database, DistanceQuery<V, DoubleDistance> distFunc, ORCLUSCluster c_i, ORCLUSCluster c_j, int i, int j, int dim) {
    // union of cluster c_i and c_j
    ORCLUSCluster c_ij = union(database, distFunc, c_i, c_j, dim);
    V factory = DatabaseUtil.assumeVectorField(database).getFactory();

    DoubleDistance sum = getDistanceFunction().getDistanceFactory().nullDistance();
    V c_proj = projection(c_ij, c_ij.centroid, factory);
    for(DBID id : c_ij.objectIDs) {
      V o = database.get(id);
      V o_proj = projection(c_ij, o, factory);
      DoubleDistance dist = distFunc.distance(o_proj, c_proj);
      sum = sum.plus(dist.times(dist));
    }
    DoubleDistance projectedEnergy = sum.times(1.0 / c_ij.objectIDs.size());

    return new ProjectedEnergy(i, j, c_ij, projectedEnergy);
  }
View Full Code Here

          // We need to do some ugly casts to be able to run the optimized version, unfortunately.
          @SuppressWarnings("unchecked")
          final ClusterOrderResult<DoubleDistance> doubleClusterOrder = ClusterOrderResult.class.cast(clusterOrder);
          @SuppressWarnings("unchecked")
          final RangeQuery<O, DoubleDistance> doubleRangeQuery = RangeQuery.class.cast(rangeQuery);
          final DoubleDistance depsilon = DoubleDistance.class.cast(epsilon);
          expandClusterOrderDouble(doubleClusterOrder, database, doubleRangeQuery, id, depsilon, progress);
        }
      }
    }
    else {
View Full Code Here

    super();
  }

  @Override
  public DoubleDistance minDist(SpatialComparable mbr1, SpatialComparable mbr2) {
    return new DoubleDistance(doubleMinDist(mbr1, mbr2));
  }
View Full Code Here

    return new DoubleDistance(doubleMinDist(mbr1, mbr2));
  }

  @Override
  public DoubleDistance centerDistance(SpatialComparable mbr1, SpatialComparable mbr2) {
    return new DoubleDistance(doubleCenterDistance(mbr1, mbr2));
  }
View Full Code Here

   * @return the k nearest neighbors in terms of the shared nearest neighbor
   *         distance without the query object
   */
  private KNNList<DoubleDistance> getKNN(Relation<V> database, SimilarityQuery<V, IntegerDistance> snnInstance, DBID queryObject) {
    // similarityFunction.getPreprocessor().getParameters();
    KNNHeap<DoubleDistance> kNearestNeighbors = new KNNHeap<DoubleDistance>(knn, new DoubleDistance(Double.POSITIVE_INFINITY));
    for(Iterator<DBID> iter = database.iterDBIDs(); iter.hasNext();) {
      DBID id = iter.next();
      if(!id.equals(queryObject)) {
        double distance = 1.0 / snnInstance.similarity(queryObject, id).doubleValue();
        kNearestNeighbors.add(new DoubleDistanceResultPair(distance, id));
View Full Code Here

      FiniteProgress progress = logger.isVerbose() ? new FiniteProgress("Preprocessing preference vector", relation.size(), logger) : null;

      // only one epsilon value specified
      int dim = DatabaseUtil.dimensionality(relation);
      if(epsilon.length == 1 && dim != 1) {
        DoubleDistance eps = epsilon[0];
        epsilon = new DoubleDistance[dim];
        Arrays.fill(epsilon, eps);
      }

      // epsilons as string
View Full Code Here

        if(config.grab(epsilonP)) {
          List<Double> eps_list = epsilonP.getValue();
          epsilon = new DoubleDistance[eps_list.size()];

          for(int d = 0; d < eps_list.size(); d++) {
            epsilon[d] = new DoubleDistance(eps_list.get(d));
            if(epsilon[d].doubleValue() < 0) {
              config.reportError(new WrongParameterValueException(epsilonP, eps_list.toString()));
            }
          }
        }
View Full Code Here

      Matrix m = null; // index.getLocalProjection(v.getID()).similarityMatrix();
      Vector rv1Mrv2 = v.getColumnVector().minusEquals(new Vector(r));
      double dist = rv1Mrv2.transposeTimesTimes(m, rv1Mrv2);

      return new DoubleDistance(Math.sqrt(dist));
    }
View Full Code Here

          m2 = 0;
        }
        double manhattanI = m1 - m2;
        sqrDist += manhattanI * manhattanI;
      }
      return new DoubleDistance(Math.sqrt(sqrDist));
    }
View Full Code Here

TOP

Related Classes of de.lmu.ifi.dbs.elki.distance.distancevalue.DoubleDistance

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.