/// <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)); }
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)); }
/// <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)); }
/// <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)); }