【发布时间】:2019-11-22 03:07:00
【问题描述】:
我在 ML.NET 中有一个线性回归模型,并且预测工作正常:
MLContext mlContext = new MLContext(seed: 0);
List<TwoInputRegressionModel> inputs = new List<TwoInputRegressionModel>();
foreach (var JahrMitCO in ListWithCO)
{
float tempyear = JahrMitCO.Year;
foreach (var JahrMitPopulation in Population)
{
if (JahrMitPopulation.Year == tempyear)
{
inputs.Add(new TwoInputRegressionModel() { Year = tempyear, Population = JahrMitPopulation.Value, Co2 = JahrMitCO.Value });
}
}
}
var model = Train(mlContext, inputs);
TestSinglePrediction(mlContext, model); //works
但我想知道如何访问训练模型的参数(权重 + 偏差)?我知道 ITransformer 类(这里称为模型)确实包含一个 Model 属性,但是尝试将其转换为 LinearRegressionModelParameters 类,如documentation 中所述,不起作用:
LinearRegressionModelParameters originalModelParameters = ((ISingleFeaturePredictionTransformer<object>)model).Model as LinearRegressionModelParameters; //Exception:System.InvalidCastException
类型的对象 Microsoft.ML.Data.TransformerChain
1[Microsoft.ML.Data.RegressionPredictionTransformer1[Microsoft.ML.Trainers.FastTree.FastTreeRegressionModelParameters]] 无法转换为 Microsoft.ML.ISingleFeaturePredictionTransformer`1[System.Object]
如何获取模型参数?
【问题讨论】:
标签: c# neural-network linear-regression ml.net