从结果数据帧生成分类精度矩阵

时间:2017-03-22 19:35:36

标签: python pandas classification

我正在尝试预测二进制分类。我有一个包含两列的Pandas DataFrame:一个是预测类中的成员资格,另一个是类中的实际成员资格。从这个DataFrame我想创建另一个表示我的预测准确性的DataFrame。我正在寻找一种干净的方法来做到这一点,不涉及连接字符串或类似的东西。

所需结果DataFrame:

    True_Actual False_Actual
True_Pred   6         1
False_Pred  1         2

示例输入DataFrame:

    MAHC_ACTUAL MAHC_PREDICT
1   True         True
2   True         True
3   False        True
4   True         True
5   True         True
6   True         False
7   False        False
8   True         True
9   False        False
10  True         True

1 个答案:

答案 0 :(得分:4)

最直接的方法是使用pandas.crosstab,它为您提供因子的频率表

pd.crosstab(df.MAHC_PREDICT.astype(str) + "_Pred", df.MAHC_ACTUAL.astype(str) + "_Actual")

enter image description here

为简单起见,如果列和索引名称不重要:

pd.crosstab(df.MAHC_PREDICT, df.MAHC_ACTUAL)

Yeilds:

MAHC_ACTUAL  False  True 
MAHC_PREDICT                    
False           126      2
True             13    113