【问题标题】:ML always returns 0ML 总是返回 0
【发布时间】: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


    【解决方案1】:

    预测类PredictionConnectors输出属性必须用ColumnName("Score")属性修饰。

    public class PredictionConnectors
    {
        [ColumnName("Score")]
        public float CountConnectors { get; set; }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-09-27
      • 2014-03-20
      • 2013-04-13
      • 2013-03-30
      • 2016-07-13
      • 2023-04-09
      • 2021-10-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多