Machine Learning 简明教程
Machine Learning - Performance Metrics
机器学习中的性能指标用于评估机器学习模型的性能。这些指标提供量化措施,以评估模型的执行情况以及比较不同模型的性能。性能指标很重要,因为它们帮助我们了解模型的执行情况以及它是否满足我们的要求。通过这种方式,我们可以就是否使用特定模型做出明智的决定。
机器学习中可以使用许多性能指标,具体取决于所解决的问题的类型以及问题的具体要求。一些常见的性能指标包括 −
-
Accuracy − 准确率是最基本的一种性能指标,它测量数据集中正确分类的实例的比例。它被计算为正确分类的实例数除以数据集中实例总数。
-
Precision − 精确率测量所有预测为正例的实例中真阳性实例的比例。它被计算为真阳性实例数除以真阳性和假阳性实例之和。
-
Recall − 召回率测量所有实际正例实例中真阳性实例的比例。它被计算为真阳性实例数除以真阳性和假阴性实例之和。
-
F1 Score − F1 值是精确率和召回率的调和均值。它是一个既考虑精确率又考虑召回率的平衡指标。它被计算为 2 *(精确率 × 召回率)/(精确率 + 召回率)。
-
ROC AUC Score − ROC AUC(接收器操作特性曲线下面积)值是衡量分类器区分正例和反例的能力的一种指标。它通过绘制不同分类阈值下真阳性率和假阳性率,并计算曲线下的面积来计算。
-
Confusion Matrix − 混淆矩阵是用于评估分类模型性能的一张表。它显示了数据集中每类真阳性、真阴性、假阳性和假阴性的数量。
Example
以下是用于计算二进制分类问题的准确率、精确率、召回率和 F1 值的示例代码片段 −
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
# Load the iris dataset
iris = load_iris()
X = iris.data
y = iris.target
# Split the dataset into training and test sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Train a logistic regression model on the training set
model = LogisticRegression()
model.fit(X_train, y_train)
# Make predictions on the test set
y_pred = model.predict(X_test)
# Compute performance metrics
accuracy = accuracy_score(y_test, y_pred)
precision = precision_score(y_test, y_pred, average='macro')
recall = recall_score(y_test, y_pred, average='macro')
f1 = f1_score(y_test, y_pred, average='macro')
# Print the performance metrics
print("Accuracy:", accuracy)
print("Precision:", precision)
print("Recall:", recall)
print("F1 Score:", f1)