有人可以解释关于二次 Kappa 度量/cohen kappa 度量的详细解释,并在 Python 中实现
什么是 cohen kappa 度量,在 Python 中的实现?
sklearn.metrics.cohen_kappa_score当权重设置为“二次”时,二次 Kappa 度量与 Sci-kit learn @ 中的 cohen kappa 度量相同。
二次加权 kappa,衡量两个评级之间的一致性。该指标通常从 0(评估者之间的随机一致性)到 1(评估者之间的完全一致性)变化。如果评分者之间的一致性低于偶然预期,则该指标可能会低于 0。二次加权 kappa 是在预期/已知分数与预测分数之间计算的。
结果有 5 个可能的等级,0、1、2、3、4。二次加权kappa计算如下。首先,构造一个 N x N 直方图矩阵 O,使得 Oi,j 对应于评分为 i(实际)并收到预测评分 j 的采用记录的数量。N×N 权重矩阵 w 是根据实际评分和预测评分之间的差异计算得出的。
假设评级分数之间没有相关性,计算预期评级的 N×N 直方图矩阵 E。这计算为实际评级的评级直方图向量和预测评级的评级直方图向量之间的外积,归一化使得 E 和 O 具有相同的总和。
根据这三个矩阵,计算二次加权 kappa。
将公式分解为多个部分
加权 Kappa 指标的 5 步细分
- 首先,在预测评分和实际评分之间创建一个多类混淆矩阵 O。
- 其次,构造一个权重矩阵 w 来计算实际评分和预测评分之间的权重。
- 第三,计算 preds 和 actuals 中每个评级的 value_counts()。
- 四、计算E,即两个value_count向量的外积
- 五、归一化E和O矩阵
根据公式计算加权 kappa
每个步骤解释
第 1 步:在第 1 步中,我们将计算预测值和实际值之间的混淆矩阵。这是一个很好的资源,可以了解更多关于混淆矩阵的信息。
Step-2:在 Step-2 下,在 step-2 下,每个元素都被加权。与实际情况更接近的预测相比,离实际情况较远的预测会被标记为严厉。如果我们的预测为 5 且实际为 3,则与相同情况下的预测为 4 相比,我们将获得更少的分数。
第 3 步:我们创建两个向量,一个用于预测,一个用于实际,它告诉我们每个评分在两个向量中存在多少个值。
步骤 4: E 是预期矩阵,它是步骤 3 中计算的两个向量的外积。
步骤 5:将两个矩阵归一化以具有相同的总和。由于最容易使总和为“1”,因此我们只需将每个矩阵除以其总和即可对数据进行归一化。
Step-6:计算加权 Kappa 的分子和分母,并将加权 Kappa 度量返回为 1-(num/den)