Type: | Package |
Title: | Machine Learning Evaluation Metrics |
Version: | 1.1.3 |
Description: | A collection of evaluation metrics, including loss, score and utility functions, that measure regression, classification and ranking performance. |
URL: | https://github.com/yanyachen/MLmetrics |
BugReports: | https://github.com/yanyachen/MLmetrics/issues |
Depends: | R (≥ 2.10) |
Imports: | stats, utils, ROCR |
Suggests: | e1071 |
License: | GPL-2 |
RoxygenNote: | 5.0.1 |
NeedsCompilation: | no |
Packaged: | 2024-04-01 02:06:00 UTC; Administrator |
Author: | Yachen Yan [aut, cre] |
Maintainer: | Yachen Yan <yanyachen21@gmail.com> |
Repository: | CRAN |
Date/Publication: | 2024-04-13 23:50:05 UTC |
MLmetrics: Machine Learning Evaluation Metrics
Description
A collection of evaluation metrics, including loss, score and utility functions, that measure regression and classification performance.
Area Under the Receiver Operating Characteristic Curve (ROC AUC)
Description
Compute the Area Under the Receiver Operating Characteristic Curve (ROC AUC) from prediction scores.
Usage
AUC(y_pred, y_true)
Arguments
y_pred |
Predicted probabilities vector, as returned by a classifier |
y_true |
Ground truth (correct) 0-1 labels vector |
Value
Area Under the ROC Curve (ROC AUC)
Examples
data(cars)
logreg <- glm(formula = vs ~ hp + wt,
family = binomial(link = "logit"), data = mtcars)
AUC(y_pred = logreg$fitted.values, y_true = mtcars$vs)
Accuracy
Description
Compute the accuracy classification score.
Usage
Accuracy(y_pred, y_true)
Arguments
y_pred |
Predicted labels vector, as returned by a classifier |
y_true |
Ground truth (correct) 0-1 labels vector |
Value
Accuracy
Examples
data(cars)
logreg <- glm(formula = vs ~ hp + wt,
family = binomial(link = "logit"), data = mtcars)
pred <- ifelse(logreg$fitted.values < 0.5, 0, 1)
Accuracy(y_pred = pred, y_true = mtcars$vs)
Calculate the Area Under the Curve
Description
Calculate the area under the curve.
Usage
Area_Under_Curve(x, y, method = c("trapezoid", "step", "spline"),
na.rm = FALSE)
Arguments
x |
the x-points of the curve |
y |
the y-points of the curve |
method |
can be "trapezoid" (default), "step" or "spline" |
na.rm |
a logical value indicating whether NA values should be stripped before the computation proceeds |
Value
Area Under the Curve (AUC)
Examples
x <- seq(0, pi, length.out = 200)
plot(x = x, y = sin(x), type = "l")
Area_Under_Curve(x = x, y = sin(x), method = "trapezoid", na.rm = TRUE)
Confusion Matrix (Data Frame Format)
Description
Compute data frame format confusion matrix for internal usage.
Usage
ConfusionDF(y_pred, y_true)
Arguments
y_pred |
Predicted labels vector, as returned by a classifier |
y_true |
Ground truth (correct) 0-1 labels vector |
Value
a data.frame of Confusion Matrix
Examples
data(cars)
logreg <- glm(formula = vs ~ hp + wt,
family = binomial(link = "logit"), data = mtcars)
pred <- ifelse(logreg$fitted.values < 0.5, 0, 1)
ConfusionDF(y_pred = pred, y_true = mtcars$vs)
Confusion Matrix
Description
Compute confusion matrix to evaluate the accuracy of a classification.
Usage
ConfusionMatrix(y_pred, y_true)
Arguments
y_pred |
Predicted labels vector, as returned by a classifier |
y_true |
Ground truth (correct) 0-1 labels vector |
Value
a table of Confusion Matrix
Examples
data(cars)
logreg <- glm(formula = vs ~ hp + wt,
family = binomial(link = "logit"), data = mtcars)
pred <- ifelse(logreg$fitted.values < 0.5, 0, 1)
ConfusionMatrix(y_pred = pred, y_true = mtcars$vs)
F1 Score
Description
Compute the F1 Score.
Usage
F1_Score(y_true, y_pred, positive = NULL)
Arguments
y_true |
Ground truth (correct) 0-1 labels vector |
y_pred |
Predicted labels vector, as returned by a classifier |
positive |
An optional character string for the factor level that corresponds to a "positive" result |
Value
F1 Score
Examples
data(cars)
logreg <- glm(formula = vs ~ hp + wt,
family = binomial(link = "logit"), data = mtcars)
pred <- ifelse(logreg$fitted.values < 0.5, 0, 1)
F1_Score(y_pred = pred, y_true = mtcars$vs, positive = "0")
F1_Score(y_pred = pred, y_true = mtcars$vs, positive = "1")
F-Beta Score
Description
Compute the F-Beta Score
Usage
FBeta_Score(y_true, y_pred, positive = NULL, beta = 1)
Arguments
y_true |
Ground truth (correct) 0-1 labels vector |
y_pred |
Predicted labels vector, as returned by a classifier |
positive |
An optional character string for the factor level that corresponds to a "positive" result |
beta |
Weight of precision in harmonic mean |
Value
F-Beta Score
Examples
data(cars)
logreg <- glm(formula = vs ~ hp + wt,
family = binomial(link = "logit"), data = mtcars)
pred <- ifelse(logreg$fitted.values < 0.5, 0, 1)
FBeta_Score(y_pred = pred, y_true = mtcars$vs, positive = "0", beta = 2)
FBeta_Score(y_pred = pred, y_true = mtcars$vs, positive = "1", beta = 2)
Area Under the Gain Chart
Description
Compute the Area Under the Gain Chart from prediction scores.
Usage
GainAUC(y_pred, y_true)
Arguments
y_pred |
Predicted probabilities vector, as returned by a classifier |
y_true |
Ground truth (correct) 0-1 labels vector |
Value
Area Under the Gain Chart
Examples
data(cars)
logreg <- glm(formula = vs ~ hp + wt,
family = binomial(link = "logit"), data = mtcars)
GainAUC(y_pred = logreg$fitted.values, y_true = mtcars$vs)
Gini Coefficient
Description
Compute the Gini Coefficient.
Usage
Gini(y_pred, y_true)
Arguments
y_pred |
Predicted probabilities vector, as returned by a classifier |
y_true |
Ground truth (correct) 0-1 labels vector |
Value
Gini Coefficient
Examples
data(cars)
logreg <- glm(formula = vs ~ hp + wt,
family = binomial(link = "logit"), data = mtcars)
Gini(y_pred = logreg$fitted.values, y_true = mtcars$vs)
Kolmogorov-Smirnov Statistic
Description
Compute the Kolmogorov-Smirnov statistic.
Usage
KS_Stat(y_pred, y_true)
Arguments
y_pred |
Predicted probabilities vector, as returned by a classifier |
y_true |
Ground truth (correct) 0-1 labels vector |
Value
Kolmogorov-Smirnov statistic
Examples
data(cars)
logreg <- glm(formula = vs ~ hp + wt,
family = binomial(link = "logit"), data = mtcars)
KS_Stat(y_pred = logreg$fitted.values, y_true = mtcars$vs)
Area Under the Lift Chart
Description
Compute the Area Under the Lift Chart from prediction scores.
Usage
LiftAUC(y_pred, y_true)
Arguments
y_pred |
Predicted probabilities vector, as returned by a classifier |
y_true |
Ground truth (correct) 0-1 labels vector |
Value
Area Under the Lift Chart
Examples
data(cars)
logreg <- glm(formula = vs ~ hp + wt,
family = binomial(link = "logit"), data = mtcars)
LiftAUC(y_pred = logreg$fitted.values, y_true = mtcars$vs)
Log loss / Cross-Entropy Loss
Description
Compute the log loss/cross-entropy loss.
Usage
LogLoss(y_pred, y_true)
Arguments
y_pred |
Predicted probabilities vector, as returned by a classifier |
y_true |
Ground truth (correct) 0-1 labels vector |
Value
Log loss/Cross-Entropy Loss
Examples
data(cars)
logreg <- glm(formula = vs ~ hp + wt,
family = binomial(link = "logit"), data = mtcars)
LogLoss(y_pred = logreg$fitted.values, y_true = mtcars$vs)
Mean Absolute Error Loss
Description
Compute the mean absolute error regression loss.
Usage
MAE(y_pred, y_true)
Arguments
y_pred |
Estimated target values vector |
y_true |
Ground truth (correct) target values vector |
Value
Mean Absolute Error Loss
Examples
data(cars)
reg <- lm(log(dist) ~ log(speed), data = cars)
MAE(y_pred = exp(reg$fitted.values), y_true = cars$dist)
Mean Absolute Percentage Error Loss
Description
Compute the mean absolute percentage error regression loss.
Usage
MAPE(y_pred, y_true)
Arguments
y_pred |
Estimated target values vector |
y_true |
Ground truth (correct) target values vector |
Value
Mean Absolute Percentage Error Loss
Examples
data(cars)
reg <- lm(log(dist) ~ log(speed), data = cars)
MAPE(y_pred = exp(reg$fitted.values), y_true = cars$dist)
Mean Square Error Loss
Description
Compute the mean squared error regression loss.
Usage
MSE(y_pred, y_true)
Arguments
y_pred |
Estimated target values vector |
y_true |
Ground truth (correct) target values vector |
Value
Mean Square Error Loss
Examples
data(cars)
reg <- lm(log(dist) ~ log(speed), data = cars)
MSE(y_pred = exp(reg$fitted.values), y_true = cars$dist)
Median Absolute Error Loss
Description
Compute the median absolute error regression loss.
Usage
MedianAE(y_pred, y_true)
Arguments
y_pred |
Estimated target values vector |
y_true |
Ground truth (correct) target values vector |
Value
Median Absolute Error Loss
Examples
data(cars)
reg <- lm(log(dist) ~ log(speed), data = cars)
MedianAE(y_pred = exp(reg$fitted.values), y_true = cars$dist)
Median Absolute Percentage Error Loss
Description
Compute the Median absolute percentage error regression loss.
Usage
MedianAPE(y_pred, y_true)
Arguments
y_pred |
Estimated target values vector |
y_true |
Ground truth (correct) target values vector |
Value
Median Absolute Percentage Error Loss
Examples
data(cars)
reg <- lm(log(dist) ~ log(speed), data = cars)
MedianAPE(y_pred = exp(reg$fitted.values), y_true = cars$dist)
Multi Class Log Loss
Description
Compute the multi class log loss.
Usage
MultiLogLoss(y_pred, y_true)
Arguments
y_pred |
Predicted probabilities matrix, as returned by a classifier |
y_true |
Ground truth (correct) labels vector or a matrix of correct labels indicating by 0-1, same format as probabilities matrix |
Value
Multi Class Log Loss
Examples
data(iris)
svm.model <- e1071::svm(Species~., data = iris, probability = TRUE)
pred <- predict(svm.model, iris, probability = TRUE)
MultiLogLoss(y_true = iris$Species, y_pred = attr(pred, "probabilities"))
Normalized Gini Coefficient
Description
Compute the Normalized Gini Coefficient.
Usage
NormalizedGini(y_pred, y_true)
Arguments
y_pred |
Predicted labels vector, as returned by a model |
y_true |
Ground truth (correct) labels vector |
Value
Normalized Gini Coefficient
Examples
d_AD <- data.frame(treatment = gl(3,3), outcome = gl(3,1,9),
counts = c(18,17,15,20,10,20,25,13,12))
glm_poisson <- glm(counts ~ outcome + treatment,
family = poisson(link = "log"), data = d_AD)
NormalizedGini(y_pred = glm_poisson$fitted.values, y_true = d_AD$counts)
Area Under the Precision-Recall Curve (PR AUC)
Description
Compute the Area Under the Precision-Recall Curve (PR AUC) from prediction scores.
Usage
PRAUC(y_pred, y_true)
Arguments
y_pred |
Predicted probabilities vector, as returned by a classifier |
y_true |
Ground truth (correct) 0-1 labels vector |
Value
Area Under the PR Curve (PR AUC)
Examples
data(cars)
logreg <- glm(formula = vs ~ hp + wt,
family = binomial(link = "logit"), data = mtcars)
PRAUC(y_pred = logreg$fitted.values, y_true = mtcars$vs)
Poisson Log loss
Description
Compute the log loss/cross-entropy loss.
Usage
Poisson_LogLoss(y_pred, y_true)
Arguments
y_pred |
Predicted labels vector, as returned by a model |
y_true |
Ground truth (correct) labels vector |
Value
Log loss/Cross-Entropy Loss
Examples
d_AD <- data.frame(treatment = gl(3,3), outcome = gl(3,1,9),
counts = c(18,17,15,20,10,20,25,13,12))
glm_poisson <- glm(counts ~ outcome + treatment,
family = poisson(link = "log"), data = d_AD)
Poisson_LogLoss(y_pred = glm_poisson$fitted.values, y_true = d_AD$counts)
Precision
Description
Compute the precision score.
Usage
Precision(y_true, y_pred, positive = NULL)
Arguments
y_true |
Ground truth (correct) 0-1 labels vector |
y_pred |
Predicted labels vector, as returned by a classifier |
positive |
An optional character string for the factor level that corresponds to a "positive" result |
Value
Precision
Examples
data(cars)
logreg <- glm(formula = vs ~ hp + wt,
family = binomial(link = "logit"), data = mtcars)
pred <- ifelse(logreg$fitted.values < 0.5, 0, 1)
Precision(y_pred = pred, y_true = mtcars$vs, positive = "0")
Precision(y_pred = pred, y_true = mtcars$vs, positive = "1")
R-Squared (Coefficient of Determination) Regression Score
Description
Compute the R-Squared (Coefficient of Determination) Regression Score.
Usage
R2_Score(y_pred, y_true)
Arguments
y_pred |
Estimated target values vector |
y_true |
Ground truth (correct) target values vector |
Value
R^2 Score
Examples
data(cars)
reg <- lm(log(dist) ~ log(speed), data = cars)
R2_Score(y_pred = exp(reg$fitted.values), y_true = cars$dist)
Relative Absolute Error Loss
Description
Compute the relative absolute error regression loss.
Usage
RAE(y_pred, y_true)
Arguments
y_pred |
Estimated target values vector |
y_true |
Ground truth (correct) target values vector |
Value
Relative Absolute Error Loss
Examples
data(cars)
reg <- lm(log(dist) ~ log(speed), data = cars)
RAE(y_pred = exp(reg$fitted.values), y_true = cars$dist)
Root Mean Square Error Loss
Description
Compute the root mean squared error regression loss.
Usage
RMSE(y_pred, y_true)
Arguments
y_pred |
Estimated target values vector |
y_true |
Ground truth (correct) target values vector |
Value
Root Mean Square Error Loss
Examples
data(cars)
reg <- lm(log(dist) ~ log(speed), data = cars)
RMSE(y_pred = exp(reg$fitted.values), y_true = cars$dist)
Root Mean Squared Logarithmic Error Loss
Description
Compute the root mean squared logarithmic error regression loss.
Usage
RMSLE(y_pred, y_true)
Arguments
y_pred |
Estimated target values vector |
y_true |
Ground truth (correct) target values vector |
Value
Root Mean Squared Logarithmic Error Loss
Examples
data(cars)
reg <- lm(log(dist) ~ log(speed), data = cars)
RMSLE(y_pred = exp(reg$fitted.values), y_true = cars$dist)
Root Mean Square Percentage Error Loss
Description
Compute the root mean squared percentage error regression loss.
Usage
RMSPE(y_pred, y_true)
Arguments
y_pred |
Estimated target values vector |
y_true |
Ground truth (correct) target values vector |
Value
Root Mean Squared Percentage Error Loss
Examples
data(cars)
reg <- lm(log(dist) ~ log(speed), data = cars)
RMSPE(y_pred = exp(reg$fitted.values), y_true = cars$dist)
Root Relative Squared Error Loss
Description
Compute the root relative squared error regression loss.
Usage
RRSE(y_pred, y_true)
Arguments
y_pred |
Estimated target values vector |
y_true |
Ground truth (correct) target values vector |
Value
Root Relative Squared Error Loss
Examples
data(cars)
reg <- lm(log(dist) ~ log(speed), data = cars)
RRSE(y_pred = exp(reg$fitted.values), y_true = cars$dist)
Recall
Description
Compute the recall score.
Usage
Recall(y_true, y_pred, positive = NULL)
Arguments
y_true |
Ground truth (correct) 0-1 labels vector |
y_pred |
Predicted labels vector, as returned by a classifier |
positive |
An optional character string for the factor level that corresponds to a "positive" result |
Value
Recall
Examples
data(cars)
logreg <- glm(formula = vs ~ hp + wt,
family = binomial(link = "logit"), data = mtcars)
pred <- ifelse(logreg$fitted.values < 0.5, 0, 1)
Recall(y_pred = pred, y_true = mtcars$vs, positive = "0")
Recall(y_pred = pred, y_true = mtcars$vs, positive = "1")
Sensitivity
Description
Compute the sensitivity score.
Usage
Sensitivity(y_true, y_pred, positive = NULL)
Arguments
y_true |
Ground truth (correct) 0-1 labels vector |
y_pred |
Predicted labels vector, as returned by a classifier |
positive |
An optional character string for the factor level that corresponds to a "positive" result |
Value
Sensitivity
Examples
data(cars)
logreg <- glm(formula = vs ~ hp + wt,
family = binomial(link = "logit"), data = mtcars)
pred <- ifelse(logreg$fitted.values < 0.5, 0, 1)
Sensitivity(y_pred = pred, y_true = mtcars$vs, positive = "0")
Sensitivity(y_pred = pred, y_true = mtcars$vs, positive = "1")
Specificity
Description
Compute the specificity score.
Usage
Specificity(y_true, y_pred, positive = NULL)
Arguments
y_true |
Ground truth (correct) 0-1 labels vector |
y_pred |
Predicted labels vector, as returned by a classifier |
positive |
An optional character string for the factor level that corresponds to a "positive" result |
Value
Specificity
Examples
data(cars)
logreg <- glm(formula = vs ~ hp + wt,
family = binomial(link = "logit"), data = mtcars)
pred <- ifelse(logreg$fitted.values < 0.5, 0, 1)
Specificity(y_pred = pred, y_true = mtcars$vs, positive = "0")
Specificity(y_pred = pred, y_true = mtcars$vs, positive = "1")
Normalized Zero-One Loss (Classification Error Loss)
Description
Compute the normalized zero-one classification loss.
Usage
ZeroOneLoss(y_pred, y_true)
Arguments
y_pred |
Predicted labels vector, as returned by a classifier |
y_true |
Ground truth (correct) 0-1 labels vector |
Value
Zero-One Loss
Examples
data(cars)
logreg <- glm(formula = vs ~ hp + wt,
family = binomial(link = "logit"), data = mtcars)
pred <- ifelse(logreg$fitted.values < 0.5, 0, 1)
ZeroOneLoss(y_pred = pred, y_true = mtcars$vs)