線形回帰式を行列形式に変換します

線形回帰式を行列形式に変換します

この記事の目的は、初心者のデータ サイエンティストをサポートすることです。 で 前の記事 線形回帰方程式を解くための XNUMX つの方法、つまり分析解法、勾配降下法、確率的勾配降下法について概説しました。 次に、分析ソリューションに次の式を適用しました。 線形回帰式を行列形式に変換します。 この記事では、タイトルが示すように、この公式の使用を正当化する、つまり、自分で公式を導き出します。

公式に特に注意を払うことが合理的な理由 線形回帰式を行列形式に変換します?

ほとんどの場合、線形回帰について理解し始めるのは行列方程式です。 同時に、その式がどのように導き出されたのかについての詳細な計算はほとんどありません。

たとえば、Yandex の機械学習コースでは、学生が正則化について説明するときに、ライブラリの関数を使用するように勧められます。 学習するただし、アルゴリズムの行列表現については一言も言及されていません。 この時点で、一部のリスナーはこの問題をより詳細に理解したいと考えているかもしれません。つまり、既製の関数を使用せずにコードを作成する必要があります。 これを行うには、まず正則化子を使用して方程式を行列形式で提示する必要があります。 この記事では、そのようなスキルを習得したい人向けに説明します。 始めましょう。

初期条件

目標指標

目標値には幅があります。 たとえば、ターゲット指標は、石油、金、小麦、ドルなどのあらゆる資産の価格である可能性があります。 同時に、ターゲット指標値の数とは、観測の数を意味します。 このような観測値は、たとえば、その年の毎月の石油価格などです。つまり、12 個の目標値が存在します。 記法を導入してみましょう。 ターゲット指標の各値を次のように表します。 線形回帰式を行列形式に変換します。 合計すると、 線形回帰式を行列形式に変換します 観測値、つまり観測値を次のように表すことができます。 線形回帰式を行列形式に変換します.

リグレッサー

ターゲット指標の値をある程度説明する要因があると仮定します。 たとえば、ドル/ルーブルの為替レートは、原油価格や連邦準備制度理事会の金利などの影響を強く受けます。このような要因はリグレッサーと呼ばれます。 同時に、各ターゲット指標値は回帰値に対応する必要があります。つまり、12 年の各月に 2018 個のターゲット指標がある場合、同じ期間に 12 個の回帰値も必要です。 各回帰変数の値を次のように表します。 線形回帰式を行列形式に変換します。 私たちの場合は次のようになります 線形回帰式を行列形式に変換します リグレッサー(すなわち、 線形回帰式を行列形式に変換します 目標指標値に影響を与える要因)。 これは、回帰変数を次のように表すことができることを意味します。 1 番目の回帰変数 (たとえば、石油価格) の場合: 線形回帰式を行列形式に変換します、2 番目のリグレッサー (FRB 金利など) の場合: 線形回帰式を行列形式に変換します、 にとって "線形回帰式を行列形式に変換します-th" リグレッサー: 線形回帰式を行列形式に変換します

ターゲット指標のリグレッサーへの依存性

ターゲット指標の依存性を仮定しましょう 線形回帰式を行列形式に変換します 退行者からの「線形回帰式を行列形式に変換します「th」の観測値は、次の形式の線形回帰方程式で表すことができます。

線形回帰式を行列形式に変換します

どこ 線形回帰式を行列形式に変換します - "線形回帰式を行列形式に変換します-th" 1 から XNUMX までのリグレッサー値 線形回帰式を行列形式に変換します,

線形回帰式を行列形式に変換します — 1 から XNUMX までのリグレッサーの数 線形回帰式を行列形式に変換します

線形回帰式を行列形式に変換します — 角度係数。リグレッサーが変化したときに、計算されたターゲット指標が平均して変化する量を表します。

