こんにちは、つくたろうです。
今回は小ネタみたいな記事をひとつ。
扱うのは、機械学習なんかでよく出てくる「アレ」です。
Python機械学習プログラミング PyTorch&scikit-learn編 impress top gearシリーズ
はじめに
今回の記事の内容は、タイトルの通りです。
「混合行列」と「混同行列」という二つの概念について、それぞれが何かを説明しつつ2つの違いについて解説したいと思います。
この二つ、名前はそっくりですがそれぞれ全く違った二つの概念です。どっちかがどっちかの間違い表記とかそういうわけでもなく、普通にそれぞれが一つの概念として成立しています。
ただ、間違って使われがちなのは事実です。特に口頭で言われると「こいつ今どっちで言った?」となりがち(割とconfusionしている人が見受けられる)なので、せっかくなのでハッキリさせときましょう。
僕自身も理解しているつもりなんですが、相手が自信満々に間違えていたりすると(あれ?俺が間違っているのか?)とconfusionしてしまいがちなので、自分を見失わないための備忘録的な側面も兼ねております。
混合行列とは
混合行列とは、数学や物理学の分野で登場する概念です。
英語で言えばMixed Matrix。もうこの時点で(あっ"じゃない方"だ)と思われている方も多いと思いますが、一応説明しておきましょう。
例えば、物理システムを方程式で表記するときに、Ax=bの形で表現することができます。
このシステムを表す行列Aを「定数部分」と「物理パラメータ部分」に分離することができるとき、これを混合行列と呼ぶのです。
数学的な定義とかが知りたい方は以下の書籍とかを図書館とかで探してみてください。
めちゃくちゃざっくりした説明ですが、僕はこっちが記事を見に来た人にとっての本命じゃないことを知っているので、簡単な説明に止めました。
ということで、次は本命について説明しましょう。
混同行列とは
混同行列とは、分類問題などを評価するために用いる、分布を示した行列のことです。
正解のカテゴリに対して、推論結果がどう分類されたかを行列の形(というか表)で見やすくしたものですね。対角成分に集まっていればいるほど正確な推論ができていると分かる、アレです。
英語表記はConfusion Matrix。そう、おそらくあなたが使っている(使いたい)やつは「混"同"行列」です。
こういうやつ↓ですね。
cm = [[5 0] [1 4]]
機械学習とかで使うやつは99.99%こっちです。たま~にQiitaとか技術ブログとかでも「混合行列(Confusion Matrix)」みたいに書いてあるケースを見かけますが、それは間違いです。機械学習とかで使ってるやつは「混同行列」です。(大事なことなので(ry)
混合行列と混同行列の違い
(ほとんどの読者の方は上の項目まで読んだところでブラウザバックしていると思われるので、この項目を書く意味があるのかすらちょっと怪しい。が、一応書く)
さて、この項目ではこの見出し(混合行列と混同行列の違い)について書いていくわけですが、ここまでの記事を読んでくださった方ならおそらくもう分かっているかなと思います。
そもそもが全然違う概念なんですよね。名前が似ているだけ。
よく似た概念で状況によって名前が使い分けられているとか、そういうものでもない。完全に別の概念です。
ただただ日本語が似ている(そして、口頭で言うとどうにも同じように聞こえてしまう)というのが混乱を引き起こしている要因だと思います。
そうか、混乱を引き起こす行列だからConfusion Matrixなのか…(違う)
混合行列と混同行列の違いについて迷ったときは
多分、「Confusion Matrix」という言葉自体は皆さん分かっているんじゃないでしょうか。変数名をcm
にしたりもしますし。
それさえ分かっていれば、あとは「混合」と「混同」のどっちがconfusionなのかを思い出せばOKです。混合がMixed、混同がConfusionなので、ああ「混同」だなと分かります。
特に、こういうのは「じゃない方」が「なぜ、"じゃない"のか」をわかっていた方が迷わないので、混合=Mixをしっかり印象付けておくと迷わないと思います。混合=Mixをよりはっきり覚えておくためには、男女混合のダブルスを"ミックス"ダブルスと呼ぶことなんかを覚えておくといいかなと思います。
ということで、迷ったときは英語を考えてみましょう。
その日本語表現、マズいのですが: ネットで拾った誤用法 (日本語表現誤用集 ネットに見られる日本語の間違い)
余談
Pythonで機械学習をやるなら、とりあえず「つくりながら学ぶ!PyTorchによる発展ディープラーニング」が手元にあればなんとかなる(結論)。
研究でも趣味の個人開発でもハッカソンでもこの本にお世話になりっぱなしです。マジでいいので宣伝しておきます。
おわりに
ということで、今回は混合行列と混同行列の違いについて記事を書きました。機械学習をやっていて、混合行列と混同行列がどっちがどっちかわからなくなった方に、この記事が届いていればいいなと思います。
世の中には見た目が似てるくせに全然違う概念だったりする単語の組み合わせが少なくありません。(ちょっといい例が思いつかないんですが…割合と割愛とか?ちなみに割愛も最近は間違った使われ方が増えていますよね。ただ省略するだけの時にも使われすぎている。本来は惜しいものを泣く泣く切り捨てる時に使う言葉なのです、、、)
その日本語表現、マズいのですが: ネットで拾った誤用法 (日本語表現誤用集 ネットに見られる日本語の間違い)
今回のケースのように、誰かの疑問に答えることができるような記事を目指して、これからも頑張ってブログを更新していきたいと思います。
これからもよろしくお願いします!
ここまで読んでいただき、ありがとうございました!
2022/12/31 つくたろう
Python機械学習プログラミング PyTorch&scikit-learn編 impress top gearシリーズ
Python機械学習ライブラリ scikit-learn活用レシピ80+ (impress top gear)
カテゴリ: