我正在使用以下代码创建我的机器学习模型。该模型的精度为0.76。我只是想知道测试数据中的哪些记录失败了?有什么办法可以查看这些数据?

// 1. Load the dataset for training and testing
        var trainData = ctx.Data.LoadFromTextFile<SentimentData>(trainDataPath, hasHeader: true);
        var testData = ctx.Data.LoadFromTextFile<SentimentData>(testDataPath, hasHeader: true);

        // 2. Build a tranformer/estimator to transform input data so that Machine Learning algorithm can understand
        IEstimator<ITransformer> estimator = ctx.Transforms.Text.FeaturizeText("Features", nameof(SentimentData.Text));

        // 3. - set the training algorithm and create the pipeline for model builder
        var trainer = ctx.BinaryClassification.Trainers.SdcaLogisticRegression();
        var trainingPipeline = estimator.Append(trainer);

        // 4. - Train the model
        var trainedModel = trainingPipeline.Fit(trainData);

        // 5. - Perform the preditions on the test data
        var predictions = trainedModel.Transform(testData);

        // 6. - Evalute the model
        var metrics = ctx.BinaryClassification.Evaluate(data: predictions);

最佳答案

通过使用GetColumnCreateEnumerable方法,您可以找到模型未正确预测的数据。

度量之后,对来自测试数据集的预测使用GetColumn方法来获取原始标签值。然后,使用CreateEnuemrable方法获取将保存预测值的预测。您也可以选择获取情感文本。

var originalLabels = predictions.GetColumn<bool>("Label").ToArray();
var sentimentText = predictions.GetColumn<string>(nameof(SentimentData.SentimentText)).ToArray();
var predictedLabels = context.Data.CreateEnumerable<SentimentPrediction>(predictions, reuseRowObject: false).ToArray();


获取数据后,只需遍历其中一个(我对原始标签进行了计数),就可以在每次迭代时访问数据。在这里,您可以检查实际标签是否不等于预测值,仅打印出模型未正确获取的值。

for (int i = 0; i < originalLabels.Count(); i++)
{
    string outputText = String.Empty;

    if (originalLabels[i] != predictedLabels[i].Prediction)
    {
        outputText = $"Text - {sentimentText[i]} | ";
        outputText += $"Original - {originalLabels[i]} | ";
        outputText += $"Predicted - {predictedLabels[i].Prediction}";

        Console.WriteLine(outputText);
    }
}


这样,您便拥有了所需的数据。 :)

machine-learning - 如何查看失败的机器学习记录-LMLPHP

希望有帮助!

关于machine-learning - 如何查看失败的机器学习记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57294709/

10-12 21:25