🔰ダイエットから始まる婚活生活

22歳、男、大学4年生。今年中に彼女作るために体作りを始めました。

線形モデル:特徴量が訓練データより多い場合

はじめに

大学でTAをやることになったのでscikit-learnの勉強をしている.オライリーの「pythonで始める機械学習」を使って学習しているのだが,タイトルの話題で詳細な説明がなかったので備忘録として書く.厳密な議論ができていないため,力になれないかもしれない.

www.oreilly.co.jp

本題と結論

以下,引用.

『訓練データのデータポイント数よりも特徴量の数の方が多い場合には,どのような y でも完全に訓練データの線形関数としてモデル化できる』

線形代数に慣れている人であれば当たり前らしいが,私は「ん?」となったので考察した.

<結論>

  • 線形モデルにおいて,

    データポイントの数  = 連立方程式の式の数

    特徴量の数      = 連立方程式の変数の数 - 1

線形モデル

線形モデルを学習すると以下の方程式が得られる.

\begin{eqnarray} \tilde{y} &=& w[0] \times x[0] + \cdots + w[p] \times x[p] + \bf{b} \\ &=& \bf{w}\bf{x} +b \end{eqnarray} 

この方程式を用いて,予測したいデータの特徴ベクトル \bf{x} を代入することで, \tilde{y} を予測値として出力するのが線形回帰を用いた学習である.

訓練データについて

scikit-learnにおいて,訓練データは,”data”と"target"にそれぞれ特徴量とラベルがndarray型で保存されています.これらの配列をそれぞれ  \bf{A}y とします.(以下図)

f:id:lonely_bloger:20200914123726p:plain

問題設定

まず,問題設定(今回考えたいこと)を明らかにする.

  • 与えられるもの: \bf{A}n \times p 行列 (データセットの特徴量部分)

           yn \times 1 行列     (データセットのラベル部分)

  • 求めたいこと:\tilde{y} = \bf{w}\bf{x} +\it{b} における \bf{w}b 

今回は特徴量が訓練データより多い場合ということで,n < p が仮定されてる.

よくよく考えてみる

与えられたデータセットの特徴量部分  \bf{A}\bf{x} に,ラベル部分 y\tilde{y} に入れると以下の連立方程式になる.

\begin{eqnarray} \left \{ \begin{array}{l} y_1 =w[0] \times x_1[0] +\cdots + w[p] \times x_1[p] + b  \\ \cdots \\ y_n =w[0] \times x_n[0] +\cdots + w[p] \times x_n[p] + b \end{array}\right.\end{eqnarray}

この連立方程式で変数となっているのは,w[0] ,  \ldots , w[p] , bp+1 個である.また,式の数は n 個です.

ここで,仮定を思い出すと,n < p でした.これより,n \leq p+1 が言えます.何を言いたいかというと,

”変数の数が連立方程式の式の数以上である”

ということです.

 みなさん,x+y=3 の解を考えてさい.(x,y)=(0,3),(-1,4),\ldots とたくさんありますよね?これは,式が1つに対して変数が2つあるからです.つまり,変数が式の数よりも多いと,解が必ず存在するのです(多分...).

話を戻すと,n < p という仮定により,連立方程式の変数の数が式の数以上になるので,その連立方程式を満たす解が必ず存在することが言えます.

つまり,求めたかった\bf{w}b必ず存在することが言えます.

これらが求めれることはつまり,線形モデルが構築でき,そのモデルに各データセットの特徴量を代入したときに,その出力とデータセットのラベルが完全一致することが言えるのです.

終わりに

ブログに初めて学術的なことを書いた.所要時間は2時間オーバー.texの使い方に戸惑ったのと,行列に関して復習するのに時間を多く要した.自分の無力さを実感したが,とてもいい勉強になった.ツッコミどころがたくさんあると思われるので,よろしければご指導の方,よろしくお願いします.