Output Evaluation
Feature Importance
featureImportances = test.getFeatureImportance(models['catboost']['model'])
fig = featureImportances.plot.barh()
fig.figure.savefig('featureImportances.png')
    
 Figure 1: Feature Importances.
ROC Curve
fig, ax = test.plotROC(models, data)
fig.figure.savefig('ROCcurve.png')
    
 Figure 2: Receiver Operating Characteristic curve for both CatBoost and Logistic Model.
Precision-Recall Curve
fig, ax = test.plotPrecisionRecall(models, data)
fig.figure.savefig('PRcurve.png', dpi=300)
    
 Figure 3: Precision-Recall curve for both CatBoost and Logistic Model.
Calibration Curve
fig, ax = test.plotCalibrationCurve(models, data, strategy='quantile')
fig.figure.savefig('CalibrationCurve.png')
    
 Figure 4: Calibration curve for both CatBoost and Logistic Model.
Evaluation Report
The evaluate() function computes a comprehensive set of performance metrics using the test data.
report = test.evaluate(models['catboost']['model'], data)
print(report)
{
    'Attend': {
        'precision': 0.7976354138025845,
        'recall':    0.7815193965517241,
        'f1-score':  0.7894951694108042,
        'support':   3712
    },
    'DNA': {
        'precision': 0.7901138716356108,
        'recall':    0.8057534969648984,
        'f1-score':  0.7978570495230629,
        'support':   3789
    },
    'accuracy':      0.7937608318890814,
    'macro avg': {
        'precision': 0.7938746427190977,
        'recall':    0.7936364467583112,
        'f1-score':  0.7936761094669336,
        'support':   7501
    },
    'weighted avg': {
        'precision': 0.7938360372833652,
        'recall':    0.7937608318890814,
        'f1-score':  0.7937190280623637,
        'support':   7501
    }
}