分类评价模型-准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F值(F-Measure)

分类评价模型

混淆矩阵

在这里插入图片描述
模型评价标准:
TP: 将正类预测为正类数 40
FN: 将正类预测为负类数 20
FP: 将负类预测为正类数 10
TN: 将负类预测为负类数 30
准确率(accuracy) = 预测对的/所有 = (TP+TN)/(TP+FN+FP+TN) = 70%
精确率(precision) = TP/(TP+FP) =40)/(40+10)= 80% (40)/(40+10)=40/50
召回率(recall) = TP/(TP+FN) = 40/(40+20)=2/3
召回率与准确率成反比

准确率(正确率)=所有预测正确的样本/总的样本 (TP+TN)/总

精确率= 将正类预测为正类 / 所有预测为正类 TP/(TP+FP)

召回率 = 将正类预测为正类 / 所有正真的正类 TP/(TP+FN)

F值 = 精确率 * 召回率 * 2 / ( 精确率 + 召回率) (F 值即为精确率和召回率的调和平均值)
####################################################
举例:
所以推荐给你的猴子到底靠不靠谱呢,看看最终结果。
F=(2\times0.67\times0.4)\div(0.67+0.4)=0.5
结果就表明,推荐给你的猴子里,有50%是你想要的公猴子

F值(F-Measure)、AUC、ROC的理解
https://blog.csdn.net/u011630575/article/details/80250177
https://blog.csdn.net/swan777/article/details/90318390

# 라이브러리를 임포트합니다.
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification
​
# generate features matrix and target vector
# 创建特征矩阵和目标向量
X, y = make_classification(n_samples = 10000,
                           n_features = 3,
                           n_informative = 3,
                           n_redundant = 0,
                           n_classes = 2,
                           random_state = 1)# create logistic regression
# 创建逻辑回归对象
logit = LogisticRegression()# cross-validate model using accuracy
# 用准确率进行交叉验证  默认3折交叉验证
cross_val_score(logit, X, y, scoring="accuracy")
array([0.9555, 0.95  , 0.9585, 0.9555, 0.956 ])
# 使用精确度对模型进行交叉验证
# 使用精确度对模型进行交叉验证
cross_val_score(logit, X, y, scoring="precision")
array([0.95963673, 0.94820717, 0.9635996 , 0.96149949, 0.96060606])
使用召回率对模型进行交叉验证
# 使用召回率对模型进行交叉验证
cross_val_score(logit, X, y, scoring="recall")
array([0.951, 0.952, 0.953, 0.949, 0.951])
# f1 使用f1 对模型进行交叉验证
cross_val_score(logit, X, y, scoring="f1")
array([0.95166617, 0.95765275, 0.95558223])
计算准确率
# 直接计算 模型 准确率
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
​
# 创建训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X,
                                                    y,
                                                    test_size=0.1,
                                                    random_state=1)# 对测试集进行测试
y_hat = logit.fit(X_train, y_train).predict(X_test)# 计算准确率
accuracy_score(y_test, y_hat)
0.947
붙임
准确率和 精确率
from sklearn.model_selection import cross_validate
​
# 计算  准确率和 精确率
cross_validate(logit, X, y, scoring=["accuracy", "precision"])
{'fit_time': array([0.01994562, 0.01994658, 0.01196933, 0.0129683 , 0.01396203]),
 'score_time': array([0.00199556, 0.00199533, 0.00298905, 0.00398493, 0.00199461]),
 'test_accuracy': array([0.9555, 0.95  , 0.9585, 0.9555, 0.956 ]),
 'test_precision': array([0.95963673, 0.94820717, 0.9635996 , 0.96149949, 0.96060606])}
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值