python機械学習プログラミング(51ページ)
さて、51ページの前半のプログラムでわからないことが出てきました。
print('Misclassified samples: %d' % (y_test != y_pred).sum())
についてですが、前後の文脈から誤分類の個数を数えているようです。
でも、(y_test != y_pred).sum()で誤分類が数えられるのでしょうか?
【今のところの理解】
確かめてみました。
b = 10 a = 12 print(a != b) 実行結果 >>> b = 10 >>> a = 12 >>> print(a != b) True >>> print((a != b).sum()) Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'bool' object has no attribute 'sum'
エラーが出ました。どうやら、"True"は数えられないよ!!
という事ですよねぇ。
もしかして、配列だったらうまくいくのかも??という事で、配列で確かめてみました。
>>> demo = np.arange(10).reshape(5,2) >>> demo1 = np.arange(10).reshape(5,2) >>> print("error : %d" % (demo == demo1).sum()) error : 10
上手くいきましたね。
どうやら、配列で正誤を確認して、その個数を数えてくれるみたいです。
なるほどぉ!!