欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 模型(分类模型、回归模型、聚类模型)的评分指标

模型(分类模型、回归模型、聚类模型)的评分指标

2025/3/20 14:47:21 来源:https://blog.csdn.net/jdjhcn/article/details/146230276  浏览:    关键词:模型(分类模型、回归模型、聚类模型)的评分指标

一、分类模型评分指标

1、混淆矩阵参数解释


真正例(TP):定义为实际正例被正确预测为正例的样本数

假正例(FP):定义为实际负例被错误预测为正例的样本数,反映模型误报的数量,计算方式为错误预测为 1 的样本数。

真负例(TN):定义为实际负例被正确预测为负例的样本数,反映模型识别负例的能力,计算方式为正确预测为 0 的样本数。

假负例(FN):定义为实际正例被错误预测为负例的样本数,反映模型漏报的数量,计算方式为错误预测为 0 的样本数。,反映模型识别正例的能力,计算方式为正确预测为 1 的样本数。

TP(True Positive):5

FP(False Positive):4

FN(False Negative):2

TN(True Negative):4

为了方便记忆,我这样总结,预测值为正例(也就是上面预测值为1)则Positive即可以用P来表示,预测值为负例(也就是上面预测值为0)则negivate既可以用N来表示,前一个字母如果预测正确则为T(也就是True),如果预测错误则为F(False)。

那么我们为什么要计算混淆矩阵?当我们知道了混淆矩阵中的每一个值得时候,我们就可以计算模型正例或者负例的准确率、精确率以及召回率。

2、Accuracy准确率


准确率:预测正确的数据(即TP和TN)/所以被预测的数据(TP、TN、FP、FN)

accuracy=(TP+TN)/(TP+TN+FP+FN)

3、precision精确率


精确率:预测为正例且预测正确的值(TP)占预测为为正例的所有值(TP、FP)的占比(预测值为真且预测正确占比)

precision=TP/(TP+FP)

4、Recall(召回率)


召回率:真实值为正例且预测预测正确的值(TP)占所有真实值为正例(TP、FN)的占比;(真实值为真,且被预测为真的概率)

(场景代入:如果有一群人中有几个坏人,那么召回率就是这个人使坏人,且被找出来的概率,这种情况下我们期望的是坏人被找出来的概率越大越好,即使它把好人预测成坏人也可以(宁可错杀也不放过),因为目的就是揪出坏人)

recall=TP/(TP+FN)

上图中的support,是指各类别的数据有多少个,以为2的数据为例support为42,recall有95%被预测正确。

5、F1-Score(F1值)

(F1是将精确率与召回率放在一起进行考虑)
F1=2*(precision*recall)/(precision+recall)

6、AUC曲线

        (1)AUC曲线是分类模型的性能指标。

        当涉及到分类问题时,我们可以依靠AUC-ROC曲线,当我们需要检查或可视化多类分类问题的性能时,我们使用AUC(曲线下面积)ROC(接收器工作特性曲线)。它是检查任何分类模型性能的最重要的评估指标之一。

        AUC-ROC曲线是各阈值设置下分类问题的性能度量。

TPR:真实值为1的召回率(本质仍为召回率)

FPR:真实值为0但预测值为1

TPR/recall=TP/(TP+FN)

FPR=1-TPR=FP/(TN+FP)

        每个FPR对应一个TPR,针对一个一般只有一对值不能满足绘制曲线的目的,此时,我们可以设置一系列的阈值,那么我们就能得到一连串的TPR和FPR的值,我们就可以画出一条关于TPR和FPR的曲线。

        面积越大,表示模型越好,最理想的情况是无论TPR的值为多少,TPR值最大都为1,这时AUC的面积为1x1=1,但是实际上,模型的召回率的值不会达到那么高,真实场景下都为与上面类似的曲线。

        如果模型的面积高于斜线则模型的效果还不错,但是若低于斜线,就说明模型效果不够好,斜线下的面积是0.5,即面积大于0.5,则模型还不错,若小于0.5,则模型有点差。

(2)AUC曲线的使用

上面的曲线我们称之为ROC曲线,曲线下的面积我们则称之为AUC。

1、导入必要的依赖库

import pandas as pd
import openpyxl
import numpy as np

2、绘制混淆矩阵(方便观察)

