Machine Learning 简明教程

Machine Learning - Performance Metrics

机器学习中的性能指标用于评估机器学习模型的性能。这些指标提供量化措施,以评估模型的执行情况以及比较不同模型的性能。性能指标很重要,因为它们帮助我们了解模型的执行情况以及它是否满足我们的要求。通过这种方式,我们可以就是否使用特定模型做出明智的决定。

机器学习中可以使用许多性能指标,具体取决于所解决的问题的类型以及问题的具体要求。一些常见的性能指标包括 −

  1. Accuracy − 准确率是最基本的一种性能指标,它测量数据集中正确分类的实例的比例。它被计算为正确分类的实例数除以数据集中实例总数。

  2. Precision − 精确率测量所有预测为正例的实例中真阳性实例的比例。它被计算为真阳性实例数除以真阳性和假阳性实例之和。

  3. Recall − 召回率测量所有实际正例实例中真阳性实例的比例。它被计算为真阳性实例数除以真阳性和假阴性实例之和。

  4. F1 Score − F1 值是精确率和召回率的调和均值。它是一个既考虑精确率又考虑召回率的平衡指标。它被计算为 2 *(精确率 × 召回率)/(精确率 + 召回率)。

  5. ROC AUC Score − ROC AUC(接收器操作特性曲线下面积)值是衡量分类器区分正例和反例的能力的一种指标。它通过绘制不同分类阈值下真阳性率和假阳性率,并计算曲线下的面积来计算。

  6. 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)

Output

执行此代码时,将生成以下输出 −

Accuracy: 1.0
Precision: 1.0
Recall: 1.0
F1 Score: 1.0