internal BinaryClassificationMetrics(IHost host, DataViewRow overallResult, IDataView confusionMatrix)
        {
            double Fetch(string name) => Fetch <double>(host, overallResult, name);

            AreaUnderRocCurve             = Fetch(BinaryClassifierEvaluator.Auc);
            Accuracy                      = Fetch(BinaryClassifierEvaluator.Accuracy);
            PositivePrecision             = Fetch(BinaryClassifierEvaluator.PosPrecName);
            PositiveRecall                = Fetch(BinaryClassifierEvaluator.PosRecallName);
            NegativePrecision             = Fetch(BinaryClassifierEvaluator.NegPrecName);
            NegativeRecall                = Fetch(BinaryClassifierEvaluator.NegRecallName);
            F1Score                       = Fetch(BinaryClassifierEvaluator.F1);
            AreaUnderPrecisionRecallCurve = Fetch(BinaryClassifierEvaluator.AuPrc);
            ConfusionMatrix               = MetricWriter.GetConfusionMatrix(host, confusionMatrix);
        }
Beispiel #2
0
        internal MulticlassClassificationMetrics(IHost host, DataViewRow overallResult, int topKPredictionCount, IDataView confusionMatrix)
        {
            double FetchDouble(string name) => RowCursorUtils.Fetch<double>(host, overallResult, name);
            MicroAccuracy = FetchDouble(MulticlassClassificationEvaluator.AccuracyMicro);
            MacroAccuracy = FetchDouble(MulticlassClassificationEvaluator.AccuracyMacro);
            LogLoss = FetchDouble(MulticlassClassificationEvaluator.LogLoss);
            LogLossReduction = FetchDouble(MulticlassClassificationEvaluator.LogLossReduction);
            TopKPredictionCount = topKPredictionCount;
            if (topKPredictionCount > 0)
                TopKAccuracy = FetchDouble(MulticlassClassificationEvaluator.TopKAccuracy);

            var perClassLogLoss = RowCursorUtils.Fetch<VBuffer<double>>(host, overallResult, MulticlassClassificationEvaluator.PerClassLogLoss);
            PerClassLogLoss = perClassLogLoss.DenseValues().ToImmutableArray();
            ConfusionMatrix = MetricWriter.GetConfusionMatrix(host, confusionMatrix, binary: false, perClassLogLoss.Length);
        }