保存混淆矩阵
Saving confusion matrix
sklearn.metrics
生成的混淆矩阵是否可以保存?
我想将不同分类算法的多个结果保存在一个数组或一个 pandas 数据框中,这样我就可以显示哪种算法效果最好。
print('Neural net: \n',confusion_matrix(Y_test, Y_pred), sep=' ')
如何在循环中保存生成的混淆矩阵? (我正在训练一组 200 个不同的目标变量)
array[i] = confusion_matrix(Y_test,Y_pred)
我 运行 在这里遇到一些定义问题 [数组未定义而在非 [i] - 版本中它 运行s 顺利]
此外,我正在标准化混淆矩阵。我怎样才能在整个循环后打印出混淆矩阵的平均结果? (200个不同混淆矩阵的平均值)
我对 python 还不是很流利。
我不确定你所说的对一组目标变量进行训练是什么意思(请详细说明),但这里是使用 numpy
.
对混淆矩阵进行平均的开始
首先创建一个空的结果矩阵,它是三维的,大小为 200 个堆叠混淆矩阵。然后在 for 循环中将它们一个接一个地填充。最后将生成的矩阵沿目标维度进行平均,得到平均混淆矩阵。
import numpy as np
N = len(Y_pred)
result = np.zeros((len(targets), N, N))
for i, target in enumerate(targets):
result[i] = confusion_matrix(Y_test, Y_pred) # do someting with target?
print(result.mean(axis=0))
首先遇到数组未定义的问题。
在 python 列表中声明为:
array=[]
由于在声明时没有给出列表的大小,因此没有分配 space。所以没分配的地方不能赋值。
array[i]=some value, but no space is allocated for array
因此,如果您知道所需的数组大小,请在声明期间填充零并以这种方式使用数组或在循环内使用 array.append() 方法。
现在保存混淆矩阵:
由于混淆矩阵 returns 二维数组,您需要保存多个这样的数组,因此使用 3-D 数组来保存值。
import numpy as np
matrix_result=np.zeroes((200,len(y_pred),len(y_pred)))
for i in range(200):
matrix_result[i]=confusion_matrix(X_pred,y_pred)
平均
matrix_result_average=matrix_result.mean(axis=0)
sklearn.metrics
生成的混淆矩阵是否可以保存?
我想将不同分类算法的多个结果保存在一个数组或一个 pandas 数据框中,这样我就可以显示哪种算法效果最好。
print('Neural net: \n',confusion_matrix(Y_test, Y_pred), sep=' ')
如何在循环中保存生成的混淆矩阵? (我正在训练一组 200 个不同的目标变量)
array[i] = confusion_matrix(Y_test,Y_pred)
我 运行 在这里遇到一些定义问题 [数组未定义而在非 [i] - 版本中它 运行s 顺利]
此外,我正在标准化混淆矩阵。我怎样才能在整个循环后打印出混淆矩阵的平均结果? (200个不同混淆矩阵的平均值)
我对 python 还不是很流利。
我不确定你所说的对一组目标变量进行训练是什么意思(请详细说明),但这里是使用 numpy
.
首先创建一个空的结果矩阵,它是三维的,大小为 200 个堆叠混淆矩阵。然后在 for 循环中将它们一个接一个地填充。最后将生成的矩阵沿目标维度进行平均,得到平均混淆矩阵。
import numpy as np
N = len(Y_pred)
result = np.zeros((len(targets), N, N))
for i, target in enumerate(targets):
result[i] = confusion_matrix(Y_test, Y_pred) # do someting with target?
print(result.mean(axis=0))
首先遇到数组未定义的问题。 在 python 列表中声明为:
array=[]
由于在声明时没有给出列表的大小,因此没有分配 space。所以没分配的地方不能赋值。
array[i]=some value, but no space is allocated for array
因此,如果您知道所需的数组大小,请在声明期间填充零并以这种方式使用数组或在循环内使用 array.append() 方法。
现在保存混淆矩阵: 由于混淆矩阵 returns 二维数组,您需要保存多个这样的数组,因此使用 3-D 数组来保存值。
import numpy as np
matrix_result=np.zeroes((200,len(y_pred),len(y_pred)))
for i in range(200):
matrix_result[i]=confusion_matrix(X_pred,y_pred)
平均
matrix_result_average=matrix_result.mean(axis=0)