zl程序教程

您现在的位置是:首页 >  其他

当前栏目

[数学理论] 混淆矩阵

2023-04-18 12:40:15 时间
转载于http://wuguangbin1230.blog.163.com/blog/static/61529835201522905624494/

 混淆矩阵(Confusion Matrix):

       在人工智能中,混淆矩阵(confusion matrix)是可视化工具,特别用于监督学习,在无监督学习一般叫做匹配矩阵。

       在图像精度评价中,主要用于比较分类结果和地表真实信息,可以把分类结果的精度显示在一个混淆矩阵里面。混淆矩阵是通过将每个地表真实像元的位置和分类与分类图象中的相应位置和分类像比较计算的。混淆矩阵的每一列代表了地面参考验证信息,每一列中的数值等于地表真实像元在分类图象中对应于相应类别的数量;混淆矩阵的每一行代表了遥感数据的分类信息,每一行中的数值等于遥感分类像元在地表真实像元相应类别中的数量。

如有150个样本数据,这些数据分成3类,每类50个。分类结束后得到的混淆矩阵为: 


类1

类2

类3

类1 43 5 2
类2 2 45 3
类3 0 1 49

       每一行之和为50,表示50个样本,

       第一行说明类1的50个样本有43个分类正确,5个错分为类2,2个错分为类3

 

关于混淆矩阵

混淆矩阵是用来反映某一个分类模型的分类结果的,其中行代表的是真实的类,列代表的是模型的分类。

如下图,模型(a)中

数据集的真实情况是:

a类有100个,b类有60个,c类有40个。

模型的结果为:

被分为a类的有120个,被分为b类的有60个,被分为c类的有20个。

每个行列的含义是:

第一行:a类的100个实例中,有88个被分为a类,有10个被分为b类,有2个被分为c类。

第二行:b类的60个实例中,有14个被分为a类,有40个被分为b类,有6个被分为c类。

其余的以此类推。

这样一来每个混淆矩阵的主对角线就是被正确分类的实例,如884012

 

例如下面的题:


共和党

民主党

无党派

共和党

42

2

1

民主党

5

40

3

无党派

0

3

4

(1)       分类的正确率和错误率分别是多少?

正确率:(42+40+4/42+2+1+5+40+3+0+3+4=86/ 100 = 86%

错误率:1-86%=14%

(2)   参议院中分别有几名民主党、几名共和党,几名无党派议员?

民主:5+40+3=48

共和:42+2+1=45

无党:0+3+4=7

(3)   有几名共和党人士被分类到民主党?有几名无党派人士被分类到共和党?

2个(第“共和党”行第“民主党”列)。

0个(第“无党派”行第“共和党”列)。

ü关于lift

lift值的应用:举例来说,如果一个公司对某一个群体进行发传单宣传。假设有10000人,其中响应(做出回应)的人有1000人,现在构造一个模型,这个模型的执行结果是,选出来4000人,这4000人中有800人是响应(做出回应)的。这样:

最初的比例是:1000/ 10000 = 0.1

模型计算后的比例为:800/ 4000 = 0.5

那么lift值为:lift= 0.5 / 0.1 = 5

Lift值是衡量模型好坏的一个指标,其含义是人群响应比提高的倍数。

例如下面的题:

考虑下面混淆矩阵,分别计算模型X与模型YLift,比较哪个模型更好?为什么?

模型X

计算接受

计算拒绝

    模型Y

计算接受

计算拒绝

接受

46

54

     接受

45

55

拒绝

2245

7655

     拒绝

1955

7945

思考方向:Lift的值是“模型计算后的响应比例”和“计算前的响应比例”的比值,所以只要计算前后的响应比例就可以了。

解:

对于模型X

计算前的响应比例是:(46+54/46+54+2245+7655=100/ 10000 = 0.01

计算后的响应比例为:46/2245+46=0.0200786 = 0.02(使用的是计算接受的一列)

lift值为:Lift(X)=0.02/ 0.01 = 2

同理,对于模型YLift值为:

Lift(Y)  =  [45/ (45+1955)]  /  [(45+55) / (45+55+1955+7945)]

=  0.0225 / 0.01

=  2.25

因为Lift(X) < Lift(Y)

所以模型Y比模型X好。