def build(data_set, number_of_clusters)
@data_set = data_set
@number_of_clusters = number_of_clusters
@clusters = [@data_set]
@centroids = [@data_set.get_mean_or_mode]
while @clusters.length < @number_of_clusters
biggest_cluster_index = find_biggest_cluster_index(@clusters)
clusterer = KMeans.new.
set_parameters(get_parameters).
build(@clusters[biggest_cluster_index], 2)
@clusters.delete_at(biggest_cluster_index)
@centroids.delete_at(biggest_cluster_index)
@clusters.concat(clusterer.clusters)
@centroids.concat(clusterer.centroids)
end
super if @refine
return self
end