~ubuntu-branches/ubuntu/vivid/elki/vivid

« back to all changes in this revision

Viewing changes to src/de/lmu/ifi/dbs/elki/algorithm/clustering/kmeans/RandomlyChosenInitialMeans.java

  • Committer: Package Import Robot
  • Author(s): Erich Schubert
  • Date: 2012-12-14 20:45:15 UTC
  • mfrom: (1.1.6)
  • Revision ID: package-import@ubuntu.com-20121214204515-4m0d0er9ivtu5w9d
Tags: 0.5.5-1
New upstream release: 0.5.5 interim release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
31
31
import de.lmu.ifi.dbs.elki.database.query.distance.DistanceQuery;
32
32
import de.lmu.ifi.dbs.elki.database.relation.Relation;
33
33
import de.lmu.ifi.dbs.elki.distance.distancefunction.PrimitiveDistanceFunction;
 
34
import de.lmu.ifi.dbs.elki.utilities.RandomFactory;
34
35
 
35
36
/**
36
37
 * Initialize K-means by randomly choosing k exsiting elements as cluster
44
45
  /**
45
46
   * Constructor.
46
47
   * 
47
 
   * @param seed Random seed.
 
48
   * @param rnd Random generator.
48
49
   */
49
 
  public RandomlyChosenInitialMeans(Long seed) {
50
 
    super(seed);
 
50
  public RandomlyChosenInitialMeans(RandomFactory rnd) {
 
51
    super(rnd);
51
52
  }
52
53
 
53
54
  @Override
54
55
  public List<V> chooseInitialMeans(Relation<V> relation, int k, PrimitiveDistanceFunction<? super V, ?> distanceFunction) {
55
 
    DBIDs ids = DBIDUtil.randomSample(relation.getDBIDs(), k, seed);
 
56
    DBIDs ids = DBIDUtil.randomSample(relation.getDBIDs(), k, rnd);
56
57
    List<V> means = new ArrayList<V>(k);
57
58
    for(DBIDIter iter = ids.iter(); iter.valid(); iter.advance()) {
58
59
      means.add(relation.get(iter));
62
63
 
63
64
  @Override
64
65
  public DBIDs chooseInitialMedoids(int k, DistanceQuery<? super V, ?> distanceFunction) {
65
 
    return DBIDUtil.randomSample(distanceFunction.getRelation().getDBIDs(), k, seed);
 
66
    return DBIDUtil.randomSample(distanceFunction.getRelation().getDBIDs(), k, rnd);
66
67
  }
67
68
 
68
69
  /**
76
77
 
77
78
    @Override
78
79
    protected RandomlyChosenInitialMeans<V> makeInstance() {
79
 
      return new RandomlyChosenInitialMeans<V>(seed);
 
80
      return new RandomlyChosenInitialMeans<V>(rnd);
80
81
    }
81
82
  }
82
83
}
 
 
b'\\ No newline at end of file'