نأتي معادلة الانحدار الخطي في شكل مصفوفة



الغرض من المقالة هو توفير الدعم لمديري بيانات المبتدئين. في المقالة السابقة ، درسنا على الأصابع ثلاث طرق لحل معادلة الانحدار الخطي: حل تحليلي ، أصل متدرج ، أصل تدرج عشوائي. ثم من أجل الحل التحليلي طبقنا الصيغة XTX vecw=XT vecy . في هذه المقالة ، على النحو التالي من العنوان ، سنبرر استخدام هذه الصيغة ، أو بمعنى آخر ، سوف نستمدها بشكل مستقل.

لماذا يكون من المنطقي إيلاء المزيد من الاهتمام لهذه الصيغة XTX vecw=XT vecy ؟

مع معادلة المصفوفة ، يبدأ التعارف الخطي في معظم الحالات. في الوقت نفسه ، الحسابات التفصيلية لكيفية اشتقاق الصيغة نادرة.

على سبيل المثال ، في دورات Yandex للتعلم الآلي ، عندما يتم تعريف الطلاب على التنظيم ، يقترحون استخدام الوظائف من مكتبة sklearn ، بينما لم يتم ذكر كلمة حول تمثيل المصفوفة للخوارزمية. في هذه اللحظة ، قد يرغب بعض المستمعين في فهم هذه المشكلة بمزيد من التفصيل - كتابة التعليمات البرمجية دون استخدام وظائف جاهزة. ولهذا ، يجب أولاً تقديم المعادلة مع المنظم في شكل مصفوفة. هذه المادة سوف تسمح لأولئك الذين يرغبون في إتقان هذه المهارات. لنبدأ.

الظروف الأولية


أهداف


لدينا عدد من القيم المستهدفة. على سبيل المثال ، قد يكون الهدف هو سعر الأصل: النفط ، الذهب ، القمح ، الدولار ، إلخ. في الوقت نفسه ، نعني بعدد من قيم المؤشر الهدف عدد المشاهدات. قد تكون هذه الملاحظات ، على سبيل المثال ، أسعار النفط الشهرية لهذا العام ، أي أنه سيكون لدينا 12 قيمة مستهدفة. نبدأ في تقديم التدوين. نخصص كل قيمة مستهدفة yi . المجموع لدينا ن الملاحظات ، مما يعني أنه يمكننا تخيل ملاحظاتنا على أنها y1،y2،y3...yn .

regressors


نحن نفترض أن هناك عوامل تفسر إلى حد ما قيم المؤشر المستهدف. على سبيل المثال ، يتأثر سعر صرف زوج الدولار / الروبل بشدة بسعر النفط ، وسعر بنك الاحتياطي الفيدرالي ، وما إلى ذلك. وتسمى هذه العوامل عوامل التراجع. في الوقت نفسه ، يجب أن تتوافق كل قيمة من المؤشر المستهدف مع قيمة المراجع ، أي إذا كان لدينا 12 هدفًا لكل شهر في عام 2018 ، فيجب أن يكون لدينا أيضًا 12 من التراجعات لنفس الفترة. تدل على قيم كل ريتور بواسطة xi:x1،x2،x3...xn . دع في حالتنا هناك ك التراجع (أي ك العوامل التي تؤثر على قيمة الهدف). لذلك يمكن تمثيل التراجعات الخاصة بنا على النحو التالي: بالنسبة للتراجع الأول (على سبيل المثال ، سعر النفط): x11،x12،x13...x1n بالنسبة إلى التراجع الثاني (على سبيل المثال ، معدل الاحتياطي الفيدرالي): x21،x22،x23...x2n ل" ك ال "التراجع: xk1،xk2،xk3...xkn

اعتماد الأهداف على التراجع


تفترض التبعية الهدف yi من التراجع " i - يمكن التعبير عن "الملاحظة" من خلال معادلة الانحدار الخطي للشكل:

f(w،xi)=w0+w1x1i+...+wkxki



حيث xi - " i ال "قيمة التراجع من 1 إلى ن .

ك - عدد النواقص من 1 إلى ك

w - المعاملات الزاوية التي تمثل المقدار الذي سيتغير به المؤشر الهدف المحسوب في المتوسط ​​عندما يتغير التراجع.

وبعبارة أخرى ، نحن للجميع (باستثناء w0دولا ) من التراجع نحدد معامل "لدينا" w ، ثم اضرب المعاملات بقيم التراجع " i - "الملاحظة ، ونتيجة لذلك نحصل على تقريب معين" i ال "الهدف.

لذلك ، نحن بحاجة إلى تحديد هذه المعاملات w التي قيم وظيفة تقريب لدينا f(w،xi) سيكون موجودا في أقرب وقت ممكن لقيم الأهداف.

تقدير جودة الوظيفة التقريبية


سنحدد تقدير الجودة لوظيفة التقريب بأسلوب المربعات الصغرى. ستتخذ وظيفة تقييم الجودة في هذه الحالة النموذج التالي:

Err= sum limitni=1(yif(xi))2 rightarrowmin



نحن بحاجة إلى اختيار هذه القيم للمعاملات $ w $ التي القيمة خطأ $ $ سيكون أصغر.

نترجم المعادلة إلى شكل مصفوفة


ناقلات الرأي


أولاً ، لجعل حياتك أسهل ، يجب الانتباه إلى معادلة الانحدار الخطي ولاحظ أن المعامل الأول w0دولا لا مضروبة في أي التراجع. علاوة على ذلك ، عندما نترجم البيانات إلى شكل مصفوفة ، فإن الظرف أعلاه سيعقد العمليات الحسابية بشكل خطير. في هذا الصدد ، يُقترح إدخال مُراجع آخر للمعامل الأول w0دولا وتساوي واحد. أو بالأحرى ، كل " i "قيمة" هذا التراجع تساوي الوحدة - لأنه عند ضرب الوحدة ، لن يتغير شيء من حيث نتيجة الحسابات ، ومن وجهة نظر القواعد الخاصة بمنتج المصفوفات ، سيتم تقليل عذابنا بشكل كبير.

الآن ، لفترة من الوقت ، لتبسيط المواد ، لنفترض أن لدينا واحدة فقط " i ال "ملاحظة. ثم ، تخيل قيم التراجع" i ال عشر كما ناقلات  vecxi . سهم التوجيه  vecxi لديه البعد (ك مرات1) هذا هو ك الصفوف والعمود 1:

 vecxi= تبدأpmatrixx0ix1i...xki endpmatrix qquad



يمكن تمثيل المعاملات المطلوبة باعتبارها ناقلات  vecw وجود البعد (ك مرات1) :

 vecw= تبدأpmatrixw0w1...wk endpmatrix qquad



معادلة الانحدار الخطي لـ " i - الملاحظة "سوف تأخذ الشكل:

f(w،xi)= vecxiT vecw



ستتخذ وظيفة تقييم الجودة للنموذج الخطي الشكل التالي:

Err= sum limitni=1(yi vecxiT vecw)2 rightarrowmin



لاحظ أنه وفقًا لقواعد ضرب المصفوفة ، نحتاج إلى نقل المتجه  vecxi .

تمثيل المصفوفة


نتيجة لضرب المتجهات ، نحصل على الرقم: (1 timesk) centerdot(k times1)=1 times1 كما هو متوقع. هذا الرقم هو تقريب " i "الهدف. لكننا بحاجة إلى تقريب قيمة واحدة من الهدف ، ولكن كل شيء. للقيام بهذا ، نكتب كل شيء" i مصفوفات التراجع X . المصفوفة الناتجة لها البعد (ن مراتك) :

عرض $$ $ X = \ تبدأ {pmatrix} x_ {00} & x_ {01} & ... & x_ {0k} \\ x_ {10} & x_ {11} & ... & x_ {1k} \\ ... & ... & ... & ... \\ x_ {n0} & x_ {n1} & ... & x_ {nk} \ end {pmatrix} \ qquad $$ عرض $$



