@Override
 public TableModel getTableModel(Object renderable, IOContainer ioContainer, boolean isReporting) {
   KernelModel kernelModel = (KernelModel) renderable;
   DataTable weightDataTable = kernelModel.createWeightsTable();
   if (weightDataTable != null) {
     return new DataTableViewerTableModel(weightDataTable);
   } else {
     return null;
   }
 }
  /**
   * Creates a new performance vector if the given one is null. Adds a new estimated criterion. If
   * the criterion was already part of the performance vector before it will be overwritten.
   */
  private PerformanceVector count(KernelModel model, PerformanceVector performanceCriteria)
      throws OperatorException {
    if (performanceCriteria == null) performanceCriteria = new PerformanceVector();

    this.lastCount = 0;
    int svNumber = model.getNumberOfSupportVectors();
    for (int i = 0; i < svNumber; i++) {
      SupportVector sv = model.getSupportVector(i);
      if (Math.abs(sv.getAlpha()) > 0.0d) this.lastCount++;
    }
    EstimatedPerformance svCriterion =
        new EstimatedPerformance(
            "number_of_support_vectors",
            lastCount,
            1,
            getParameterAsInt(PARAMETER_OPTIMIZATION_DIRECTION) == MDLCriterion.MINIMIZATION);
    performanceCriteria.addCriterion(svCriterion);
    return performanceCriteria;
  }