def cm_plot(y,yp):from sklearn.metrics import confusion_matriximport matplotlib.pyplot as pltcm=confusion_matrix(y,yp)plt.matshow(cm,cmap=plt.cm.Blues)plt.colorbar()for x in range(len(cm)):for y in range(len(cm)):plt.annotate(cm[x,y],xy=(y,x),horizontalalignment='center',verticalalignment='center')plt.ylabel('True label')plt.xlabel('Predicted label')return plt

3、数据读取及预处理

datas=pd.read_excel("./data/电信客户流失数据.xlsx")data=datas.iloc[:,:-1]
target=datas.iloc[:,-1]

4、数据集的切分

from sklearn.model_selection import train_test_splitdata_train,data_test,target_train,target_test= \train_test_split(data,target,test_size=0.2,random_state=0)

5、导入决策树分类模型并训练数据

from sklearn import tree
dtre = tree.DecisionTreeClassifier(criterion='gini',max_depth=14,max_leaf_nodes=85,random_state=1)
dtre.fit(data_train,target_train)

6、查看模型的性能指标

from sklearn import metrics
# 训练集自测模型
# 训练集与预测值
train_predicted=dtre.predict(data_train)
print(metrics.classification_report(target_train,train_predicted))
# cm_plot(target_train,train_predicted).show()# 测试集自测模型
# 测试集与预测值
test_predicted=dtre.predict(data_test)
print(metrics.classification_report(target_test,test_predicted))
# cm_plot(target_test,test_predicted).show()

7、AUC值的计算

(需要使用到roc_auc_score()这个函数传入的参数是测试集标签值和对测试集的预测标签)

y_pred_proba = dtre.predict_proba(data_test)
a = y_pred_proba[:,1]
auc_result = metrics.roc_auc_score(target_test,a)

8、 数据可视化,绘制AUC-ROC曲线

(roc_curve函数)

import matplotlib.pyplot as plt
from sklearn.metrics import roc_curve#roc_curve()有三个返回值,分别是FPR、TPR和阈值
fpr,tpr,thresholds = roc_curve(target_test,a)#绘制ROC曲线
plt.figure()
#绘制ROC曲线,curve(area=%0.2f)'%auc_result这个是将计算出的AUC的值传递给前面的%0.2f这个占位符
plt.plot(fpr,tpr,color='darkorange',lw=2,label='ROC curve(area=%0.2f)'%auc_result)[0,1],两个分别是指x轴和y轴上的点
plt.plot([0,1],[0,1],color='navy',lw=2,linestyle='--')
# 用函数绘制一条从点(0,0)到(1,1)的直线#指示刻度的
plt.xlim([0.0,1.0])
plt.ylim([0.0,1.05])#指示x轴或y轴的标签
plt.xlabel('False Position Rate')
plt.ylabel('True Position Rate')#标题
plt.title('Receiver Operating Characteristic')
plt.legend()
plt.show()

二、回归模型

1、R方

R方------决定系数/相关系数

1、相关系数计算方法及概念

2、处于不同范围区间的相关系数值,与相关性的关系

3、在线性回归中,R方的值与模型好坏之间的联系,以及R方的计算方式。

分类模型和回归模型的评价机制是不同的,回归使用R方评价

三、聚类模型

1、轮廓系数

(1)轮廓系数(这里是计算一个点的轮廓系数,每个点的轮廓系数都可以求):
  • a(i):样本 i 到其所在簇内其他所有样本的平均距离(簇内紧凑度)。a(i) 越小,说明样本在簇内越紧密。
  • b(i):样本 i 到其最近邻簇(非当前簇)中所有样本的平均距离(簇间分离度)。b(i)越大,说明样本与其他簇的分离性越好。
(2)取值范围与含义:
如果a(i)
如果a(i)=b(i),这个点位于两个聚类区域的中间,这时这个点到两个聚类的所有距离的平均值相等。
如果a(i)>b(i),说明这个点被分错了。
1、轮廓系数范围在[-1,1]之间。该值越大,越合理。
2、si接近1,则说明样本i聚类合理
3、si接近-1,则说明样本i更应分类到另外的簇
4、若si近似为0,则说明样本i在两个簇的边界上。

(3)整体轮廓系数

整个数据集的轮廓系数为所有样本轮廓系数的平均值:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com