diff --git a/testML/Program.cs b/testML/Program.cs index 4207f9e..51e4841 100644 --- a/testML/Program.cs +++ b/testML/Program.cs @@ -23,7 +23,7 @@ namespace testML var tmpData = new List(); - for (var c = 0; c < 15000; c++) + for (var c = 0; c < 100000; c++) { var d = CreateRandomData(); tmpData.Add(d); @@ -49,9 +49,9 @@ namespace testML //var trainer = mlContext.Regression.Trainers.OnlineGradientDescent(numberOfIterations: 100, learningRate: 0.01f ); var pipeline = mlContext.Transforms.CopyColumns(outputColumnName: "Label", inputColumnName: "IntegerNumber") - .Append(mlContext.Transforms.Text.NormalizeText("StringTest")) - .Append(mlContext.Transforms.Text.FeaturizeText("StringTest")) - .Append(mlContext.Transforms.Concatenate("Features", "Enum1", "Enum2", "Enum3", "Enum4", "StringTest")) + //.Append(mlContext.Transforms.Text.NormalizeText("StringTest")) + //.Append(mlContext.Transforms.Text.FeaturizeText("StringTest")) + .Append(mlContext.Transforms.Concatenate("Features", "Enum1", "Enum2", "Enum3", "Enum4")) .Append(mlContext.Transforms.NormalizeMinMax("Features")) .Append(trainer); @@ -78,15 +78,18 @@ namespace testML var predictionFunction = mlContext.Model.CreatePredictionEngine(model); - for (var c = 0; c < 25; c++) + for (var c = 0; c < 1000; c++) { var test = CreateRandomData(); var expected = test.IntegerNumber; test.IntegerNumber = 0; var p = predictionFunction.Predict(test); - - Console.WriteLine("Found: {0:#,##0.00}\tExpected: {1:#,##0.00}\t\tDiff: {2:#,##0.00}", p.IntegerNumber, expected , expected- p.IntegerNumber); + + //p.IntegerNumber = (float)Math.Round(p.IntegerNumber); + + + Console.WriteLine("{4} {3}, Found: {0:#,##0.00}\tExpected: {1:#,##0.00}\t\tDiff: {2:#,##0.00}", p.IntegerNumber, expected , expected- p.IntegerNumber, test.Enum4, test.Enum2); } #endregion @@ -106,26 +109,17 @@ namespace testML Enum1 = rnd.Next(1, 4), Enum2 = rnd.Next(1, 11), Enum3 = rnd.Next(1, 6), - Enum4 = rnd.Next(1, 6), + Enum4 = rnd.Next(1, 4), StringTest = tags[rnd.Next(0, tags.Length)] }; - // Ponemos algunos datos que tengan alguna relación (la red neuronal debería calibrarse para comprender esta formula) - d.IntegerNumber = (((d.Enum1 + d.Enum2) - (d.Enum3 + d.Enum4)) * 5.25f) + d.StringTest.Length; - - d.DecimalNumber = (d.Enum2 / d.Enum1) * (2.0f + (1.0f / d.StringTest.Length)); - - if (d.StringTest == "Azul") + switch (d.Enum4) { - d.IntegerNumber += 10; - d.OrigenResultNumber = 1; + case 1: d.IntegerNumber = 1; break; + case 2: d.IntegerNumber = rnd.NextDouble() > 0.5 ? 1 : 0; break; + case 3: d.IntegerNumber = 0; break; } - if (d.StringTest == "Rojo") - { - d.IntegerNumber += 5f; - d.OrigenResultNumber = 1; - } return d; diff --git a/testML/testML.csproj b/testML/testML.csproj index b5a7157..874e1a7 100644 --- a/testML/testML.csproj +++ b/testML/testML.csproj @@ -18,7 +18,7 @@ - x64 + x86 true full false