python教程—如何用Python编写混淆矩阵?-Python实用宝典

python教程—如何用Python编写混淆矩阵?

我用Python编写了一个混淆矩阵计算代码:prob_arr是一个数组,我的分类代码返回了这个数组,样本数组是这样的:

我用Python编写了一个混淆矩阵计算代码:

    def conf_mat(prob_arr, input_arr): # confusion matrix conf_arr = [[0, 0], [0, 0]] for i in range(len(prob_arr)): if int(input_arr[i]) == 1: if float(prob_arr[i]) < 0.5: conf_arr[0][1] = conf_arr[0][1] + 1 else: conf_arr[0][0] = conf_arr[0][0] + 1 elif int(input_arr[i]) == 2: if float(prob_arr[i]) >= 0.5: conf_arr[1][0] = conf_arr[1][0] +1 else: conf_arr[1][1] = conf_arr[1][1] +1 accuracy = float(conf_arr[0][0] + conf_arr[1][1])/(len(input_arr))

prob_arr是一个数组,我的分类代码返回了这个数组,一个示例数组是这样的:

    [1.0, 1.0, 1.0, 0.41592955657342651, 1.0, 0.0053405015805891975, 4.5321494433440449e-299, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.70943426182688163, 1.0, 1.0, 1.0, 1.0]

input_arr是数据集的原始类标签,它是这样的:

    [2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1]

我的代码试图做的是:我得到prob_arr和input_arr,对于每个类(1和2),我检查它们是否被错误分类。

但是我的代码只适用于两个类。如果我为一个多类数据运行这段代码,它将不起作用。我怎样才能让它适用于多个类?

例如,对于包含三个类的数据集,它应该返回:[[21,7,3],[3,38,6],[5,4,19]]

回答

​Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

本文由 Python实用宝典 作者:Python实用宝典 发表,其版权均为 Python实用宝典 所有,文章内容系作者个人观点,不代表 Python实用宝典 对观点赞同或支持。如需转载,请注明文章来源。
1

发表评论