言い換えれば、私たちはすべての人のためのものです(ただし、 線形回帰式を行列形式に変換します) 回帰変数の「私たちの」係数を決定します 線形回帰式を行列形式に変換します、次に係数にリグレッサーの値を乗算します。線形回帰式を行列形式に変換します回目の観察、その結果、特定の近似値が得られます。線形回帰式を行列形式に変換します-th」ターゲットインジケーター。

したがって、そのような係数を選択する必要があります 線形回帰式を行列形式に変換します、そこでの近似関数の値は 線形回帰式を行列形式に変換します ターゲット指標値に可能な限り近い位置に配置されます。

近似関数の品質の評価

最小二乗法を使用して近似関数の品質評価を決定します。 この場合の品質評価関数は次の形式になります。

線形回帰式を行列形式に変換します

値が必要な係数 $w$ のような値を選択する必要があります。 線形回帰式を行列形式に変換します 最小になります。

方程式を行列形式に変換する

ベクトル表現

まず、作業を楽にするために、線形回帰方程式に注目し、最初の係数が 線形回帰式を行列形式に変換します 回帰変数は乗算されません。 同時に、データを行列形式に変換すると、上記の状況により計算が非常に複雑になります。 この点に関して、最初の係数に別の回帰変数を導入することが提案されています。 線形回帰式を行列形式に変換します そしてそれをXNUMXに等しいとします。 というか、毎回「」線形回帰式を行列形式に変換しますこのリグレッサーの th の値を XNUMX と同等にします。結局のところ、XNUMX を乗算しても、計算結果の観点からは何も変わりませんが、行列の積のルールの観点からは、私たちの苦しみになります。大幅に削減されます。

さて、当面は、資料を単純化するために、「」が XNUMX つだけあると仮定しましょう。線形回帰式を行列形式に変換します-th」の観察。 次に、リグレッサーの値を想像してください。」線形回帰式を行列形式に変換します-th" ベクトルとしての観測値 線形回帰式を行列形式に変換します。 ベクター 線形回帰式を行列形式に変換します 次元がある 線形回帰式を行列形式に変換しますつまり、 線形回帰式を行列形式に変換します 行と 1 列:

線形回帰式を行列形式に変換します

必要な係数をベクトルとして表現しましょう 線形回帰式を行列形式に変換します、次元を持つ 線形回帰式を行列形式に変換します:

線形回帰式を行列形式に変換します

「」の線形回帰式線形回帰式を行列形式に変換します-th" 観察は次の形式になります。

線形回帰式を行列形式に変換します

線形モデルの品質を評価する関数は次の形式になります。

線形回帰式を行列形式に変換します

行列の乗算の規則に従って、ベクトルを転置する必要があることに注意してください。 線形回帰式を行列形式に変換します.

行列表現

ベクトルを乗算した結果、次の数値が得られます。 線形回帰式を行列形式に変換します、それは予想通りです。 この数値は近似値です。」線形回帰式を行列形式に変換します-th」ターゲットインジケーター。 ただし、XNUMX つの目標値だけではなく、すべての目標値の近似値が必要です。 そのためには、すべてを書き留めましょう」線形回帰式を行列形式に変換します行列形式の「番目」のリグレッサー 線形回帰式を行列形式に変換します。 結果として得られる行列の次元は次のとおりです。 線形回帰式を行列形式に変換します:

線形回帰式を行列形式に変換します

これで、線形回帰方程式は次の形式になります。

線形回帰式を行列形式に変換します

ターゲット指標の値を示しましょう(すべて 線形回帰式を行列形式に変換します) ベクトルごと 線形回帰式を行列形式に変換します 寸法 線形回帰式を行列形式に変換します:

線形回帰式を行列形式に変換します

これで、線形モデルの品質を評価するための方程式を行列形式で書くことができます。

線形回帰式を行列形式に変換します

実際、この式からさらに私たちが知っている式が得られます。 線形回帰式を行列形式に変換します

