Esempio n. 1
0
        public void Statistics_Standard_Deviation_Population_precomputed_mean()
        {
            double mean  = Dispersion.Mean(ta);
            double value = Dispersion.StandardDeviationPopulation(ta, mean);

            Assert.IsTrue((6.81 <= value && value <= 6.83));
        }
Esempio n. 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="classInputMatrix"></param>
        /// <returns>Returns a list of 2D array.
        /// Even though there is 1 rowm the 2D array is returned
        /// for use in any future matrix computations</returns>
        protected List <double[][]> GetClassMeanMatrix(List <double[][]>
                                                       classInputMatrix)
        {
            if (classInputMatrix == null)
            {
                throw new InvalidMatrixException();
            }
            List <double[][]> meanMatrix = new List <double[][]>();

            int noOfAttributes = classInputMatrix[0].Length;

            foreach (double[][] cim in classInputMatrix)
            {
                double[][] mean = new double[noOfAttributes][];

                Parallel.For(0, mean.Length, idx =>
                {
                    mean[idx]    = new double[1];
                    mean[idx][0] =
                        Dispersion.Mean(cim[idx]);
                });

                meanMatrix.Add(mean);
            }

            return(meanMatrix);
        }
Esempio n. 3
0
 //Return mean matrix of dataset
 //Private members are not being used due to unit test purposes
 /// <summary>
 /// Assume target attributes is last column in Training Data
 /// </summary>
 /// <param name="trainingData"></param>
 /// <param name="indexTargetAttribute"></param>
 /// <param name="noOfAttributes"></param>
 /// <returns></returns>
 protected double[] GetDataSetMeanMatrix()
 {
     double[] mean = new double[_noOfAttributes];
     //int idx = 0;
     //Assumption: Target Attributer is last column
     Parallel.For(0, _trainingData.Length - 1, colIdx => //For each column
     {
         //if (colIdx != indexTargetAttribute)
         //{
         mean[colIdx] = Dispersion.Mean(_trainingData[colIdx]);
         //}
     });
     return(mean);
 }
Esempio n. 4
0
        //Training Data Should have only Two Attributes
        public override Common.MLCore.ModelBase BuildModel(double[][] trainingData,
                                                           string[] attributeHeaders,
                                                           int indexTargetAttribute)
        {
            VerifyData(trainingData, attributeHeaders, indexTargetAttribute);

            double[]        x, y;
            ModelLinearBase model = new ModelLinearBase(_missingValue,
                                                        _indexTargetAttribute, _trainingData.Length - 1);

            //Additional Checks
            if (trainingData.Length != 2)
            {
                throw new InvalidTrainingDataException();
            }
            if (indexTargetAttribute == 0)
            {
                x = trainingData[1];
                y = trainingData[0];
            }
            else
            {
                x = trainingData[0];
                y = trainingData[1];
            }

            //x,y are arrays
            model.B1 = Dispersion.CorrelationPearson(x, y)
                       * (Dispersion.StandardDeviationSample(y) /
                          Dispersion.StandardDeviationSample(x));

            model.B0 = Dispersion.Mean(y) -
                       model.B1 * Dispersion.Mean(x);

            return(model);
        }
Esempio n. 5
0
        public void Statistics_Mean()
        {
            double value = Dispersion.Mean(ta);

            Assert.IsTrue((9.887 <= value && value <= 9.889));
        }