Version

  • Permetrics version >= 1.2.0:

    from permetrics import RegressionMetric, ClassificationMetric, ClusteringMetric
    
  • Permetrics version >= 1.2.0:

    from numpy import array
    from permetrics.regression import RegressionMetric
    
    ## For 1-D array
    y_true = array([3, -0.5, 2, 7])
    y_pred = array([2.5, 0.0, 2, 8])
    
    evaluator = RegressionMetric(y_true, y_pred)
    print(evaluator.RMSE())
    print(evaluator.MSE())
    
    ## For > 1-D array
    y_true = array([[0.5, 1], [-1, 1], [7, -6]])
    y_pred = array([[0, 2], [-1, 2], [8, -5]])
    
    evaluator = RegressionMetric(y_true, y_pred)
    print(evaluator.RMSE(multi_output="raw_values"))
    print(evaluator.MAE(multi_output="raw_values"))
    
    
    ## All metrics
    
    EVS = evs = explained_variance_score
    ME = me = max_error
    MBE = mbe = mean_bias_error
    MAE = mae = mean_absolute_error
    MSE = mse = mean_squared_error
    RMSE = rmse = root_mean_squared_error
    MSLE = msle = mean_squared_log_error
    MedAE = medae = median_absolute_error
    MRE = mre = MRB = mrb = mean_relative_bias = mean_relative_error
    MPE = mpe = mean_percentage_error
    MAPE = mape = mean_absolute_percentage_error
    SMAPE = smape = symmetric_mean_absolute_percentage_error
    MAAPE = maape = mean_arctangent_absolute_percentage_error
    MASE = mase = mean_absolute_scaled_error
    NSE = nse = nash_sutcliffe_efficiency
    NNSE = nnse = normalized_nash_sutcliffe_efficiency
    WI = wi = willmott_index
    R = r = PCC = pcc = pearson_correlation_coefficient
    AR = ar = APCC = apcc = absolute_pearson_correlation_coefficient
    R2s = r2s = pearson_correlation_coefficient_square
    CI = ci = confidence_index
    COD = cod = R2 = r2 = coefficient_of_determination
    ACOD = acod = AR2 = ar2 = adjusted_coefficient_of_determination
    DRV = drv = deviation_of_runoff_volume
    KGE = kge = kling_gupta_efficiency
    GINI = gini = normalized_gini_coefficient
    GINI_WIKI = gini_wiki = residual_gini_index
    PCD = pcd = prediction_of_change_in_direction
    CE = ce = cross_entropy
    KLD = kld = kullback_leibler_divergence
    JSD = jsd = jensen_shannon_divergence
    VAF = vaf = variance_accounted_for
    RAE = rae = relative_absolute_error
    A10 = a10 = a10_index
    A20 = a20 = a20_index
    A30 = a30 = a30_index
    NRMSE = nrmse = normalized_root_mean_square_error
    RSE = rse = residual_standard_error
    
    RE = re = RB = rb = single_relative_bias = single_relative_error
    AE = ae = single_absolute_error
    SE = se = single_squared_error
    SLE = sle = single_squared_log_error
    
  • Permetrics version <= 1.1.3:

    ##  All you need to do is: (Make sure your y_true and y_pred is a numpy array)
    ## For example with RMSE:
    
    from numpy import array
    from permetrics.regression import Metrics
    
    ## 1-D array
    y_true = array([3, -0.5, 2, 7])
    y_pred = array([2.5, 0.0, 2, 8])
    
    y_true2 = array([3, -0.5, 2, 7])
    y_pred2 = array([2.5, 0.0, 2, 9])
    
    ### C1. Using OOP style - very powerful when calculating multiple metrics
    obj1 = Metrics(y_true, y_pred)  # Pass the data here
    result = obj1.root_mean_squared_error(clean=True)
    print(f"1-D array, OOP style: {result}")
    
    ### C2. Using functional style
    obj2 = Metrics()
    result = obj2.root_mean_squared_error(clean=True, y_true=y_true2, y_pred=y_pred2)
    # Pass the data here, remember the keywords (y_true, y_pred)
    print(f"1-D array, Functional style: {result}")
    
    ## > 1-D array - Multi-dimensional Array
    y_true = array([[0.5, 1], [-1, 1], [7, -6]])
    y_pred = array([[0, 2], [-1, 2], [8, -5]])
    
    multi_outputs = [None, "raw_values", [0.3, 1.2], array([0.5, 0.2]), (0.1, 0.9)]
    obj3 = Metrics(y_true, y_pred)
    for multi_output in multi_outputs:
        result = obj3.root_mean_squared_error(clean=False, multi_output=multi_output)
        print(f"n-D array, OOP style: {result}")
    
    # Or run the simple:
    python examples/RMSE.py
    

# The more complicated tests in the folder: examples