【发布时间】:2019-09-26 08:46:38
【问题描述】:
我正在尝试实现 ML,下面是一个示例:
- 3 个变量值
- 一个结果值取决于其他值
测试数据输入相同,因此它应该返回相同的值
countConnectors.CountConnectors 总是返回 0
我是不是忘记了什么?
代码:
public class Balcony
{
public float A { get; set; }
public float L { get; set; }
public float HB { get; set; }
public float CountConnectors { get; set; }
}
public class PredictionConnectors
{
[ColumnName("Count")]
public float CountConnectors { get; set; }
}
static void Main(string[] args)
{
MLContext mlContext = new MLContext();
Balcony[] balconyData = {
new Balcony() { A = 500F, L = 180F, HB = 20F, CountConnectors = 10F },
new Balcony() { A = 500F, L = 180F, HB = 20F, CountConnectors = 10F },
new Balcony() { A = 500F, L = 180F, HB = 20F, CountConnectors = 10F },
new Balcony() { A = 500F, L = 180F, HB = 20F, CountConnectors = 10F },
new Balcony() { A = 500F, L = 180F, HB = 20F, CountConnectors = 10F },
new Balcony() { A = 500F, L = 180F, HB = 20F, CountConnectors = 10F },
new Balcony() { A = 500F, L = 180F, HB = 20F, CountConnectors = 10F },
new Balcony() { A = 500F, L = 180F, HB = 20F, CountConnectors = 10F },
new Balcony() { A = 500F, L = 180F, HB = 20F, CountConnectors = 10F },
};
IDataView trainingData = mlContext.Data.LoadFromEnumerable(balconyData);
var pipeline = mlContext.Transforms.Concatenate("Features", "A", "L", "HB")
.Append(mlContext.Regression.Trainers.Sdca(labelColumnName: "CountConnectors", maximumNumberOfIterations: 100));
var model = pipeline.Fit(trainingData);
var balcony = new Balcony() { A = 500F, L = 180F, HB = 20F };
var countConnectors = mlContext.Model.CreatePredictionEngine<Balcony, PredictionConnectors>(model).Predict(balcony);
Console.WriteLine($"Predicted A: {balcony.A}, L: {balcony.L}, HB: {balcony.HB} connectors= {countConnectors.CountConnectors} szt.");
}
【问题讨论】:
标签: c# machine-learning ml.net