1
0

Hecha una prueba de selección

This commit is contained in:
2022-11-23 09:40:47 +01:00
parent 37e963a55f
commit 52526e48e8
2 changed files with 16 additions and 22 deletions

View File

@@ -23,7 +23,7 @@ namespace testML
var tmpData = new List<Data>(); var tmpData = new List<Data>();
for (var c = 0; c < 15000; c++) for (var c = 0; c < 100000; c++)
{ {
var d = CreateRandomData(); var d = CreateRandomData();
tmpData.Add(d); tmpData.Add(d);
@@ -49,9 +49,9 @@ namespace testML
//var trainer = mlContext.Regression.Trainers.OnlineGradientDescent(numberOfIterations: 100, learningRate: 0.01f ); //var trainer = mlContext.Regression.Trainers.OnlineGradientDescent(numberOfIterations: 100, learningRate: 0.01f );
var pipeline = mlContext.Transforms.CopyColumns(outputColumnName: "Label", inputColumnName: "IntegerNumber") var pipeline = mlContext.Transforms.CopyColumns(outputColumnName: "Label", inputColumnName: "IntegerNumber")
.Append(mlContext.Transforms.Text.NormalizeText("StringTest")) //.Append(mlContext.Transforms.Text.NormalizeText("StringTest"))
.Append(mlContext.Transforms.Text.FeaturizeText("StringTest")) //.Append(mlContext.Transforms.Text.FeaturizeText("StringTest"))
.Append(mlContext.Transforms.Concatenate("Features", "Enum1", "Enum2", "Enum3", "Enum4", "StringTest")) .Append(mlContext.Transforms.Concatenate("Features", "Enum1", "Enum2", "Enum3", "Enum4"))
.Append(mlContext.Transforms.NormalizeMinMax("Features")) .Append(mlContext.Transforms.NormalizeMinMax("Features"))
.Append(trainer); .Append(trainer);
@@ -78,7 +78,7 @@ namespace testML
var predictionFunction = mlContext.Model.CreatePredictionEngine<Data, DataPrediction>(model); var predictionFunction = mlContext.Model.CreatePredictionEngine<Data, DataPrediction>(model);
for (var c = 0; c < 25; c++) for (var c = 0; c < 1000; c++)
{ {
var test = CreateRandomData(); var test = CreateRandomData();
var expected = test.IntegerNumber; var expected = test.IntegerNumber;
@@ -86,7 +86,10 @@ namespace testML
var p = predictionFunction.Predict(test); 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 #endregion
@@ -106,26 +109,17 @@ namespace testML
Enum1 = rnd.Next(1, 4), Enum1 = rnd.Next(1, 4),
Enum2 = rnd.Next(1, 11), Enum2 = rnd.Next(1, 11),
Enum3 = rnd.Next(1, 6), Enum3 = rnd.Next(1, 6),
Enum4 = rnd.Next(1, 6), Enum4 = rnd.Next(1, 4),
StringTest = tags[rnd.Next(0, tags.Length)] 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) switch (d.Enum4)
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")
{ {
d.IntegerNumber += 10; case 1: d.IntegerNumber = 1; break;
d.OrigenResultNumber = 1; 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; return d;

View File

@@ -18,7 +18,7 @@
</NuGetPackageImportStamp> </NuGetPackageImportStamp>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>x64</PlatformTarget> <PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols> <DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType> <DebugType>full</DebugType>
<Optimize>false</Optimize> <Optimize>false</Optimize>