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)); }
/// <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); }
//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); }
//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); }
public void Statistics_Mean() { double value = Dispersion.Mean(ta); Assert.IsTrue((9.887 <= value && value <= 9.889)); }