それはどのように行われるのでしょうか? 括弧が開かれ、微分が実行され、結果の式が変換されるなど、これがまさにこれから行うことです。

行列変換

括弧を開けてみましょう

線形回帰式を行列形式に変換します

線形回帰式を行列形式に変換します

微分方程式を用意しましょう

これを行うために、いくつかの変換を実行します。 後続の計算では、ベクトルが 線形回帰式を行列形式に変換します は、方程式の各積の先頭に表示されます。

変換1

線形回帰式を行列形式に変換します

どうやってそうなった? この質問に答えるには、乗算される行列のサイズを調べて、出力で数値などが得られるかどうかを確認してください。 線形回帰式を行列形式に変換します.

行列式のサイズを書き留めてみましょう。

線形回帰式を行列形式に変換します

線形回帰式を行列形式に変換します

線形回帰式を行列形式に変換します

変換2

線形回帰式を行列形式に変換します

変形1と同じように書いてみましょう

線形回帰式を行列形式に変換します

線形回帰式を行列形式に変換します

出力では、微分する必要がある方程式が得られます。
線形回帰式を行列形式に変換します

モデル品質評価機能を差別化します

ベクトルで微分してみましょう 線形回帰式を行列形式に変換します:

線形回帰式を行列形式に変換します

線形回帰式を行列形式に変換します

線形回帰式を行列形式に変換します

線形回帰式を行列形式に変換します

なぜなのかという質問 線形回帰式を行列形式に変換します あるべきではありませんが、他の XNUMX つの式の導関数を決定する操作をさらに詳しく調べます。

差別化1

差別化をさらに詳しく見てみましょう。 線形回帰式を行列形式に変換します

行列またはベクトルの導関数を決定するには、その中に何が入っているかを調べる必要があります。 見てみよう:

線形回帰式を行列形式に変換します

線形回帰式を行列形式に変換します

線形回帰式を行列形式に変換します 線形回帰式を行列形式に変換します

行列の積を表しましょう 線形回帰式を行列形式に変換します マトリックスを通して 線形回帰式を行列形式に変換します。 マトリックス 線形回帰式を行列形式に変換します 正方形で、しかも左右対称です。 これらのプロパティは後で役立つので、覚えておきましょう。 マトリックス 線形回帰式を行列形式に変換します 次元がある 線形回帰式を行列形式に変換します:

線形回帰式を行列形式に変換します

ここでの課題は、ベクトルと行列を正しく乗算し、「XNUMX 倍 XNUMX は XNUMX」にならないようにすることです。集中して細心の注意を払いましょう。

線形回帰式を行列形式に変換します

線形回帰式を行列形式に変換します

線形回帰式を行列形式に変換します

線形回帰式を行列形式に変換します

しかし、緻密な表現を実現しました! 実際、数値、つまりスカラーが得られました。 そして今、実際に差別化に移ります。 各係数の結果の式の導関数を見つける必要があります 線形回帰式を行列形式に変換します 次元ベクトルを出力として取得します 線形回帰式を行列形式に変換します。 念のため、アクションごとに手順を書いておきます。

1) 次で微分します 線形回帰式を行列形式に変換します、 我々が得る: 線形回帰式を行列形式に変換します

2) 次で微分します 線形回帰式を行列形式に変換します、 我々が得る: 線形回帰式を行列形式に変換します

3) 次で微分します 線形回帰式を行列形式に変換します、 我々が得る: 線形回帰式を行列形式に変換します

出力は約束されたサイズのベクトルです 線形回帰式を行列形式に変換します:

線形回帰式を行列形式に変換します

ベクトルをより詳しく見ると、ベクトルの左側の要素と対応する右側の要素がグループ化され、その結果、提示されたベクトルからベクトルを分離できることがわかります。 線形回帰式を行列形式に変換します サイズ 線形回帰式を行列形式に変換します。 例えば、 線形回帰式を行列形式に変換します (ベクトルの一番上の行の左の要素) 線形回帰式を行列形式に変換します (ベクトルの一番上の行の右側の要素) は次のように表すことができます。 線形回帰式を行列形式に変換します線形回帰式を行列形式に変換します - なので 線形回帰式を行列形式に変換します 等各行にあります。 グループ化しましょう:

