예제 #1
0
        public static int ChooseCentroid(ref CentroidConfig cc, List<double> point, int fuzzy = 1)
        {
            int ans = -1;
            var pile = cc.C.AsParallel().OrderBy(c => Utilities.VecDiff(c.Vars, point)).Take(fuzzy).ToList();

            var r = new Random();
            ans = pile[r.Next(0, fuzzy)].Num;

            return ans;
        }
예제 #2
0
 public static List<double> CentroidDistances(ref CentroidConfig cc, List<double> point)
 {
     var ans = new List<double>();
     cc.C.ForEach(v => ans.Add(Utilities.VecDiff(v.Vars, point)));
     return ans;
 }
예제 #3
0
        public static CentroidConfig LoadCentroids(string filename)
        {
            var CC = new CentroidConfig(0, 0);

            CC = (CentroidConfig)Utilities.LoadFromXML(@"centroids.xml", typeof(CentroidConfig));

            return CC;
        }