关于CV中对检测结果的评价指标TP、TN、FP、FN解释说明

转自:https://blog.csdn.net/guyubit/article/details/52276013

首先这几个术语会高频率得出现在论文的实验部分,它是对实验结果的描述,首先我想先解释这几个缩写的含义:
precesion:查准率,即在检索后返回的结果中,真正正确的个数占整个结果的比例。
recall:查全率,即在检索结果中真正正确的个数 占整个数据集(检索到的和未检索到的)中真正正确个数的比例。
FN:False Negative,被判定为负样本,但事实上是正样本。
FP:False Positive,被判定为正样本,但事实上是负样本。
TN:True Negative,被判定为负样本,事实上也是负样本。
TP:True Positive,被判定为正样本,事实上也是证样本。
这里的正样本和负样本与检索的关系就是:你认为为正样本的应该都出现在检索结果中,而你认为为负样本的应该不出现在检索结果中,但是你认为的和事实上的会有不一样。

这里的四个缩写曾经一度让我很难记住,经过细想,发现这样比较好记忆:把缩写分为两个部分,第一个字母(F,T)和第二个字母(P,N)。首先搞清楚第二个字母,即它是你认为该样本的归属应该是怎样(Positive or Negative);第一个字母即是对你的判断进行的评价(False or True)。这里也许中文可能会有不好理解的地方,所以我想用英文来描述,可能更清晰:第二个字母:What's your judgement about the sample?;第一个字母:Is your judgement right(true) or not(false)?

那么有:
precesion = TP/(TP+FP) 即,检索结果中,都是你认为应该为正的样本(第二个字母都是P),但是其中有你判断正确的和判断错误的(第一个字母有T ,F)。

recall = TP/(TP+FN)即,检索结果中,你判断为正的样本也确实为正的,以及那些没在检索结果中被你判断为负但是事实上是正的(FN)。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,针对您的问题,我来解答。首先,SVM使用一对一策略进行多分类,就是将每两个类别之间训练一个SVM模型,然后利用这些模型进行分类预测。而OneVsOneClassifier是一种基于一对一策略的多分类方法,它将每两个类别之间训练一个SVM模型,并将所有这些SVM模型组合起来进行分类预测。decision_function_shape参数指定决策函数的类型,'ovo'表示采用一对一策略,'ovr'表示采用一对多策略。 接下来,网格搜索参数寻优是指在一定范围内对SVM的参数进行组合,然后训练多个模型,最终选取表现最好的模型作为最终模型。绘制混淆矩阵是用于评估分类器性能的一种矩阵,其行表示实际类别,列表示预测类别。tn表示真实为负类别,预测为负类别的数量;fp表示真实为负类别,预测为正类别的数量;fn表示真实为正类别,预测为负类别的数量;tp表示真实为正类别,预测为正类别的数量。 关于输出tn, fp, fn, tp,需要先加载相关的库和数据,然后利用训练好的SVM模型进行预测,最后计算混淆矩阵即可。这里给出一个示例代码: ```python from sklearn import svm, datasets from sklearn.model_selection import train_test_split, GridSearchCV from sklearn.metrics import confusion_matrix from sklearn.multiclass import OneVsOneClassifier # 加载数据 iris = datasets.load_iris() X = iris.data y = iris.target # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0) # 定义SVM模型和参数范围 model = svm.SVC(decision_function_shape='ovo') parameters = {'kernel': ('linear', 'rbf'), 'C': [1, 10]} # 网格搜索参数寻优 clf = GridSearchCV(model, parameters, cv=5) clf.fit(X_train, y_train) # 输出最优参数和得分 print('Best parameters:', clf.best_params_) print('Best score:', clf.best_score_) # 训练最优模型 model_best = clf.best_estimator_ model_best.fit(X_train, y_train) # 预测测试集 y_pred = model_best.predict(X_test) # 计算混淆矩阵 confusion = confusion_matrix(y_test, y_pred) # 输出tn, fp, fn, tp tn, fp, fn, tp = confusion.ravel() print('tn:', tn) print('fp:', fp) print('fn:', fn) print('tp:', tp) ``` 需要注意的是,这里的数据集是鸢尾花数据集,SVM模型采用一对一策略,决策函数为ovo,使用网格搜索寻找最优参数,您需要根据具体情况进行调整。另外,这里的输出结果仅仅是示例,您还需要根据实际情况进行处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值