geekdoc-python-zh/docs/askpython/calculating-precision.md

4.0 KiB
Raw Permalink Blame History

Python 中的计算精度——分类误差度量

原文:https://www.askpython.com/python/examples/calculating-precision

读者朋友们,你们好!在本文中,我们将详细关注 Python 中的计算精度。

所以,让我们开始吧!!🙂



精确度——分类误差指标

在深入研究分类错误度量的概念具体来说,精度之前,让我们先了解一下机器学习中的错误度量是什么。

误差指标是一组指标,使我们能够评估模型在准确性方面的效率,并让我们估计最适合我们的问题陈述的模型。

根据机器学习算法的类型,有各种类型的误差度量。

对于回归算法,我们有以下可用于评估的指标-

  1. R 方
  2. MAPE
  3. MSE
  4. 调整后的 R 方等。

对于分类算法,我们可以利用以下指标-

精度帮助我们估计被预测为正的和实际上为正的正数据值的百分比。

精度公式:

精度=真阳性/(真阳性+假阳性)

**注—**所谓真正值,是指预测为正值且实际为正值的值。而假正值是预测为正值但实际上为负值的值。

精度分值的范围分别为 0.0 到 1.0。

现在,让我们关注 Python 中数据集的精度误差度量的实现。


Python 中计算数据集精度的步骤

首先,我们将利用银行贷款数据集进行演示。

你可以在这里找到数据集

  1. 最初,我们使用 read_csv()函数将数据集加载到 Python 环境中。
  2. 使用缺失值分析异常值检测技术进行数据分析和清理。
  3. 使用 train_test_split()函数将数据集拆分为训练数据和测试数据。
  4. 在应用模型之前,我们需要定义用于评估模型的误差度量。我们利用混淆矩阵来获得真阳性和假阳性分数。此外,我们已经应用了上面讨论的公式来获得精度分数。
  5. 最后,我们在数据集上应用决策树算法,并用精度分数测试其效率。

你可以在下面找到完整的代码

import pandas as pd
import numpy as np
loan = pd.read_csv("bank-loan.csv") # dataset

from sklearn.model_selection import train_test_split 
X = loan.drop(['default'],axis=1) 
Y = loan['default'].astype(str)

# Error metrics -- Confusion matrix\FPR\FNR\f1 score\
def err_metric(CM): 

    TN = CM.iloc[0,0]
    FN = CM.iloc[1,0]
    TP = CM.iloc[1,1]
    FP = CM.iloc[0,1]
    precision =(TP)/(TP+FP)
    accuracy_model  =(TP+TN)/(TP+TN+FP+FN)
    recall_score  =(TP)/(TP+FN)
    specificity_value =(TN)/(TN + FP)

    False_positive_rate =(FP)/(FP+TN)
    False_negative_rate =(FN)/(FN+TP)
    f1_score =2*(( precision * recall_score)/( precision + recall_score))
    print("Precision value of the model: ",precision)
    print("Accuracy of the model: ",accuracy_model)

#Decision Trees
decision = DecisionTreeClassifier(max_depth= 6,class_weight='balanced' ,random_state =0).fit(X_train,Y_train)
target = decision.predict(X_test)
targetclass_prob = decision.predict_proba(X_test)[:, 1]
confusion_matrix = pd.crosstab(Y_test,target)
err_metric(confusion_matrix)

输出—

因此,精度分数为 0.25,这意味着总预测正值的 25%实际上是正的。

Precision value of the model:  0.25
Accuracy of the model:  0.6028368794326241


结论

到此,我们就结束了这个话题。如果你遇到任何问题,欢迎在下面评论。

更多与 Python 编程相关的帖子,请继续关注我们。

在那之前,学习愉快!!🙂