テスト目的で、混同行列から偽の真実/予測値を作成する必要があります。
私の混同行列は、次を使用して Pandas DataFrame に格納されます。
labels = ['N', 'L', 'R', 'A', 'P', 'V']
df = pd.DataFrame([
[1971, 19, 1, 8, 0, 1],
[16, 1940, 2, 23, 9, 10],
[8, 3, 181, 87, 0, 11],
[2, 25, 159, 1786, 16, 12],
[0, 24, 4, 8, 1958, 6],
[11, 12, 29, 11, 11, 1926] ], columns=labels, index=labels)
df.index.name = 'Actual'
df.columns.name = 'Predicted'
インデックスは実際の値であり、列は予測値であると想定しています。
この混同行列は次のようになります。
Predicted N L R A P V
Actual
N 1971 19 1 8 0 1
L 16 1940 2 23 9 10
R 8 3 181 87 0 11
A 2 25 159 1786 16 12
P 0 24 4 8 1958 6
V 11 12 29 11 11 1926
2 つの Numpy 配列を作成する効率的な方法を探していますy_true
。y_predict
このような混同行列を生成します。
私の最初のアイデアは、最初に適切なサイズの Numpy 配列を作成することでした。
だから私はした:
N_all = df.sum().sum()
y_true = np.empty(N_all)
y_pred = np.empty(N_all)
しかし、これら2つのNumpy配列を効率的に埋める方法が正確にはわかりません
同じコードは、次のようなバイナリ混同行列にも適用する必要があります。
labels = [False, True]
df = pd.DataFrame([
[5, 3],
[2, 7]], columns=labels, index=labels)
df.index.name = 'Actual'
df.columns.name = 'Predicted'
このバイナリ混同行列は次のようになります。
Predicted False True
Actual
False 5 3
True 2 7