الآن سوف تأخذ معادلة الانحدار الخطي الشكل:

f(w،X)=X vecw



تشير إلى قيم المؤشرات المستهدفة (الكل yi ) لكل متجه  vecy الأبعاد (ن مرة1) :

 vecy= startpmatrixy0y1...yn endpmatrix qquad



الآن يمكننا أن نكتب في نسق المصفوفة المعادلة لتقييم جودة النموذج الخطي:

Err=(X vecw vecy)2 rightarrowmin



في الواقع ، من هذه الصيغة نحصل على الصيغة المعروفة لنا XTXw=XTy

كيف يتم ذلك؟ يتم فتح الأقواس ، ويتم تنفيذ التمايز ، ويتم تحويل التعبيرات الناتجة ، وما إلى ذلك ، وهذا ما سنفعله الآن.

التحولات المصفوفة


توسيع الأقواس


(X vecw vecy)2=(X vecw vecy)T(X vecw vecy)

=(X vecw)TX vecw vecyTX vecw(X vecw)T vecy+  vecyT vecy

إعداد معادلة للتمايز


للقيام بذلك ، نقوم ببعض التحولات. في الحسابات اللاحقة ، سيكون أكثر ملاءمة لنا إذا كان المتجه  vecwT سيتم تقديمه في بداية كل عمل في المعادلة.

التحويل 1


 vecyTX vecw=(X vecw)T vecy= vecwTXT vecy

كيف حدث هذا؟ للإجابة على هذا السؤال ، فقط انظر إلى أحجام المصفوفات المضروبة وشاهد أنه في المخرجات نحصل على رقم أو غير ذلك const .

نكتب أبعاد تعبيرات المصفوفة.

 vecyTX vecw:(1 timesn) centerdot(n timesk) centerdot(k times1)=(1 times1)=const

(X vecw)T vecy:((n timesk) centerdot(k times1))T centerdot(n times1)=(1 timesn) centerdot(n times1)=(1 times1)=const

 vecwTXT vecy:(1 timesk) centerdot(k timesn) centerdot(n times1)=(1 times1)=const

التحويل 2


(X vecw)TX vecw= vecwTXTX vecw

نكتب بالمثل التحول 1

(X vecw)TX vecw:((n timesk) centerdot(k times1))T centerdot(n timesk) centerdot(k times1)=(1 مرة1)=const

 vecwTXTX vecw:(1 timesk) centerdot(k timesn) centerdot(n timesk) centerdot(k times1)=(1 مرات1)=const

في المخرجات ، نحصل على معادلة يجب أن نفرقها:
Err= vecwTXTX vecw2 vecwTXT vecy+ vecyT vecy

نحن نفرق بين وظيفة تقييم جودة النموذج


التفريق بواسطة ناقل  vecw :

 fracd( vecwTXTX vecw2 vecwTXT vecy+ vecyT vecy)d vecw


( vecwTXTX vecw)(2 vecwTXT vecy)+( vecyT vecy)=0

2XTX vecw2XT vecy+0=0

XTX vecw=XT vecy

أسئلة لماذا ( vecyT vecy)=0 لا ينبغي أن يكون ، ولكن العمليات لتحديد المشتقات في التعبيرات الأخرى ، سنحلل بمزيد من التفصيل.

التمايز 1


نكشف التمايز:  fracd( vecwTXTX vecw)d vecw=2XTX vecw

من أجل تحديد مشتق مصفوفة أو متجه ، تحتاج إلى معرفة ما لديهم في الداخل. نحن ننظر:

$ inline $ \ vec {w} ^ T = \ تبدأ {pmatrix} w_0 & w_1 & ... & w_k \ end {pmatrix} \ qquad $ inline $

 vecw= تبدأpmatrixw0w1...wk endpmatrix qquad

