public void Process() { // read the iris data from the resources Assembly assembly = Assembly.GetExecutingAssembly(); var res = assembly.GetManifestResourceStream("AIFH_Vol1.Resources.abalone.csv"); // did we fail to read the resouce if (res == null) { Console.WriteLine("Can't read iris data from embedded resources."); return; } // load the data var istream = new StreamReader(res); DataSet ds = DataSet.Load(istream); istream.Close(); // The following ranges are setup for the Abalone data set. If you wish to normalize other files you will // need to modify the below function calls other files. ds.EncodeOneOfN(0, 0, 1); istream.Close(); var trainingData = ds.ExtractSupervised(0, 10, 10, 1); var reg = new MultipleLinearRegression(10); var train = new TrainLeastSquares(reg, trainingData); train.Iteration(); Query(reg, trainingData); Console.WriteLine("Error: " + train.Error); }
public void TestTrain() { double[][] x = { new [] { 5.0, 10.0, 2.0 }, new [] { 10.0, 20.0, 4.0 }, new [] { 15.0, 30.0, 6.0 }, new [] { 20.0, 40.0, 8.0 }, new [] { 25.0, 50.0, 10.0 } }; double[][] y = { new [] { 70.0 }, new [] { 132.0 }, new [] { 194.0 }, new [] { 256.0 }, new [] { 318.0 } }; var trainingData = BasicData.ConvertArrays(x, y); var regression = new MultipleLinearRegression(3); var train = new TrainLeastSquares(regression, trainingData); train.Iteration(); Assert.AreEqual(8, regression.LongTermMemory[0], 0.0001); Assert.AreEqual(-54.8, regression.LongTermMemory[1], 0.0001); Assert.AreEqual(8, regression.LongTermMemory[2], 0.0001); Assert.AreEqual(1, train.R2, 0.0001); Assert.AreEqual(0, train.Error, AIFH.DefaultPrecision); for (int i = 0; i < x.Length; i++) { double[] output = regression.ComputeRegression(x[i]); Assert.AreEqual(y[i][0], output[0], 0.0001); } }