概念:模型正确预测的样本数量与总样本数量的比例。
公式:Accuracy = (TP + TN) / (TP + TN + FP + FN)
TP (True Positives):正确预测为正例的样本数。即模型正确地将正例判定为正例。
TN (True Negatives):正确预测为负例的样本数。即模型正确地将负例判定为负例。
FP (False Positives):错误预测为正例的样本数。即模型错误地将负例判定为正例。
FN (False Negatives):错误预测为负例的样本数。即模型错误地将正例判定为负例。
from sklearn.metrics import accuracy_score
y_true = [0, 1, 1, 0, 1, 0]
y_pred = [0, 1, 0, 0, 1, 1]
accuracy = accuracy_score(y_true, y_pred)
print("Accuracy:", accuracy)
概念:被模型正确分类为正例的样本数量与所有被模型分类为正例的样本数量的比例。
公式:Precision = TP / (TP + FP)
from sklearn.metrics import precision_score
precision = precision_score(y_true, y_pred)
print("Precision:", precision)
概念:在所有实际正例中,模型正确识别的比例。
公式:Recall = TP / (TP + FN)
from sklearn.metrics import recall_score
recall = recall_score(y_true, y_pred)
print("Recall:", recall)
概念:综合了模型的精确度和召回率,是一个更全面的指标。
公式:F1 Score = 2 * (Precision * Recall) / (Precision + Recall)
from sklearn.metrics import f1_score
f1 = f1_score(y_true, y_pred)
print("F1-Score:", f1)
这个指标通常不是用公式来计算的,而是通过代码中记录开始时间和结束时间,然后计算时间差来得出。
概念:衡量模型预测值与真实值之间的平均差异。是均方误差的平方根。
公式:RMSE = sqrt(MSE)
from sklearn.metrics import mean_squared_error
import numpy as np
y_true = np.array([3.0, 2.5, 4.8])
y_pred = np.array([2.8, 2.7, 4.5])
mse = mean_squared_error(y_true, y_pred)
rmse = np.sqrt(mse)
print("RMSE:", rmse)
概念:衡量模型预测值与真实值之间的平均绝对差异。
公式:MAE = (|y_true - y_pred|) / n
from sklearn.metrics import mean_absolute_error
mae = mean_absolute_error(y_true, y_pred)
print("MAE:", mae)
概念:衡量模型在预测概率时的准确性。适用于二分类问题的交叉熵损失为对数损失。
公式:Log-loss = - (y_true * log(y_pred) + (1 - y_true) * log(1 - y_pred))
from sklearn.metrics import log_loss
y_true = [0, 1, 1, 0]
y_pred = [0.2, 0.8, 0.7, 0.3]
logloss = log_loss(y_true, y_pred)
print("Log-loss:", logloss)