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>();
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,7 +78,7 @@ namespace testML
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 expected = test.IntegerNumber;
@@ -86,7 +86,10 @@ namespace testML
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;

View File

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