Examples of ArrayModifiableDBIDs


Examples of de.lmu.ifi.dbs.elki.database.ids.ArrayModifiableDBIDs

   * @param k the number of samples to be returned
   * @param random random number generator
   * @return a set of k elements from the specified sample set
   */
  private ModifiableDBIDs initialSet(DBIDs sampleSet, int k, Random random) {
    ArrayModifiableDBIDs s = DBIDUtil.newArray(sampleSet);
    ModifiableDBIDs initialSet = DBIDUtil.newHashSet();
    while(initialSet.size() < k) {
      DBID next = s.remove(random.nextInt(s.size()));
      initialSet.add(next);
    }
    return initialSet;
  }
View Full Code Here

Examples of de.lmu.ifi.dbs.elki.database.ids.ArrayModifiableDBIDs

   * @param m_bad the bad medoids
   * @param random random number generator
   * @return m_current, the set of medoids in current iteration
   */
  private ModifiableDBIDs computeM_current(DBIDs m, DBIDs m_best, DBIDs m_bad, Random random) {
    ArrayModifiableDBIDs m_list = DBIDUtil.newArray(m);
    for(DBID m_i : m_best) {
      m_list.remove(m_i);
    }

    ModifiableDBIDs m_current = DBIDUtil.newHashSet();
    for(DBID m_i : m_best) {
      if(m_bad.contains(m_i)) {
        int currentSize = m_current.size();
        while(m_current.size() == currentSize) {
          DBID next = m_list.remove(random.nextInt(m_list.size()));
          m_current.add(next);
        }
      }
      else {
        m_current.add(m_i);
View Full Code Here

Examples of de.lmu.ifi.dbs.elki.database.ids.ArrayModifiableDBIDs

      // Build DBID array
      if(idrepnr == -1) {
        this.ids = DBIDUtil.generateStaticDBIDRange(objpackages.dataLength());
      }
      else {
        final ArrayModifiableDBIDs newids = DBIDUtil.newArray(objpackages.dataLength());
        for(int j = 0; j < objpackages.dataLength(); j++) {
          DBID newid = (DBID) objpackages.data(j, idrepnr);
          newids.add(newid);
        }
        this.ids = newids;
      }
      // Replace id representation.
      // TODO: this is an ugly hack
View Full Code Here

Examples of de.lmu.ifi.dbs.elki.database.ids.ArrayModifiableDBIDs

  public DBIDs insert(ObjectBundle objpackages) {
    if(objpackages.dataLength() == 0) {
      return DBIDUtil.EMPTYDBIDS;
    }
    // insert into db
    ArrayModifiableDBIDs newids = DBIDUtil.newArray(objpackages.dataLength());
    Relation<?>[] targets = alignColumns(objpackages);

    int idrepnr = -1;
    for(int i = 0; i < targets.length; i++) {
      if(targets[i] == idrep) {
        idrepnr = i;
        break;
      }
    }

    for(int j = 0; j < objpackages.dataLength(); j++) {
      // insert object
      final DBID newid;
      if(idrepnr < 0) {
        newid = DBIDUtil.generateSingleDBID();
      }
      else {
        newid = (DBID) objpackages.data(j, idrepnr);
      }
      if(ids.contains(newid)) {
        throw new AbortException("Duplicate DBID conflict.");
      }
      ids.add(newid);
      for(int i = 0; i < targets.length; i++) {
        // DBIDs were handled above.
        if(i == idrepnr) {
          continue;
        }
        @SuppressWarnings("unchecked")
        final Relation<Object> relation = (Relation<Object>) targets[i];
        relation.set(newid, objpackages.data(j, i));
      }
      newids.add(newid);
    }

    // Notify indexes of insertions
    for(Index index : indexes) {
      index.insertAll(newids);
View Full Code Here

Examples of de.lmu.ifi.dbs.elki.database.ids.ArrayModifiableDBIDs

    FiniteProgress progress = logger.isVerbose() ? new FiniteProgress("Extracting clusters", ids.size(), logger) : null;

    // stopdist
    D stopdist = null;
    // sort by lambda
    ArrayModifiableDBIDs order = DBIDUtil.newArray(ids);
    order.sort(new CompareByLambda<D>(lambda));
    int index = ids.size() - minclusters - 1;
    while(index >= 0) {
      if(lambda.get(order.get(index)).equals(lambda.get(order.get(index + 1)))) {
        index--;
      }
      else {
        stopdist = lambda.get(order.get(index));
        break;
      }
    }

    // extract the child clusters
View Full Code Here

Examples of de.lmu.ifi.dbs.elki.database.ids.ArrayModifiableDBIDs

   * @return Hierarchical clustering
   */
  @SuppressWarnings("unused")
  private Clustering<Model> extractClusters_erich(DBIDs ids, final DataStore<DBID> pi, final DataStore<D> lambda, int minclusters) {
    // extract a hierarchical clustering
    ArrayModifiableDBIDs order = DBIDUtil.newArray(ids);
    // sort by lambda
    order.sort(new CompareByLambda<D>(lambda));
    D curdist = null;

    D stopdist = null;
    if(minclusters < ids.size()) {
      stopdist = lambda.get(order.get(ids.size() - minclusters));
    }

    ModifiableHierarchy<Cluster<Model>> hier = new HierarchyHashmapList<Cluster<Model>>();
    Map<DBID, Cluster<Model>> clusters = new HashMap<DBID, Cluster<Model>>();
    Map<DBID, ModifiableDBIDs> cids = new HashMap<DBID, ModifiableDBIDs>();
View Full Code Here

Examples of de.lmu.ifi.dbs.elki.database.ids.ArrayModifiableDBIDs

   * @param queryObject the query object
   * @return the shared nearest neighbors of the specified query object in the
   *         given database
   */
  protected ArrayModifiableDBIDs findSNNNeighbors(SimilarityQuery<O, IntegerDistance> snnInstance, DBID queryObject) {
    ArrayModifiableDBIDs neighbors = DBIDUtil.newArray();
    for(DBID id : snnInstance.getRelation().iterDBIDs()) {
      if(snnInstance.similarity(queryObject, id).compareTo(epsilon) >= 0) {
        neighbors.add(id);
      }
    }
    return neighbors;
  }
View Full Code Here

Examples of de.lmu.ifi.dbs.elki.database.ids.ArrayModifiableDBIDs

   * @param startObjectID potential seed of a new potential cluster
   * @param objprog the progress object to report about the progress of
   *        clustering
   */
  protected void expandCluster(SimilarityQuery<O, IntegerDistance> snnInstance, DBID startObjectID, FiniteProgress objprog, IndefiniteProgress clusprog) {
    ArrayModifiableDBIDs seeds = findSNNNeighbors(snnInstance, startObjectID);

    // startObject is no core-object
    if(seeds.size() < minpts) {
      noise.add(startObjectID);
      processedIDs.add(startObjectID);
      if(objprog != null && clusprog != null) {
        objprog.setProcessed(processedIDs.size(), logger);
        clusprog.setProcessed(resultList.size(), logger);
      }
      return;
    }

    // try to expand the cluster
    ModifiableDBIDs currentCluster = DBIDUtil.newArray();
    for(DBID seed : seeds) {
      if(!processedIDs.contains(seed)) {
        currentCluster.add(seed);
        processedIDs.add(seed);
      }
      else if(noise.contains(seed)) {
        currentCluster.add(seed);
        noise.remove(seed);
      }
    }

    while(seeds.size() > 0) {
      DBID o = seeds.remove(seeds.size() - 1);
      ArrayModifiableDBIDs neighborhood = findSNNNeighbors(snnInstance, o);

      if(neighborhood.size() >= minpts) {
        for(DBID p : neighborhood) {
          boolean inNoise = noise.contains(p);
          boolean unclassified = !processedIDs.contains(p);
          if(inNoise || unclassified) {
            if(unclassified) {
View Full Code Here

Examples of de.lmu.ifi.dbs.elki.database.ids.ArrayModifiableDBIDs

          nearestNeighbors.add(new DoubleObjPair<DBID>(sim, id));
        }
      }
    }
    // Collect DBIDs
    ArrayModifiableDBIDs dbids = DBIDUtil.newArray(nearestNeighbors.size());
    while(nearestNeighbors.size() > 0) {
      final DoubleObjPair<DBID> next = nearestNeighbors.poll();
      dbids.add(next.second);
    }
    return dbids;
  }
View Full Code Here

Examples of de.lmu.ifi.dbs.elki.database.ids.ArrayModifiableDBIDs

      for(int r = 0; r < phi; r++) {
        int end = (int) (part * r);
        if(r == phi - 1) {
          end = size;
        }
        ArrayModifiableDBIDs currange = DBIDUtil.newArray(phi + 1);
        for(int i = start; i < end; i++) {
          currange.add(axis.get(i).second);
        }
        start = end;
        dimranges.add(currange);
      }
      ranges.add(dimranges);
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.