机器学习中精确率(precision)、召回率(recall)和准确率(accuracy)的理解

注:网上很多讲解都瞎讲,把precision和accuracy概念混淆,误人子弟。

1.精确率(precision)

    就precision而言有很多版本,各种说法不一,有精确率也有正确率更有甚者把准确率也搞出来了实在受不了,反正咱们看英文precision。

    precision是表示预测为正样本中,被实际为正样本的比例。可以看出precision是考虑的正样本被预测正确的比例.根据图1-1可得其计算公式为:P = TP / (TP + FP)

2. 召回率(recall)

    召回率是表示实际为正样本中,预测为正样本的比例。可以看出,召回率考虑的是正样本的召回的比例.根据图1-1可得其计算公式为:P = TP / (TP + FN)

3.准确率(accuracy)

    准确率表示所有的预测样本中,预测正确的比例.根据图1-1可得其计算公式为:A = (TP + TN) / (TP + FN + FP + TN)

总结:精确率(accuracy)和召回率(recall)计算公式的分子都是TP也就是正样本被预测为正样本的数量,可知其为正样本的精确率和正样本的召回率.而准确率(accuracy)主要表征的是整体预测正确的比例.

 

                                                          

 图1-1

图1-1参数描述:TP(True Positive)表示实际为正样本被预测为正样本的数量;FN(False Negative)表示实际为正样本却被预测为负样本的数量;FP(False Positive)表示实际为负样本却被预测为正样本的数量;TN(True Negative)表示实际为负样本预测也为负样本的数量。可以得出(TP + FN)是全部实际的正样本数,而(TP + FP)是所有预测为正样本的数量。

要评估XGBoost模型的精度,你可以使用一些常见的评估指标,例如准确率精确召回率F1分数。下面是一个示例代码,展示了如何使用这些指标来评估模型的性能: ```python import xgboost as xgb from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score import pandas as pd # 加载训练好的模型 model = xgb.Booster(model_file='path_to_model_file') # 加载测试数据 test_data = pd.read_csv('path_to_test_data') # 分离特征标签 X_test = test_data.drop('label', axis=1) y_test = test_data['label'] # 进行预测 preds = model.predict(xgb.DMatrix(X_test)) # 将预测结果转换为分类标签(可选) pred_labels = [round(value) for value in preds] # 计算准确率 accuracy = accuracy_score(y_test, pred_labels) print("准确率:", accuracy) # 计算精确 precision = precision_score(y_test, pred_labels) print("精确:", precision) # 计算召回率 recall = recall_score(y_test, pred_labels) print("召回率:", recall) # 计算F1分数 f1 = f1_score(y_test, pred_labels) print("F1分数:", f1) ``` 在这个示例中,你需要将`path_to_model_file`替换为你训练好的模型文件的路径,将`path_to_test_data`替换为包含测试数据的CSV文件的路径。然后,你需要将特征标签分离,并使用模型进行预测。可以选择将预测结果转换为分类标签,然后使用各种评估指标计算模型的性能。 请确保在运行代码之前已经安装了XGBoost库scikit-learn库,并且已经训练好了模型准备好了测试数据。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值