python機械学習プログラミング(36ページ)

プログラムの中で、なんとなくわかったつもりでそのままにしているプログラムの表記を調べてみました。

36ページのプログラムの上部にある

self.w_[1:] += self.eta * X.T.dot(errors)

このプログラムのX.TはおそらくXの転置という事だと思います。

.dot(errors)についてもおそらく内積だと思います。

あと、少し下にある

cost = (errors**2).sum() / 2.0

についても、おそらくsum()は合計を意味しているのだと思うのですが、sum(a)とかカッコ内に何か入れて使うのでは?合計するなら

sum(errors**2)

とするのでは??みたいに思ったが、はっきりしないので、調べてみました。

【今のところの自分なりの理解】

自分でプログラムをうって確かめたところX.T.dot(errors)は

『Xの転置を行いerrorsとの内積を行っている』

という事で確認が取れました。

.dot()のカッコ内は(a,b)のように二つの変数じゃないと計算できないんじゃ?とか思ったのですが、errorsは配列でXも配列で問題ないので内積をとる時はこんな書き方もできるんだという事がわかりました。

あと、sumの使い方に関しては別の生地に確かめた内容などをまとめましたのでもしよろしければこちら↓までどうぞ。

deeplearning-benkyotyu.hatenablog.com