使用 Python 和 Scikit-Learn 进行模型性能度量
首先,在使用 Scikit-Learn 进行模型训练时,需要将数据集分成训练集和测试集。训练集用于训练模型,测试集用于测试模型性能。
以下是将数据集分为训练集和测试集的代码示例:
from sklearn.model_selection import train_test_split # 将数据集分割成训练集和测试集,其中 test_size 表示测试集占总数据集的比例 # random_state 参数表示随机种子,确保每次分割的结果相同 X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.3, random_state=42)
其中,X 表示特征数据集,Y 表示标签数据集。
接下来,我们可以使用 Scikit-Learn 提供的各种评估指标来衡量模型性能。以下是一些常用的指标:
- 准确率(Accuracy)
准确率是分类模型中最常用的评估指标,它可以简单地表示模型正确分类的样本数与总样本数的比例。
以下是准确率的代码示例:
from sklearn.metrics import accuracy_score # 计算在测试集上的准确率 y_pred = model.predict(X_test) accuracy = accuracy_score(Y_test, y_pred) print("Accuracy:", accuracy)
- 精确率 (Precision)
精确率是指在预测为正例的样本中,真正为正例的样本所占的比例。
以下是精确率的代码示例:
from sklearn.metrics import precision_score # 计算在测试集上的精确率 y_pred = model.predict(X_test) precision = precision_score(Y_test, y_pred) print("Precision:", precision)
- 召回率 (Recall)
召回率是指在真实为正例的样本中,被正确预测为正例的样本所占的比例。
以下是召回率的代码示例:
from sklearn.metrics import recall_score # 计算在测试集上的召回率 y_pred = model.predict(X_test) recall = recall_score(Y_test, y_pred) print("Recall:", recall)
- F1 分数 (F1-Score)
F1 分数是精确率和召回率的调和平均值,它可以综合评估模型的性能。
以下是 F1 分数的代码示例:
from sklearn.metrics import f1_score # 计算在测试集上的 F1 分数 y_pred = model.predict(X_test) f1 = f1_score(Y_test, y_pred) print("F1 Score:", f1)
除了上述指标之外,还有一些其他的评估指标,例如 AUC、ROC 曲线等。根据模型和数据集的不同,选择不同的指标进行评估。
相关文章