$ inline $ X ^ T = \ start {pmatrix} x_ {00} & x_ {10} & ... & x_ {n0} \\ x_ {01} & x_ {11} & ... & x_ {n1} \\ ... & ... & ... & ... \\ x_ {0k} & x_ {1k} & ... & x_ {nk} \ end {pmatrix} \ qquad $ inline $ $ inline $ X = \ تبدأ {pmatrix} x_ {00} & x_ {01} & ... & x_ {0k} \\ x_ {10} & x_ {11} & ... & x_ {1k} \\ ... & ... & ... & ... \\ x_ {n0} & x_ {n1} & ... & x_ {nk} \ end {pmatrix} \ qquad $ inline $

تشير إلى المنتج من المصفوفات XTX من خلال المصفوفة دولا . قالب دولا مربع وعلاوة على ذلك ، فمن متماثل. هذه الخصائص ستكون مفيدة لنا أكثر ، تذكرها. قالب دولا لديه البعد (ك مراتك) :

$ inline $ A = \ تبدأ {pmatrix} a_ {00} & a_ {01} & ... & a_ {0k} \\ a_ {10} & a_ {11} & ... & a_ {1k} \\ ... & ... & ... & ... \\ a_ {k0} & a_ {k1} & ... & a_ {kk} \ end {pmatrix} \ qquad $ inline $

الآن مهمتنا هي مضاعفة المتجهات بشكل صحيح من خلال المصفوفة وعدم الحصول على "مرتين خمسة خمسة" ، لذلك سنركز ونكون حذرين للغاية.

$ inline $ \ vec {w} ^ TA \ vec {w} = \ تبدأ {pmatrix} w_0 & w_1 & ... & w_k \ end {pmatrix} \ qquad \ times \ تبدأ {pmatrix} a_ {00} & a_ {01} & ... & a_ {0k} \\ a_ {10} & a_ {11} & ... & a_ {1k} \\ ... & ... & ... & ... \ \ a_ {k0} & a_ {k1} & ... & a_ {kk} \ end {pmatrix} \ qquad \ times \ تبدأ {pmatrix} w_0 \\ w_1 \\ ... \\ w_k \ end {pmatrix} \ qquad = $ inline $

$ inline $ = \ تبدأ {pmatrix} w_0a_ {00} + w_1a_ {10} + ... + w_ka_ {k0} & ... & w_0a_ {0k} + w_1a_ {1k} + ... + w_ka_ {kk} \ end {pmatrix} \ times \ تبدأ {pmatrix} w_0 \\ w_1 \\ ... \\ w_k \ end {pmatrix} \ qquad = $ inline $

= تبدأpmatrix(w0a00+w1a10+...+wkak0)w0 mkern10mu+  mkern10mu... mkern10mu+ mkern10mu(w0a0k+w1a1k+...+wkakk)wk endpmatrix=

=w20a00+w1a10w0+wkak0w0 mkern10mu+ mkern10mu... mkern10mu+ mkern10muw0a0k$.+w2kakk

ومع ذلك ، حصلنا على تعبير معقد! في الواقع ، حصلنا على رقم - عددية. والآن ، بالفعل بالفعل ، نمر بالتمييز. من الضروري إيجاد مشتق التعبير الذي تم الحصول عليه لكل معامل w0w1...wk والحصول على ناقل البعد في الإخراج (ك مرات1) . فقط في حالة ، سوف أصف إجراءات الإجراءات:

1) التفريق من قبل wo حصلنا على: 2w0a00+w1a10+w2a20+...+wkak0+a01w1+a02w2+...+a0kwk

2) التفريق من قبل w1 حصلنا على: w0a01+2w1a11+w2a21+...+wkak1+a10w0+a12w2+...+a1kwk

3) التفريق من قبل wk حصلنا على: w0a0k+w1a1k+w2a2k+...+w(k1)a(k1)k+ak0w0+ak1w1+ak2w2+...+2wkakk

في الإخراج ، ناقلات وعدت حجمها (ك مرات1) :

 تبدأpmatrix2w0a00+w1a10+w2a20+...+wkak0+a01w1+a02w2+...+a0kwkw0a01+2w1a11+w2a21+...+wkak1+a10w0+a12w2+...+a1kwk.........w0a0k+w1a1k+w2a2k+...+w(k1)a(k1)k+ak0w0+ak1w1+ak2w2+...+2wkakk endpmatrix



