コード例 #1
0
        /// <summary>
        /// Calculates the total error metric on a multi label or binary classification problem
        /// </summary>
        /// <param name="targets"></param>
        /// <param name="predictions"></param>
        /// <returns></returns>
        public double Error(T[] targets, T[] predictions)
        {
            var uniques = UniqueTargets(targets, predictions);

            var confusionMatrix = ClassificationMatrix.ConfusionMatrix(uniques, targets, predictions);
            var errorMatrix     = ClassificationMatrix.ErrorMatrix(uniques, confusionMatrix);

            return(TotalError(uniques, confusionMatrix));
        }
コード例 #2
0
        internal static string ClassificationMatrixString <T>(T[] targets, T[] predictions, double error)
        {
            var uniques = UniqueTargetValues(targets, predictions);

            var confusionMatrix = ClassificationMatrix.ConfusionMatrix(uniques, targets, predictions);
            var errorMatrix     = ClassificationMatrix.ErrorMatrix(uniques, confusionMatrix);

            return(ClassificationMatrixStringConverter.Convert(uniques, confusionMatrix,
                                                               errorMatrix, error));
        }
コード例 #3
0
        /// <summary>
        /// Gets a string representation of the classification matrix with counts and percentages
        /// </summary>
        /// <param name="targets"></param>
        /// <param name="predictions"></param>
        /// <returns></returns>
        public string ErrorString(T[] targets, T[] predictions)
        {
            var uniques = UniqueTargets(targets, predictions);

            var confusionMatrix = ClassificationMatrix.ConfusionMatrix(uniques, targets, predictions);
            var errorMatrix     = ClassificationMatrix.ErrorMatrix(uniques, confusionMatrix);
            var error           = 1.0 - Recall(targets, predictions);

            return(ClassificationMatrixStringConverter.Convert(uniques, confusionMatrix, errorMatrix, error));
        }
コード例 #4
0
        /// <summary>
        /// Gets a string representation of the classification matrix with counts and percentages
        /// Using the target names provided in the targetStringMapping
        /// </summary>
        /// <param name="targets"></param>
        /// <param name="predictions"></param>
        /// <param name="targetStringMapping"></param>
        /// <returns></returns>
        public string ErrorString(T[] targets, T[] predictions, Dictionary <T, string> targetStringMapping)
        {
            var uniques = UniqueTargets(targets, predictions);

            var confusionMatrix = ClassificationMatrix.ConfusionMatrix(uniques, targets, predictions);
            var errorMatrix     = ClassificationMatrix.ErrorMatrix(uniques, confusionMatrix);
            var error           = Error(targets, predictions);

            return(ClassificationMatrixStringConverter.Convert(uniques, targetStringMapping, confusionMatrix, errorMatrix, error));
        }
        /// <summary>
        /// Gets a string representation of the classification matrix with counts and percentages
        /// Using the target names provided in the targetStringMapping
        /// </summary>
        /// <param name="targets"></param>
        /// <param name="predictions"></param>
        /// <param name="targetStringMapping"></param>
        /// <returns></returns>
        public string ErrorString(double[] targets, ProbabilityPrediction[] predictions, Dictionary <double, string> targetStringMapping)
        {
            var classPredictions = predictions.Select(p => p.Prediction).ToArray();
            var uniques          = UniqueTargets(targets, classPredictions);

            var confusionMatrix = ClassificationMatrix.ConfusionMatrix(uniques, targets, classPredictions);
            var errorMatrix     = ClassificationMatrix.ErrorMatrix(uniques, confusionMatrix);
            var error           = Error(targets, predictions);

            return(ClassificationMatrixStringConverter.Convert(uniques, targetStringMapping, confusionMatrix, errorMatrix, error));
        }