src/core/metrics/ClassificationMetric.java
public void update(Matrix predicted, Matrix actual) {
        if (confusion == null) reset();
        int actualRows = actual.getRows();
        int predictedRows = predicted.getRows();
        for (int predictedRow = 0; predictedRow < predictedRows; predictedRow++) {
            features.add(predictedRow);
            double actualValue = actual.getValue(predictedRow, 0);
            for (int actualRow = 0; actualRow < actualRows; actualRow++) {
                double predictedValue = predicted.getValue(actualRow, 0);
                if (actualValue == 1 && predictedValue == 1) incrementConfusion(predictedRow, actualRow);
                if (predictedRow == actualRow) {
                    if (actualValue == 1 && predictedValue == 1) incrementTP(predictedRow);
                    if (actualValue == 0 && predictedValue == 0) incrementTN(predictedRow);
                    if (actualValue == 1 && predictedValue == 0) incrementFN(predictedRow);
                    if (actualValue == 0 && predictedValue == 1) incrementFP(predictedRow);
                }
            }
        }
    }
/**
     * Updates classification statistics and confusion matrix for a predicted / actual (true) sample pair.
     *
     * @param predicted predicted sample.
     * @param actual actual (true) sample.
     */
Updates classification statistics and confusion matrix for a predicted / actual (true) sample pair.

@param predicted predicted sample.
@param actual actual (true) sample.
Updates classification statistics and confusion matrix for a predicted / actual ( true ) sample pair . @param predicted predicted sample . @param actual actual ( true ) sample .
public void update(Matrix predicted, Matrix actual) {
        if (confusion == null) reset();
        int actualRows = actual.getRows();
        int predictedRows = predicted.getRows();
        for (int predictedRow = 0; predictedRow < predictedRows; predictedRow++) {
            features.add(predictedRow);
            double actualValue = actual.getValue(predictedRow, 0);
            for (int actualRow = 0; actualRow < actualRows; actualRow++) {
                double predictedValue = predicted.getValue(actualRow, 0);
                if (actualValue == 1 && predictedValue == 1) incrementConfusion(predictedRow, actualRow);
                if (predictedRow == actualRow) {
                    if (actualValue == 1 && predictedValue == 1) incrementTP(predictedRow);
                    if (actualValue == 0 && predictedValue == 0) incrementTN(predictedRow);
                    if (actualValue == 1 && predictedValue == 0) incrementFN(predictedRow);
                    if (actualValue == 0 && predictedValue == 1) incrementFP(predictedRow);
                }
            }
        }
    }
public void update ( Matrix predicted , Matrix actual ) { if ( confusion == null ) reset ( ) ; int actualRows = actual . getRows ( ) ; int predictedRows = predicted . getRows ( ) ; for ( int predictedRow = 0 ; predictedRow < predictedRows ; predictedRow ++ ) { features . add ( predictedRow ) ; double actualValue = actual . getValue ( predictedRow , 0 ) ; for ( int actualRow = 0 ; actualRow < actualRows ; actualRow ++ ) { double predictedValue = predicted . getValue ( actualRow , 0 ) ; if ( actualValue == 1 && predictedValue == 1 ) incrementConfusion ( predictedRow , actualRow ) ; if ( predictedRow == actualRow ) { if ( actualValue == 1 && predictedValue == 1 ) incrementTP ( predictedRow ) ; if ( actualValue == 0 && predictedValue == 0 ) incrementTN ( predictedRow ) ; if ( actualValue == 1 && predictedValue == 0 ) incrementFN ( predictedRow ) ; if ( actualValue == 0 && predictedValue == 1 ) incrementFP ( predictedRow ) ; } } } }
Updates classification statistics and confusion matrix for a predicted / actual (true) sample pair.
Updates classification statistics and confusion matrix for a predicted / actual ( true ) sample pair .