Hecha una prueba de selección
This commit is contained in:
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user