代码之家  ›  专栏  ›  技术社区  ›  Walter Verhoeven

CrossValidate引发错误System.ArgumentOutOfRangeException:“score column”score“not found parameter name:name”

  •  2
  • Walter Verhoeven  · 技术社区  · 6 年前

    我正在跟踪githublabeler引发异常的结果: System.ArgumentOutOfRangeException:未找到“分数”列“分数” 参数名称:name' 调用时出错

    mlContext.MulticlassClassification.CrossValidate(...)
    

    我知道它是在要求它,但是githublabeler没有提供它。
    enter image description here

    我已经修改了从列表中加载的代码,其中t是一个具有几个hundard float值的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);
    
    0 回复  |  直到 6 年前
        1
  •  0
  •   Eric    6 年前

    这个bug已经被微软修复了,这个问题已经不存在了。

    推荐文章