docs: public String toCSV() {
          StringBuilder builder = new StringBuilder();
  
          // Header Row
          builder.append(",,Predicted Class,\n");
  
          // Predicted Classes Header Row
          builder.append(",,");
          for (T predicted : classes) {
              builder.append(String.format("%s,", predicted));
          }
          builder.append("Total\n");
  
          // Data Rows
          String firstColumnLabel = "Actual Class,";
          for (T actual : classes) {
              builder.append(firstColumnLabel);
              firstColumnLabel = ",";
              builder.append(String.format("%s,", actual));
  
              for (T predicted : classes) {
                  builder.append(getCount(actual, predicted));
                  builder.append(",");
              }
              // Actual Class Totals Column
              builder.append(getActualTotal(actual));
              builder.append("\n");
          }
  
          // Predicted Class Totals Row
          builder.append(",Total,");
          for (T predicted : classes) {
              builder.append(getPredictedTotal(predicted));
              builder.append(",");
          }
          builder.append("\n");
  
          return builder.toString();
      }