dotnet / dotnet/machinelearning

Make class labels on the ConfusionMatrix publicly readable for custom charting support

Open
#7,176 0 comments 1 reaction 0 assignees View on GitHub
api-suggestion area-Core enhancement untriaged
Dominant language
C#
Stars
9.4k
Forks
2k
Avg merge
2d 20h
Merged PRs (30d)
11

Description

**Is your feature request related to a problem? Please describe.**
I'm trying to build a library of data science charts for visualizing the results of ML.NET model training. One of those is a graphical confusion matrix pictured below (no offense to the wonderful built-in formatted table option present in ML.NET already).
![image](https://github.com/dotnet/machinelearning/assets/5049957/c43f9a6d-c508-448d-a6c1-e2a2e08c5090)

Unfortunately, there's no public way of getting the names of classes for the matrix as `ConfusionMatrix.PredictedClassesIndicators` is internal. This means that class labels in multi-class classification charts must:

1. Use an arbitrary label like "Class 1"
2. Require the caller to specify an array of class names
3. Call the public `ConfusionMatrix.GetFormattedConfusionMatrix` and parse the output to get the class names from the generated output.

**Describe the solution you'd like**
Either make `PredictedClassesIndicators` publicly gettable or provide a `GetClassLabel(int classIndex): string` method for accessing this information.

**Describe alternatives you've considered**
Right now I am requiring callers to provide an array of class names for multi-class classification. However, if this feature goes some time before it is implemented, I may decide to write code to parse the results of `GetFormattedConfusionMatrix` which does include those internal labels.

**Additional context**
My goal is for ML.NET to be as viable as SciKit-Learn in as many contexts as possible. Right now, I'm using ML.NET for my master's program and I'd much rather turn in a report with a graphical confusion matrix than a formatted text confusion matrix. Also, I'm running these charts in a Polyglot Notebook.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.