Example #1
0
// http://www.cs.princeton.edu/courses/archive/fall08/cos436/Duda/C/sk_means.htm
void Clusterer::ProcessSample(const Sample &sample) {
  // Figure out closest cluster
  oid_t closest_cluster = GetClosestCluster(sample);

  Sample distance = sample.GetDifference(means_[closest_cluster]);
  Sample mean_drift = distance * new_sample_weight_;

  // Update the cluster's mean
  means_[closest_cluster] = means_[closest_cluster] + mean_drift;
}