Evaluation Metrics

Contents

Accuracy

Accuracy=Number of Correct PredictionsTotal Predictions\begin{align*} Accuracy = \frac{\text{Number of Correct Predictions}}{\text{Total Predictions}} \end{align*}
from sklearn.metrics import accuracy_score

accuracy = accuracy_score(y_true, y_pred) 
print(f"Accuracy {accuracy}"

Classification

Confusion Matrix

from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay

c_matrix = confusion_matrix(df['Actual Labels'], df['Predicted Labels'])
display_matrix = ConfusionMatrixDisplay(c_matrix, display_labels=['0', '1'])
display_matrix.plot()
plt.show()

Precision and Recall

Precision=TPTP+FP\begin{align*} Precision = \frac{TP}{TP + FP} \end{align*} Recall=TPTP+FN\begin{align*} Recall = \frac{TP}{TP + FN} \end{align*}

F1 Score

F1=(recall1+precision12)1=2precisionrecallprecision+recall\begin{align*} F1 &= \left( \frac{recall^{-1} + precision ^{-1}}{2} \right)^{-1} \\ &= 2 \cdot \frac{precision \cdot recall}{precision + recall} \end{align*}

Sensitivity and Specificity

Sensitivity=TPTP+FN\begin{align*} Sensitivity = \frac{TP}{TP + FN} \end{align*} Specificity=TNTN+FP\begin{align*} Specificity = \frac{TN}{TN + FP} \end{align*} FPR=1TNR\begin{align*} FPR =1 - TNR \end{align*}

ROC Curves

AUC-ROC

Log Loss

LogarithmicLoss=1Ni=1Nj=1Myijlog(pij)\begin{align*} LogarithmicLoss = \frac{-1}{N} \sum_{i=1}^N \sum_{j=1}^M y_{ij} * \log(p_{ij}) \end{align*}

Regression

Mean Absolute Error

MAE=1ni=1nyiy^i\begin{align*} MAE = \frac{1}{n} \sum_{i=1}^n |y_i - \hat{y}_i| \end{align*}

Mean Squared Error

MSE=1ni=1n(yiy^i)2\begin{align*} MSE = \frac{1}{n} \sum_{i=1}^n (y_i - \hat{y}_i)^2 \end{align*}

Root Mean Squared Error

RMSE=MSE\begin{align*} RMSE = \sqrt{MSE} \end{align*}

Coefficient of Determination

R2=Explained VariationTotal Variation\begin{align*} R^2 = \frac{\text{Explained Variation}}{\text{Total Variation}} \end{align*}
from sklearn.metrics import r2_score
r2 = r2_score(y, y_pred)

Root Mean Squared Log Error

RMSLE=1ni=1n(log(p1+1)log(ai+1))2\begin{align*} RMSLE = \sqrt{\frac{1}{n} \sum_{i=1}^n (log(p_1 + 1) - log(a_i+1))^2} \end{align*}

Clustering

Adjusted Rand Score

RI=2(a+b)n(n1)\begin{align*} RI = \frac{2(a+b)}{n(n-1)} \end{align*}

Silhouette

The Silhouette distance shows up to which extent the distance between the objects of the same class differs from the mean distance between the objects from different clusters.

s=bamax(a,b)\begin{align*} s = \frac{b-a}{max(a,b)} \end{align*}

Natural Language Processing

BLEU

Cross-Entropy

Cross-entropy is a measure of the difference between two probability distributions for a given random variable or set of events.

H(P,Q)=xP(x)logQ(x)\begin{align*} H(P,Q) = - \sum_x P(x) \log{Q(x)} \end{align*}

Perplexity

perplexity=t=1T(1PLM(x(t+1)x(t),,x(1)))1T\begin{align*} perplexity = \prod^T_{t=1}\left(\frac{1}{P_{LM}(x^{(t+1)}| x^{(t)}, \dots, x^{(1)})}\right)^{\frac{1}{T}} \end{align*}