我正在关注ML.Net的Iris tutorial,我输入了指令而不是复制/粘贴它们以便我可以更好地学习API,但现在我遇到了一些错误。
当我从教程中运行此行时,会抛出System.Reflection.TargetInvocationException
:
var model = pipeline.Train<IrisData, IrisPrediction>();
我在运行时获得的控制台错误是:
Bad value at line 2 in column Label
...
Bad value at line 8 in column Label
Suppressing further bad value messages
...
Processed 150 rows with 150 bad values and 0 format errors
Warning: Term map for output column 'Label' contains no entries.
Automatically adding a MinMax normalization transform, use 'norm=Warn' or 'norm=No' to turn this behavior off.
Using 2 threads to train.
Automatically choosing a check frequency of 2.
Bad value at line 1 in column Label
...
Suppressing further bad value messages
Processed 150 rows with 150 bad values and 0 format errors
Warning: Skipped 150 instances with missing features/label during training
这是我的IrisData
课程:
namespace Ronald.A.Fisher
{
public class IrisData
{
[Column("0")]
public float SepalLength;
[Column("1")]
public float SepalWidth;
[Column("2")]
public float PetalLength;
[Column("3")]
public float PetalWidth;
[Column("4")]
[ColumnName("Label")]
public float Label;
}
答案 0 :(得分:2)
看了一会儿后,我意识到我的一个列的数据类型不正确。
在用于加载学习数据IrisData
的类中,我使用了Label
的错误数据类型。因此控制台消息:Bad value at line 1 in column Label
。
要解决此问题,我将Label
字段的数据类型从float
更改为string
:
public class IrisData
{
...
[ColumnName("Label")]
public string Label;
}