
218
付録 演習の解答
列を作成して上記のように埋めていきます。
def general_confusion_matrix(pred, gt):
n_classes = max(np.max(pred), np.max(gt)) + 1
cont = np.zeros((n_classes, n_classes))
for i, j in zip(pred, gt):
cont[i, j] += 1
return cont
A.9
解答:
COO
を使った表現
以下は「
5.2.2
演習:
COO
を使った表現」の解答です。
まずは、配列の非ゼロ要素を、本を読むように左から右、上から下の順番に列挙します。
s2_data = np.array([6, 1, 2, 4, 5, 1, 9, 6, 7])
続いて、それらの値の行のインデックスを同じ順番に列挙します。
s2_row = np.array([0, 1, 1, 1, 1, 2, 3, 4, 4])
最後に、列のインデックスです。
s2_col = np.array([2, 0, 1, 3, 4, 1, 0, 3, 4])
正しい行列が得られたかどうかは、逆に
COO
表現から行列を求めれば確認できます。
s2_coo0 = sparse.coo_matrix(s2)
print(s2_coo0.data)
print(s2_coo0.row)
print(s2_coo0.col)
[6 1 2 4 5 1 9 6 7]
[0 1 1 1 1 2 3 4 4]
[2 0 1 ...