13日目で行なったSickit-learnのチュートリアルで出てきた行列の対角化が何をやっているのか全くわからないので、今回調べてみました。
その時のコードがこれですね。
X_train_counts = count_vect.fit_transform(twenty_train.data)
そもそも行列を高校でも大学でも勉強していないので0から勉強しないといけないです(今の高校生は学校で行列を勉強しないんですね)。
そもそも行列とは
行列はもともとたくさん書いてた数式を1つにまとめたものです。このような性質があります。
最初に学んだ印象はこんな感じかと。 逆行列がなんなのかというと、1つの行列に対して、ある行列をかけると、対角線上に1が並んでそれ以外の数字が0になる行列のことらしいです。ちなみにこの対角線上に1が並んで、他が0になる行列を単位行列と呼ぶらしいです。
公式で書くとこんな式になるらしいです。 Aの行列がこのような値だと
逆行列はこうなる
お、おう、という感じですが、今は単語の意味だけでも感覚をつかみたいと思います。
行列の使い道
それで、行列を行うのがなんで必要なのかというと、行列を使うことによってコンピューターが連立方程式を解けるようになる、かららしいです。どういう計算をしているのかというと、
e = ax + by
f = cx + dy
という連立方程式の計算式があったとします。それを行列にすると、こんな感じですね。
これに逆行列をかけて、xとyを求められるようにします。
逆行列を公式にするとこんな感じですね。
あとはこれを四則演算すればコンピューターでも解けるそうです。 (解き方はなんとなくわかった)
対角の意味
行列がコンピュータにとって連立方程式を解くのに必要なことはわかりました。 それで、肝心の対角化ですが、一言で言うと、固有ベクトルを使って行列を固有値を含んだ対角行列に変換する(もとの行列の固有値になる)こと、らしいです。公式をみてみるとこんな感じだそうです。
もう意味がわかりませんね。APが行列、P^-1が逆行列、ラムダが固有値というらしいです。まぁ、どういうことかと言いますと、行列を対角行列に変換して、行列のn乗が計算しやすくなるそうです。
行列の形まとめ
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
対角行列
1 0 0 0
0 4 0 0
0 0 3 0
0 0 0 8
スカラー行列(と、いうのもあるらしです。対角線上の数字が同じになる)
5 0 0 0
0 5 0 0
0 0 5 0
0 0 0 5
今日の結果
今日のAKBメンバーによる呟きは70件でした。二日連続で多いですね。 呟きをみると握手会があったみたいですね。
'嬉しい': 16, '楽しい': 10, 'よい': 5, 'っぽい': 4, '可愛い': 3, '珍しい': 3, '面白い': 3, '低い': 2, 'いい': 2, 'カッコイイ': 1, 'あやい': 1, '懐かしい': 1, '有り難い': 1, '美味しい': 1, '甘い': 1, '新しい': 1, '良い': 1, '強い': 1, '眩しい': 1, 'ものすごい': 1, '暑い': 1, 'ない': 1, '濃い': 1, '早い': 1 '会': 63, '握手': 55, '今日': 30, '嬉しい': 16, 'ステージ': 15, 'たくさん': 15, '写真': 13, '楽しい': 10, 'さん': 10, '選挙': 10, '幕張メッセ': 10, 'みんな': 9, '私': 9, '皆さん': 9, '部': 9, '公演': 9, 'みなさん': 8, '私服': 8, '会': 63, '握手': 55, '今日': 30, 'する': 29, 'くださる': 22, '来る': 17, '嬉しい': 16, 'ステージ': 15, 'たくさん': 15, '写真': 13, 'くれる': 11, '楽しい': 10, 'さん': 10, '選挙': 10, '幕張メッセ': 10, 'みんな': 9, '私': 9, '皆さん': 9, '部': 9, '公演': 9, 'てる': 9,
今日勉強したこと
- 行列のイメージ
- 対角化のイメージ