線形回帰式を行列形式に変換します

ベクトルを取り出してみましょう 線形回帰式を行列形式に変換します 出力では次のようになります。

線形回帰式を行列形式に変換します

次に、結果の行列を詳しく見てみましょう。 行列は XNUMX つの行列の合計です 線形回帰式を行列形式に変換します:

線形回帰式を行列形式に変換します

少し前に、行列の XNUMX つの重要な特性に注目したことを思い出してください。 線形回帰式を行列形式に変換します - 対称的です。 この特性に基づいて、式は次のようになると自信を持って言えます。 線形回帰式を行列形式に変換します 等しい 線形回帰式を行列形式に変換します。 これは、行列の積を要素ごとに展開することで簡単に検証できます。 線形回帰式を行列形式に変換します。 ここではこれを行いませんので、興味のある方はご自身で確認してください。

表現に戻りましょう。 変換後、私たちが望んでいたとおりの結果が得られました。

線形回帰式を行列形式に変換します

これで最初の微分が完了しました。 XNUMX 番目の式に進みましょう。

差別化2

線形回帰式を行列形式に変換します

人里離れた道をたどってみましょう。 前回よりもかなり短いので、画面から離れすぎないように注意してください。

ベクトルと行列を要素ごとに展開してみましょう。

線形回帰式を行列形式に変換します

線形回帰式を行列形式に変換します

線形回帰式を行列形式に変換します

しばらくの間、この XNUMX つを計算から外してみましょう。これは大きな役割を果たしません。その後、元の位置に戻します。 ベクトルと行列を掛けてみましょう。 まずは行列を掛けてみましょう 線形回帰式を行列形式に変換します ベクトルに 線形回帰式を行列形式に変換します、ここでは制限はありません。 サイズベクトルを取得します 線形回帰式を行列形式に変換します:

線形回帰式を行列形式に変換します

次のアクションを実行しましょう - ベクトルを乗算します 線形回帰式を行列形式に変換します 結果のベクトルに。 出口で次の番号が私たちを待っています。

線形回帰式を行列形式に変換します

それでは差別化していきます。 出力では次元のベクトルを取得します。 線形回帰式を行列形式に変換します:

線形回帰式を行列形式に変換します

何かを思い出しますか? それは正しい! これは行列の積です 線形回帰式を行列形式に変換します ベクトルに 線形回帰式を行列形式に変換します.

これで、二次微分が正常に完了しました。

代わりに、結論の

これで平等がどのようにして生まれたのかがわかりました 線形回帰式を行列形式に変換します.

最後に、基本的な数式を簡単に変換する方法について説明します。

最小二乗法に従ってモデルの品質を評価してみましょう。
線形回帰式を行列形式に変換します

線形回帰式を行列形式に変換します

結果の式を微分してみましょう。
線形回帰式を行列形式に変換します 線形回帰式を行列形式に変換します

線形回帰式を行列形式に変換します

文学

インターネット情報源:

1) habr.com/ru/post/278513
2) habr.com/ru/company/ods/blog/322076
3) habr.com/ru/post/307004
4) nabatchikov.com/blog/view/matrix_der

教科書・問題集:

1) 高等数学の講義ノート: フルコース / D.T. 執筆 – 第 4 版– M.: アイリスプレス、2006
2) 応用回帰分析 / N. Draper、G. Smith - 第 2 版– M.: 財務と統計、1986 (英語からの翻訳)
3) 行列方程式を解くための問題:
function-x.ru/matrix_equations.html
mathprofi.ru/deistviya_s_matricami.html


出所: habr.com

コメントを追加します