إذا ألقيت نظرة فاحصة على المتجه ، ستلاحظ أن العناصر اليمنى واليسرى المقابلة من المتجه يمكن تجميعها بطريقة ، ونتيجة لذلك ، يمكن تمييز المتجه عن المتجه المقدم  vecw الحجم (ك مرات1) . على سبيل المثال w1a10 (العنصر الأيسر من السطر العلوي للمتجه) +a01w1 (يمكن تمثيل العنصر الأيمن من السطر العلوي من المتجه) كـ w1(a10+a01) و w2a20+a02w2 - كيف w2(a20+a02) إلخ على كل سطر. مجموعة نحن:

 تبدأpmatrix2w0a00+w1(a10+a01)+w2(a20+a02)+...+wk(ak0+a0k)w0(a01+a10)+2w1a11+w2(a21+a12)+...+wk(ak1+a1k).........w0(a0k+ak0)+w1(a1k+ak1)+w2(a2k+ak2)+...+2wkakk endpmatrix



اخراج المتجه  vecw وفي الإخراج نحصل على:

عرض $$ $$ \ تبدأ {pmatrix} 2a_ {00} & a_ {10} + a_ {01} & a_ {20} + a_ {02} & ... & a_ {k0} + a_ {0k} \\ a_ {01} + a_ {10} & 2a_ {11} & a_ {21} + a_ {12} & ... & a_ {k1} + a_ {1k} \\ ... & ... & .. . & ... & ... \\ ... & ... & ... & ... & ... \\ ... & ... & ... & .. . \\ a_ {0k} + a_ {k0} & a_ {1k} + a_ {k1} & a_ {2k} + a_ {k2} & ... & 2a_ {kk} \ end {pmatrix} \ times \ تبدأ {pmatrix} w_0 \\ w_1 \\ ... \\ ... \\ ... \\ w_k \ end {pmatrix} \ qquad $$ عرض $$



الآن ، دعونا نلقي نظرة على المصفوفة الناتجة. المصفوفة هي مجموع المصفوفات اثنين A+AT :

عرض $$ $$ \ تبدأ {pmatrix} a_ {00} & a_ {01} & a_ {02} & ... & a_ {0k} \\ a_ {10} & a_ {11} & a_ {12} & ... & a_ {1k} \\ ... & ... & ... & ... & ... \\ a_ {k0} & a_ {k1} & a_ {k2} & ... & a_ {kk} \ end {pmatrix} + \ start {pmatrix} a_ {00} & a_ {10} & a_ {20} & ... & a_ {k0} \\ a_ {01} & a_ {11} & a_ {21} & ... & a_ {k1} \\ ... & ... & ... & ... & ... \\ a_ {0k} & a_ {1k} & a_ {2k} & ... & a_ {kk} \ end {pmatrix} \ qquad $$ عرض $$



أذكر أنه في وقت سابق قليلا ، لاحظنا خاصية واحدة مهمة للمصفوفة دولا - إنه متماثل. بناءً على هذه الخاصية ، يمكننا أن نقول بثقة أن التعبير A+AT متساوين 2A . هذا سهل التحقق من خلال الكشف عن المنتج المصفوفة حسب العنصر XTX . لن نفعل ذلك هنا ، يمكن لأولئك الذين يرغبون في إجراء التحقق بأنفسهم.

دعنا نعود إلى تعبيرنا. بعد تحولاتنا ، اتضح كما أردنا رؤيته:

(A+AT) times تبدأpmatrixw0w1...wk endpmatrix qquad=2A vecw=2XTX vecw



لذلك ، تعاملنا مع التمايز الأول. نمر إلى التعبير الثاني.

التمايز 2


 fracd(2 vecwTXT vecy)d vecw=2XT vecy

