// Start is called before the first frame update void Start() { trainingPoints = GetDatapointsFromCSV(trainingData, true); verificationPointsTest = GetDatapointsFromCSV(verificationData, false); verificationPointsTestWithChurn = GetDatapointsFromCSV(verificationData, true); //Cluster everything KClusterer kClusterer = new KClusterer(); clustersByCenters = kClusterer.Cluster(trainingPoints); }
//Calculates out the distortion public void CalculateDistortion() { float distortion = 0; foreach (KeyValuePair <Datapoint, List <Datapoint> > kvp in clustersByCenters) { foreach (Datapoint d in kvp.Value) { distortion += KClusterer.Distance(kvp.Key, d); } } distortion /= ((float)clustersByCenters.Keys.Count); Debug.Log("Total Distortion: " + distortion); }