void AnalyzeInterClusterDistance()
        {
            List <Song> centroids     = Model.Centroids;
            int         clustersCount = centroids.Count;

            if (clustersCount == 0)
            {
                throw new ArgumentException("No clusters.");
            }

            const string id = "centroids_center";
            Song         centroidsCenter = centroids[0].CloneCleared(id);

            for (int i = 1; i < clustersCount; i++)
            {
                Song centroid = centroids[i];
                centroidsCenter.Add(centroid);
            }

            centroidsCenter.Divide(clustersCount);

            IDistanceFunc distanceFunc = Model.DistanceFunc;

            InterClusterMeanDistance = 0.0;

            foreach (Song centroid in centroids)
            {
                InterClusterMeanDistance += distanceFunc.GetDistance(centroid, centroidsCenter);
            }

            InterClusterMeanDistance /= clustersCount;
        }
    void Awake()
    {
        GameObject distanceFuncObj = GameObject.Find(_DistanceFuncObjName);

        if (distanceFuncObj != null)
        {
            IDistanceFunc disfun = distanceFuncObj.GetComponent <IDistanceFunc>();
            _fractalDistFunc = disfun.DistanceFunction;
            _radius          = GetComponent <SphereCollider>().radius;
        }
    }
Exemple #3
0
        double GetCentroidMinDistance(Song song, List <Song> centroids, IDistanceFunc distanceFunc)
        {
            double minDistance = distanceFunc.GetDistance(song, centroids[0]);

            for (int centroidIndex = 0; centroidIndex < centroids.Count; centroidIndex++)
            {
                minDistance = Math.Min(minDistance, distanceFunc.GetDistance(song, centroids[centroidIndex]));
            }

            return(minDistance);
        }
    void Awake()
    {
        if (ON_BURIED_FRACTAL == null)
        {
            ON_BURIED_FRACTAL = new CustomUnityEvent();
        }
        IDistanceFunc disfun = _DistanceFuncObj.GetComponent <IDistanceFunc>();

        _fractalDistFunc = disfun.DistanceFunction;
        _radius          = GetComponent <SphereCollider>().radius;
    }
Exemple #5
0
 public PlusPlusCentroidsChooser(IDistanceFunc distanceFunc)
 {
     DistanceFunc = distanceFunc;
 }
 public SongSuccessPredictor(BaseKMeans clusterizer, IDistanceFunc distanceFunc)
 {
     Clusterizer   = clusterizer;
     DistanceFunc  = distanceFunc;
     Probabilities = new List <double>(Clusterizer.Clusters.Capacity);
 }