Пример #1
0
        public Vector <double> CalculateMean(UnitCollection units)
        {
            Vector <double> mean = Vector <double> .Build.Dense(units.NumberOfValues());

            foreach (Unit unit in units.List)
            {
                Vector <double> v = unit.ToVector();

                mean += v;
            }

            mean *= 1.0 / units.List.Count();

            return(mean);
        }
Пример #2
0
        public Vector <double> CalculateStandardDeviation(UnitCollection units, Vector <double> mean)
        {
            Vector <double> sd = Vector <double> .Build.Dense(units.NumberOfValues());

            foreach (Unit unit in units.List)
            {
                Vector <double> v = unit.ToVector();

                sd += (v - mean).PointwisePower(2);
            }

            sd *= 1.0 / units.List.Count();

            return(sd.PointwisePower(0.5));
        }
Пример #3
0
        Matrix <double> CalculateCovariance(UnitCollection units)
        {
            Matrix <double> covariance = Matrix <double> .Build.Dense(units.NumberOfValues(), units.NumberOfValues());

            foreach (Unit unit in units.List)
            {
                Vector <double> v = unit.ToVector() - Mean;

                covariance += v.ToColumnMatrix() * v.ToRowMatrix();
            }

            covariance *= 1.0 / units.List.Count();

            return(covariance);
        }