Machine Learning - Random Forest Classification - AxisError Axis 1 is out of bounds for array of dimension 1

36 Views Asked by At
def evaluate_model(predictions, probs, train_predictions, train_probs): 
    """Compare machine learning model to baseline performance.
    baseline average error is compared to baseline performance.
    Computes statistics and shows ROC curve.
    """
    baseline = {}

    baseline['recall'] = recall_score(test_labels, 
                                    [1 for _ in range(len(test_labels))], average='micro')
    baseline['precision'] = recall_score(test_labels, 
                                   [1 for _ in range(len(test_labels))],average='micro')
    baseline['roc'] = 0.5

    results = {}

    
    results['recall'] = recall_score(test_labels, predictions, average='micro')
    results['precision'] = precision_score(test_labels, predictions, average='micro')
    results['roc'] = roc_auc_score(test_labels, probs, average='micro', multi_class='ovo')
    

    train_results = {}

    train_results['recall'] = recall_score(train_labels, train_predictions, average='micro')
    train_results['precision'] = precision_score(train_labels, train_predictions, average='micro',  multi_class='ovr')
    train_results['roc'] = roc_auc_score(train_labels, train_probs, average='micro',  multi_class='ovr')

    for metric in ['recall', 'precision', 'roc']:
        print(f'{metric.capitalize()} Baseline: {round(baseline[metric], 2)} Test: {round(results[metric], 2)} Train: {round(train_results[metric], 2)}')

    base_fpr, base_tpr, _ = roc_curve(feature_list, [1 for _ in range(len(test_labels))])
    model_fpr, model_tpr, _ = roc_curve(feature_list, probs)

    plt.figure(figsize=(8, 6))
    plt.rcParams['font.size'] = 16

    plt.plot(base_fpr, base_tpr, 'b', label='baseline')
    plt.plot(model_fpr, model_tpr, 'r', label='model')

    plt.legend()
    plt.xlabel('False Positive Rate')
    plt.ylabel('True Positive Rate')
    plt.title('ROC Curves')
    plt.show()

evaluate_model(rf_predictions, rf_probs, train_rf_predictions, train_rf_probs)

AxisError: axis 1 is out of bounds for array of dimension 1

  • I am trying to get this model to work but on the line results['roc'] = roc_auc_score(test_labels, probs, multi_class='ovo') its states AxisError: axis 1 is out of bounds for an array of dimension 1, I am all out of ideas on how to get this to work
0

There are 0 best solutions below