2

我正在关注 GitHubLabeler 结果引发异常:System.ArgumentOutOfRangeException: 'Score column 'Score' not found Parameter name: name' 调用时发生错误

mlContext.MulticlassClassification.CrossValidate(...)

我知道它要求它,但是 GitHubLabeler 没有提供它。
在此处输入图像描述

我已经调整了代码以从 List 加载,其中 T 是具有数百个浮点值的 ViewModel,我的实现如下:

var trainData = mlContext.CreateStreamingDataView(data);
var features = trainData.Schema.GetColumns()
    .Select(tuple => tuple.column.Name)
    .Where(name => name != labelName)
    .ToArray();


var trainingPipeline = mlContext.Transforms.Conversion.MapValueToKey(labelName, "Label")
                        .Append(mlContext.Transforms.Concatenate("Features", features))
                        .AppendCacheCheckpoint(mlContext);

IEstimator<ITransformer> trainer = null;
var selectedStrategy = MachineLearningMethods.OVAAveragedPerceptronTrainer;
switch (selectedStrategy)
{
    case MachineLearningMethods.SdcaMultiClassTrainer:
        trainer = mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent(DefaultColumnNames.Label,
                                                                                                DefaultColumnNames.Features);
        break;
    case MachineLearningMethods.OVAAveragedPerceptronTrainer:
        {
            // Create a binary classification trainer.
            var averagedPerceptronBinaryTrainer = mlContext.BinaryClassification
                                                    .Trainers.AveragedPerceptron(DefaultColumnNames.Label,
                                                                                    DefaultColumnNames.Features,
                                                                                    numIterations: 10                                                                                            
                                                                                );

            trainer = mlContext.MulticlassClassification.Trainers.OneVersusAll(averagedPerceptronBinaryTrainer);

            break;
        }
    default:
        break;
}


trainingPipeline.Append(trainer).Append(mlContext.Transforms.Conversion.MapKeyToValue("PredictedLabel"));

Trace.WriteLine("=============== Cross-validating to get model's accuracy metrics ===============");
var crossValidationResults = mlContext.MulticlassClassification.CrossValidate(data: trainData
                                                                            , estimator: trainingPipeline
                                                                            , numFolds: 6
                                                                            , labelColumn: "Label");
PrintMulticlassClassificationFoldsAverageMetrics(trainer.ToString(), crossValidationResults);

Trace.WriteLine("=============== Training the model ===============");
var model = trainingPipeline.Fit(trainData);
4

1 回答 1

0

该错误已被微软修复,该问题不再存在。

于 2019-08-13T22:33:17.617 回答