دعنا نذهب على طول الطريق المطروق. سيكون أقصر بكثير من السابق ، لذلك لا تذهب بعيدا عن الشاشة.

نكشف عن ناقلات المصفوفة والعناصر الحكيمة:

$ inline $ \ vec {w} ^ T = \ تبدأ {pmatrix} w_0 & w_1 & ... & w_k \ end {pmatrix} \ qquad $ inline $

$ inline $ X ^ T = \ start {pmatrix} x_ {00} & x_ {10} & ... & x_ {n0} \\ x_ {01} & x_ {11} & ... & x_ {n1} \\ ... & ... & ... & ... \\ x_ {0k} & x_ {1k} & ... & x_ {nk} \ end {pmatrix} \ qquad $ inline $

 vecy= تبدأpmatrixy0y1...yn endpmatrix qquad

لفترة من الوقت ، نزيل الشيطان من الحسابات - لا يلعب دورًا كبيرًا ، ثم سنعيده إلى مكانه. اضرب المتجهات بواسطة المصفوفة. بادئ ذي بدء ، نضرب المصفوفة XT على ناقلات  vecy ، هنا ليس لدينا قيود. الحصول على ناقلات الحجم (ك مرات1) :

 تبدأpmatrixx00y0+x10y1+...+xn0ynx01y0+x11y1+...+xn1yn...x0ky0+x1ky1+...+xnkyn endpmatrix qquad



قم بتنفيذ الإجراء التالي - اضرب المتجه  vecw إلى ناقلات الناتجة. في الخرج ، سوف ينتظرنا رقم:

 تبدأpmatrixw0(x00y0+x10y1+...+xn0yn)+w1(x01y0+x11y1+...+xn1yn) mkern10mu+ mkern10mu... mkern10mu+ mkern10muwk(x0ky0+x1ky1+...+xnkyn) endpmatrix qquad



نحن ثم نفرق ذلك. في الإخراج نحصل على ناقل البعد (ك مرات1) :

 تبدأpmatrixx00y0+x10y1+...+xn0ynx01y0+x11y1+...+xn1yn...x0ky0+x1ky1+...+xnkyn endpmatrix qquad



هل يشبه شيئا؟ حسنًا! هذا هو نتاج المصفوفة. XT على ناقلات  vecy .

وهكذا ، تم الانتهاء من التمايز الثاني بنجاح.

بدلا من الاستنتاج


الآن نحن نعرف كيف جاءت المساواة. XTX vecw=XT vecy .

أخيرًا ، نصف طريقة سريعة لتحويل الصيغ الرئيسية.

تقدير جودة النموذج وفقًا لطريقة المربعات الصغرى:
 sum limitni=1(yif(xi))2 mkern20mu= mkern20mu sum limitni=1(yi vecxiT vecw)2=

=(X vecw vecy)2 mkern20mu= mkern20mu(X vecw vecy)T(X vecw vecy) mkern20mu= mkern20mu vecwTXTX vecw2 vecwTXT vecy+ vecyT vecy

نحن نفرق بين التعبير الناتج:
 fracd( vecwTXTX vecw2 vecwTXT vecy+ vecyT vecy)d vecw=2XTX vecw2XT vecy=0

XTX vecw=XT vecy

 leftarrow العمل السابق للمؤلف - "نحل معادلة الانحدار الخطي البسيط"
 rightarrow العمل التالي للمؤلف - "مضغ الانحدار اللوجستي"

أدب


مصادر الانترنت:

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

الكتب المدرسية ومجموعات المهام:

1) ملاحظات محاضرة في الرياضيات العليا: دورة كاملة / D.T. مكتوب - 4th الطبعة. - م: مطبعة ايريس ، 2006
2) تحليل الانحدار التطبيقي / N. Draper ، G. Smith - 2nd ed. - م: المالية والإحصاء ، 1986 (مترجم من الإنجليزية)
3) مهام حل معادلات المصفوفة:
function-x.ru/matrix_equations.html
mathprofi.ru/deistviya_s_matricami.html

Source: https://habr.com/ru/post/ar479398/


All Articles