public void OneVariableLogisticRegressionRegularizedTest(double lambda) { var revenuePerPopulationFilePath = FileManagerTest.GetTestDataByName("ResultExamsAdmission.txt"); var reader = new CsvReader <ResultExamsAdmission>(); var revenuePerPopulationRows = reader.GetData(revenuePerPopulationFilePath, ","); var dataMatrix = new Matrix(revenuePerPopulationRows.Select(x => new ResultExamsAdmissionRow(x))); var dataY = dataMatrix.Columns[0].ToMatrix(); var dataX = dataMatrix.ToMatrix(new int[2] { 1, 2 }); var logisticRegression = new LogisticRegression(); var logisticRegressionParameters = new LogisticRegressionParameters { IterationCount = 100, ThetaInit = new Matrix(new double[3, 1] { { 0 }, { 0 }, { 0 } }), X = dataX, Y = dataY, Lambda = lambda }; var output = logisticRegression.Compute(logisticRegressionParameters); var expectedOutput = new Matrix(new double[3, 1] { { -25.052148050018360 }, { 0.205354461994741 }, { 0.200583555605940 } }); AssertMatrixAreEqual(expectedOutput, output.Theta); }
public void OneVariableLogisticRegressionTest() { var revenuePerPopulationFilePath = FileManagerTest.GetTestDataByName("ResultExamsAdmission.txt"); var reader = new CsvReader <ResultExamsAdmission>(); var revenuePerPopulationRows = reader.GetData(revenuePerPopulationFilePath, ","); var dataMatrix = new Matrix(revenuePerPopulationRows.Select(x => new ResultExamsAdmissionRow(x))); var dataY = dataMatrix.Columns[0].ToMatrix(); var dataX = dataMatrix.ToMatrix(new int[2] { 1, 2 }); var logisticRegression = new LogisticRegression(); var logisticRegressionParameters = new LogisticRegressionParameters { IterationCount = 100, ThetaInit = new Matrix(new double[3, 1] { { 0 }, { 0 }, { 0 } }), X = dataX, Y = dataY }; var output = logisticRegression.Compute(logisticRegressionParameters); var expectedOutput = new Matrix(new double[3, 1] { { -25.161333566639530 }, { 0.206231713293983 }, { 0.201471600441963 } }); AssertMatrixAreEqual(expectedOutput, output.Theta); }