机器学习 - 性能指标



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

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

  • 准确率 - 准确率是最基本的性能指标之一,它衡量的是数据集中正确分类的实例的比例。其计算方法是将正确分类的实例数除以数据集中实例的总数。

  • 精确率 - 精确率衡量的是所有预测为正的实例中真阳性实例的比例。其计算方法是将真阳性实例数除以真阳性实例数和假阳性实例数之和。

  • 召回率 - 召回率衡量的是所有实际为正的实例中真阳性实例的比例。其计算方法是将真阳性实例数除以真阳性实例数和假阴性实例数之和。

  • F1分数 - F1分数是精确率和召回率的调和平均数。它是一个平衡的度量,同时考虑了精确率和召回率。其计算方法为 2 * (精确率 × 召回率) / (精确率 + 召回率)。

  • ROC AUC分数 - ROC AUC(接收者操作特征曲线下面积)分数是衡量分类器区分正负实例能力的指标。其计算方法是绘制不同分类阈值下的真阳性率与假阳性率,并计算曲线下面积。

  • 混淆矩阵 - 混淆矩阵是一个用于评估分类模型性能的表格。它显示了数据集中每个类别中的真阳性、真阴性、假阳性、假阴性的数量。

示例

这是一个计算二元分类问题准确率、精确率、召回率和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)

输出

执行此代码时,将产生以下输出:

Accuracy: 1.0
Precision: 1.0
Recall: 1.0
F1 Score: 1.0
广告