Lecture_11
السلام عليكم يا شباب يلا بينا بقى في اخر lecture  11.lecture هناخد فيها ال PCA خلينا نرجع كده هي فين اهي ال slides  هي هناخد فيها بس ال PCA اللي هو Algorithm
يقع تحت unsupervised machine learning ويستخدم في حاجة اسمها dimensionality reduction هنفهم بكل الكلام ده يعنى  ايه. unsupervised  machine learning هو حاجتين اما clustering وده خدنا عليه مثال K means في المحاضرة اللي فاتت او dimensionality reduction انه يقلل ال impersonation
وهنفهم بيعمل ده ازاي من خلال ال PCA حلو اووى تعالى بقى اشرح لك الحتة دي من ال slides  بتاعتي افضل طيب احنا دلوقتي كنا قلنا في اول السنة خالص اه اني لو انا عايز اشتري شقة دلوقتي
فاللي كان وإحنا بنعرف يعني إيه features قلنا دي الصفات اللي على أساسها بيتحدد سعر الشقة ال features دي كلمنا عن إنه ممكن يبقى حجم الشقة لما جينا بقى بدأنا نفهم ونتعمق نشوف إيه ال features  اللي بتأثر في سعر الشق
لانها عدد ال rooms كمان.ال view هل فيها garden  ولا لا? ال location هل في super markets  قريبة منها ولا لا? هل اه عدد الابواب قد ايه التشطيب عامل ازاي? الجيران عاملين ازاي?
الـ Features كترت قوي بذات بذات ان دلوقتي الـ Data بقت معانا مهولة فبقى معانا Features رهيبة بقت موجودة طبعا الـ Features دي كترها ده يلغبط ال model يعني كتر الـ Features يخلي الmodel يتلغبط
فيحفظ الـ data يـ over fit يـ over fit الـ data خدها قاعدة كده كل ما عدد الـ features بيزيد كل ما الـ over fitting بيزيد وبالتالي الحل احنا عايزين دلوقتي نقلل الـ dimensions دي او نقلل الـ features دي طيب احنا محتاجين نقلل الـ features دي
بس من غير ما نقصها أصل ال features دي كل واحدة فيهم مؤثرة فعلا في ال target يعني أنا بعد ما عملت feature selection وخلاص اخترت أهم 100 لا أنا مش عايزهم 100 أنا عايزهم 50 ولكن ما ينفعش اشيل 50 ما ينفعش select 50 ليه عشان ال50 تاني مهمين جدا
فبعمل ساعاتها بقى حاجة اسمها feature extraction أو dimensionality reduction وهنا نفهم اختلاف حاجتين أول حاجة يعني ايه feature selection feature selection يعني أنا عندي حاجة كبيرة أهى data كبيرة وأنا بselect منها some features والباقي برميه. طيب feature extraction
لأ feature extraction معناها أن أنا كان عندي two features مثلاً هنا الطول والعرض بتاع البيت أنا هلغي الfeature دي وهطلع منها feature جديدة اللي هي مثلاً ال number of rooms أو مثلاً غير ال number of rooms هطلع منها المساحة
فكده بدل ما كان tow features   لأ انا شيلتهم وعملت extract لfeature جديدة بتعبر عن اللي اتنين دول وكده انا قللت ال dimension طيب اللي بيعمل بقى dimensionality reduction حاجة اسمها PCA Principle Component Analysis
وmainly الفكرة بتاعته خلينا نجيب ال board عشان نفهم الحتة دي كويس يا مسهل الحال يبقى بص ال PCA بيشتغل ازاي حتة ال principal component هي
حتة projection في الاخر. طيب يعني ايه? هو بيعمل ايه باختصار? انا دلوقتي عندي data. ثانية واحدة. انا دلوقتي عندي data. الdata دي 2D. حلو? والقيم والله بتاعتها اهي اهي.
هي دي كده data 2D نفترض اني انا عايز اعملها دلوقتي dimensionality reduction فعايز اقلل 2D ده انه هو يبقى 1D ال PCA بيعمل ايه بقى بيوجد ال best line ال best line هل best fit line لا
اسمه best line with minimum projection error هنفهم ايه الprojection error ده دلوقتي فهو بيختار line الline ده يproject الpoints دي عليه كلها بحيث انها تنزل عليه 90 درجة 90 درجة يproject الpoints دي كلها
ايه? هنا بس. فكل point  هتسقط على هذا الline. يحصل لها projection. فكده بعد ما كانت 2D بقت على line واحد فبقت 1D. كده حصل dimensionality reduction. الPCA بيشتغل كده? طب الline ده بقى. هو احسن line ايه? والله ده احسن line عنده projection.
طب هو ايه الprojection error  ده؟ الprojection error  هو المسافة ما بين الـ Point و ... الـ Point الـ Normal عليها يعني المسافة ما بين الـ Point دي و الـ Point دي اللي هي على 90 درجة منها ده الـ Error الـ Mean Square بتاع الـ Errors ده هو بيجيب
الـ line صاحب أقل منmean square projection errors  طيب حلوة قوي كده فهمنا طيب يبقى كده الـ dimensionality reduction علشان كان عندي مشكلة اسمها curse of dimensionality يعني ايه curse of dimensionality يعني dimensions عليت عندى اووى بسبب كتر  الد
وبالتالي بقى بتمثل لي مشكلة اسمها curse of dimensionality . ال dimensionality  المهولة. فانا عايز اقلل الdimensions دي. تمام? طيب. ال PCA يستخدم في الdata compression  ان انا ا compress الdata. او علشان اعمل data visualization لان منطقي لو انا عندي دلوقتي داتا عبارة عن عشرين في دي.
مش هتعرف ترسمها. انت هتحتاج ساعتها تعمل لها PCA علشان تقلل ال dimensions بتاعتها لاتنين او تلاتة علشان انت اخرك بتشوف ال 3D تمام? فهي بتستخدم في ال data visualization برضو. ال dimensionality reduction اني اه عندنا مثال ابسيط اهو ان انا بيبقى عندي
ال data 2d انا عايزها في ال 1d فهو بيعمل ايه بيوجد line صاحب اقل projection error تمام وبيسقط كل point بي project كل point عليه بتسعين درجة يبقى كده حاولها هال1d وعمل dimensionality reduction او بعد ما تحولت لايه 1d وكده حصل لها dimensionality
هو ده principle component analysis بس خد بالك ان ده مختلف تماما عن linear regression linear regression كان بيوجد الbest fit line بناء على regression error لكن هنا بيوجد الbest line بناء على الprojection error تم
وهوريك كمان الفرق بينهم في الgraph تحت فيه graph تحت بيقارن ما بينهم. تمام? طيب. هنا بيعرف لك ايه ال projection error  ده. ايه ال projection errorده اللي هو ال squared orthogonal distances 
orthogonal   يعني تسعين درجة. orthogonal distance  اللي هو ال X-Xapproximate  .  
Xapproximateهي  ال point اللي على الline ذات ن.
و X دي الpoint الحقيقيه فانت بتميينسهم من بعض وتعملهم square وتجيب summation وتقسم على عدد الsamples اللي هو ال average square ال average projection error و بيحاول ي minimize  ده على قد ما يقدر. تمام؟ طيب. نفس الكلام بقى بيحصل على لو انا عايزة انزل من 3D ل 2D بس الفرق
ان الprojection هيحصل بدل ما كان بيحصل على line هيحصل على plane . طيب لو انا كان عندي من 4D ل3D عادي نفس الكلام هيحصل بس الprojection هيحصل على 3D plane. دايما انت بت project على حاجة اقل من الdimension  بتاعك بواحد. تمام?
او بمعنى اصح بتproject يعني لو انا دلوقتي مش منديك اه اه حاجات يعني مش قايلك الdata الdimension بتاعها قد ايه بس بقول لك الdimension بتاعها كبير N وانا عايز انزلها لK dimension يبقى هي هتproject على على
plane of كم vector ماهو plane ما هو إلا مجموعة من الvectors يعني الplane 2D  هو 2vectors هو ما هو إلا 2vectors تمام
 2lines vectors طيب لو أنا دلوقتي عايز أنزلها لk dimension أنا عندي data عبارة عن n dimension عايز أنزلها لk dimension
طيب اللي انت هت project عليه ده بقى. ال dimension بتاعته قد ايه?ال dimension بتاعته K. في vector لكل component analysis بس كده. تمام? طيب. وده دليل على اللي احنا قولناه احنا ال dimension اللي هو N ب2. وانا عايزك تنزلها ال1D. كان فيه كان
كام vector هو واحد. طب هنا كان 3D وانا عايز انزلها ل2D. كان فيه كام vector 2 اللي هم عملولي 2D plane. تمام? تاخد بالك زي ما قلت لك الPCA not linear regression  هو مش linear regression .
ال linear regression كان بيوجد الفرق بين ال point دي و ال point اللى على ال line .
ال point الموازية على الline  المقابلة ليها على الline  لكن ال PCA لا ده بيوجد الفرق sorry انا اسف انا شاورت غلط اللى على الشمال ده ده الlinear regression اللي هو بيشوف ال point دى  المفروض كانت تبقى فين ال point دى المفروض كانت تبقى فين على الline تمام
لكن هنا الPCA؟ لأ ده بيوجد الpoint دي. الpoint صاحبة التسعين درجة الموازية ليها على الline بكام؟ فالفرق وده سؤال على فكرة جيه فى كنت امتحنته في امتحان فودافون. كان بيسأل الفرق بين الاتنين دول.
ده linear regression. ليه? بشوف بشوفال point دي هي على الline مكانها فين? لكن انا في الPCA بشوف النقطة دي تسعين درجة منها هتنزل فين على الline? تمام? طيب. حلو اووى. ازاي بيعمل ده? هو كده انا باخد data
بيوجد لها الline وبعمل لها الorthogonal وكلام ده كله ده بيحصل ازاي هو mainly الdata بتاعتك الfeatures بتاعتك اهو vector x بيحصل عليه transformation الtransformation دي بتديك قيم مختلفة بتعبرلك عن نفس الfeatures  بس في dimension اقل
بس ده اللى بيحصل. يعني أرقام مختلفة. يعني أرقام مختلفة. يعني أنا دلوقتى لو عندى الـ features عبارة عن حجم الشقة الجيران مش عارف ايه هيديك أرقام مختلفة مش بتعبر عن نفس الحاجة ولكن بتعبر عن نفس الـ distribution في الـ statistics فبتدى نفس المعنى.
مع some loss of information اعرف ان الtransformaiton ده بيحصل فيه some loss loss قليل طيب حلو قوي خطوات ال PCA هي بسهولة بيعمل ايه بيعمل في الاول data pre processing ان انت بيبقى معاك ال data لازم تعملها في الاول
feature scaling و mean normalization انت بتعمل ايه بتحسب الmean بتاعة data بعد كده تعدي على كل point في data ت minus  منها الmean خلي بالك احنا هنا بنتكلم على كل column يعني انا بحسب في الاول الmean لكل column بعد كده بعدي على كل point في الcolumn
ا minus منها الmean. كده انا بعمل ايه? حاجة اسمها mean normalization طيب بعد ما بعمل ده بscale الfeatures  كلها. علشان يبقوا كلهم في range واحد عشان انا معتمد على ال statistics  بعد ما بعمل كده بعد ما بعمل كده انا بطبق بقى الPCA algorithm.
حلو قوي الPCA algorithm الحقيقة تفاصيل الstatistics بتاعته كتير جدا وكبيرة والحقيقة ان هي متقالتش خالص احنا يعني خدناه بشكل سطحي فانا حاول اوضح لك على قد ما اقدر تمام طيب حلو قوي مبدئيا اول حاجة في خطوات الPCA
إن أنا بحسب الconfusion matrix تمام؟ طيب الconfusion matrix دي بتتحسب إزاي؟ بتتحسب بالequation دي إن أنا بمسك الvector of feature أضربه في نفسه transpose أضربه في نفسه outer product
طيب في linear algebra ال outer product ل two vectors بيطلع لي في النهاية matrix حلو حلو خلصنا من ده طيب دي القانون اللي بحسب بيه covariance matrix طيب هي ايه covariance matrix دي والله covariance matrix دي
بتبقى matrix identical بتعبر عن حاجتين وعشان كده هي اسمها covariance هي بتعبر عن الvariance وبتعبر عن الcorrelation عشان كده سموها covariance matrix طيب تعالى أوريك covariance matrix عندي
هنا اهو. تمام? دي الطريقة عموما اللي بنحسب بها ال covariance matrix. اهي. حلو اووى.  ال covariance matrix هي اه بتبقى اه زي اه هي square matrix. الdiagonal الاولاني ده. الdiagonal الاولاني ده. بيعبر لي عن ال variance بتاع الdiag.
ال anti-diagonal هو ال diagonal بالعكس بيعبر لي عن correlation بتاع ال data الcovariance matrix دي ليه مهمة بالنسبة لي ان انا احتفظ بها وانا بعمل dimensionality reduction او بعمل اي transformation عال data علشان دي اللي بتعرفني ال variance و correlation
هي دي بتحفظ لي العلاقات علشان لما اطلع ل dimension اعلى او dimension اقل ابقى انا احافظ العلاقات في matrix تمام طيب حلو قوي نرجع تاني يبقى انا اول حاجة بجيب بعد الpre-processing والكلام اللي اتكلمنا عنه انا بجيب covariance matrix وفهمنا ايه covariance matrix دي وعر
بجيبها ازاي طيب بعد ما جبت covariance matrix انا كده بقى معايا matrix الmatrix دي بقى بعملها بعملها SVD SVD ده اللي هو singular value decomposition تمام singular value decomposition دي عملية في linear algebra خدناها بتعمل factorization
لل matrix factorization يعني ايه factorization يعني تكسير وتطلع منها factors تمام طيب هي مش هنخش تفاصيل linear algebra  بس هقولك باختصار لو انا اهي الmatrix هي دي بتاعت ال covariance matrix مثلا لو انا عملت لها singular value decomposition ال output بتاعها بيبقى 3 matrices مضروبين في بعض
جميل قوي اول matrix بتطلع هي الmatrix of eigenvectors تمام eigenvectors اللي هي الU دي مثلا بيبقى عندك vectors كل الmatrix هي جواه eigenvectors بتاعتdata كاملة
الثانية بتبقى كلها صفار مع عدد diagonal الdiagonal كله في القيم بتاعة الـ eigenvalues حلو؟ القيم بتاعة الـ eigenvalues ودي ده اللي هو الباقي بعد ما طلعت الـ eigenvectors و eigenvalues ده اللي فاضل بيتح
معي. فهو بيعمل ال SVD بيعمل بيعمل factorization factorization  معناها ان انا ببقى بمسكها بفصصها لتلات حاجات. matrix of eigenvectors 
matrix of eigenvalues و بتبقى ال diagonal بتاعها بس والباقى اصفار.
والmatrix العادي. انا بستخدم بقى ال matrix of eigenvectors و ال matrix of eigenvalues  دي في ال PCA تمام? طيب تعالى نشوف بنستخدمها ازاي. انا دلوقتي الmatrix بتاعت ال eigenvectors دي بتعبر لي جدا عن الdata. دي اكتر واحدة بتعبر لي عن الdata. دي هي اصلا عبارة عن vectors معبرة عن الdata.
كل vector فيهم يعني كل raw فيهم بيعبر لي عن الـ eigenvector بتاع column في الـ data فده الـ dimensions بتاعته هي هي نفس الـ dimensions بتاعت الـ columns بتاعت الـ data طيب حلو قوي وده ايه بقى اللي بيعبر فيه بيعبر فيه انه هو مترتب
من حيث الاعلى variance ثم الاقل يعني ال eigenvectors بيبقى هنا ده اعلى variance في الdata. اعلى ثم اعلى variance ثم اعلى variance لحد الاقل. طيب. ال PCA بيعمل ايه بقى?ال PCA بياخد نفترض انا دلوقتي. الdata بتاعتي كانت ال
column معنى كده ان الmatrix of eigenvectors دي جواها  1000 vector انا دلوقتي في الPCA انا عايز 50 principal component analysis يعني عايز ان انزل الفيتشارز من 1000 ل 50 ساعتها باخد الmatrix بتاعت ال eigenvectors دول
اللي جواهم 1000 vector وهاخد اول 50 بس وهسيب ال 950 ارميهم خلاص مش محتاجهم تمام طيب بعد ما خدت الجزء ده من الmatirx بتاعت ال eigenvector
هروح اضربها هروح اضربها في الx اللي هي ال features الاساسية بتاعتي اللي هي ال features بتاعتي اللي في الdata الdata كاملة بتاعتى الmatrix بتاعت الdata كاملة بتاعتى اللي فيها 1000 feature انا هروح اضربها في الmatrix بتاعتي
اللي فيها الـ 50 vector بتوعي وهم كده كده فيهم نفس عدد الrows وبالتالي انا هعرف اعمل matrix multiplication عادي جدا وهضربهم في بعض الـ output بتاعهم بقى الـ output بتاعهم هي دي الmatirx الجديدة اللي بتمثل الـ data
الجديدة. بس كده. حلو? نعيد تاني. نعيد تاني. انا بعمل pre processing وبخلص pre processing وهكذا. بعد ما خلصت pre processing بحسب ال covariance matrix  ال covariance matrix تتحسب كده. بعد ما بحسب covariance matrix بعمل لها singular value decomposition  .
بتقسمها لثلاثة matrices: matrix of eigenvectors ,
 matrix كلها صفار والdiagonal بتاعها هو eigenvalues وmatrix ثالثة ملاهاش لازمة بالنسبة لنا هنا في الPCA بعمل ايه بقى باخد ال matrix بتاعت الeigenvectors دي
هي بتبقى بنفس ال dimension  بتاع ال data. باخد منها اول K. اول K  ال K ده اللي هو عدد ال principles components  اللي  انا عايزهم. ده hyperparameter انا اللي بحدده. اللي هو انا عايز كم ال features  اقللها لكم feature. فباخد الاول ال K والباقي برميه. علشان كده قلت لك بيحصل some loss of information.
ال loss of information دى بتحصل نتيجة الجزء اللي انا برميه.
خدت الجزء K وهو عبارة عن K Features ونفس عدد ال rows بتاع ال data الأصلية هاخدها واضربها في X. X هو Matrix of 1000 Features اللى هما عدد الـ Features الحقيقي ونفس عدد ال rows فبالتالي هعرف أضرب الـ 2 matrices في بعض الـ Output هيطلع Matrix جديدة. الmatrix الجديدة دى تمثل لي الـ Data الجديدة
الdata الجديدة اللي عبارة عن K columns وده بيعبر لي عن الdata الجديدة في ال dimension الأقل حلو اووى احنا كمان ينفع نعمل خلاص احنا كده عرفنا ازاي بنعمل PCA كمان احنا ينفع نعمل reconstruction
لا مش عايز copilot فى حاجة عايز اعمل او اقدر اعمل reconstruction reconstruction  يعني ايه يعنى ارجع بقى اعمل عكس العملية دي تاني اعمل عكس العملية دي تاني ازاي عن طريق ان انا اعمل العكس حرفيا ما هو انت ال X approximation كانت عبارة عن
الU Reduce في Z. الU Reduce دي بتتقال على ايه? بتتقال على الmatrix بتاعةال eigenvectors بعد ما خدت اول K منها. دي بيتقال عليها U Reduce. لما ضربت الU Reduce في X ساعتها جابت لي Z اللي هي
الdata الجديدة طيب لو انا عايز لو انا عايز الX يعني انت معاك equation انت عايز الX عايز تعمل عكس العملية خلاص هتعمل Z في U Reduce transpose inverse بقى هتعملها inverse كأنك عملت divide فساعتها هتجيب هتبقى عملت reconstruction وجبت
العكس بتاعها. تمام? طيب. حلو قوي. حلو قوي. طيب. ال choose بتاع الK بقى. ال hyperparameter ده او عدد ال principle component analysis او عدد الfeatures الجديدة اللي انا عايزها. بختارها على اساس ايه? والله انا قلت لك معلومة. قلت لك اني الmatri.
of eigenvectors دى بتبقى مترتبة من أعلى variance لأقل عشان كده انت بتslice اول K عشان تاخد اعلى variance تمام طيب خليك فاكر ان دايما الprinciple component analysis بيقلل بيهتم بحاجتين اول حاجة الaverage projection error انه هو عايز يقلله قدر الامكان
وانه يحاول يعلي الvariance  الvariations اللي في الdata ياخد اعلى variations الeigenvectors قلتلك اعلى variations بيبقوا في الاول واقل variations بيبقوا في الاخر تمام طيب فبنchoose الK ازاي عن طريق ان احنا مش دول ال2 factors اللي احنا مهتمين بيهم
احنا يهمنا ان احنا نقلل الerror على قد ما نقدر ونعلي الvariation على قد ما نقدر طب حاجتين عكس بعض اقسمهم على بعض ويبقى ده الfactor اللي انت عايز تعليه. دلوقتي انا مثلا هو راح قلي في الاد ده القانون يعني. تمام? الـ X دي الـ Data بتاعتك X Approximation دي اللي هي موجودة على ال.
والX دي الdata بتاعتك بس عادي جدا. انت كده عارف كل حاجة في الequation. لو هو قال لك ان انا عايز اchoose الK to be the smallest value so that ان هو ما يخسرش اا اني الخسارة والloss في الdata تبقى اقل من واحد في المية.
يبقى الequation دي لازم تبقى اقل من او تساوي 0.01 بس وحل الequation دي هتحل الequation دي ازاي عن طريق ان هو هيبقى بيجرب بيجرب بقى مرة الK 1 ويقوم حاسب ال U Redu
ويقوم حاسب الequation دي. طلعت اقل من 0.01 perfect. يعمل تاني يجرب ب2. ويجرب ب3 يجرب ب4 يجرب ب5 وهكذا. for loop الbase case اللي هيتطلعه ايه بقى او امتى هيوقف? ويقول لك خلاص انا كده دي اعلى K انا اقدر
استخدمها علشان ال loss of information يبقى اقل من 1% لما يلاقي ان الequation دي اتخربت ان لما هو راح اما حسب الU Reduce واما ضربها وعمل وسوى يطلع هنا اكبر من ال 0.01 بس ساعتها يقف ويبقى دي اعلى K هو يقدر يستخدمها
بloss واحد في المية او اقل. تمام? طيب. في طريقة تانية برضو اه احسن و computationally اه اسهل يعني. وهي ان انت دلوقتي عندك الmatrix بقى of eigenvalues اللي هي كلها صفر ولكن ال diagonal بيعبر لك عن eigenvalues.
انك تلف على ال eigenvalues دي. الeigenvalues  دي. اه اه الeigenvalues دي. وتشوف القيمة. يبقى انت بتجمع على الK يعني انت بتجمع فوق على الK على الK  يعني مثلا ادي data كلها.
فيها الـ eigenvalues كلهم نفترض أن فيها أن الdata بتاعتك لو كانت 1000 feature فعدد الـ eigenvalues دول 1000 فهو بيروح يجمع القيم بتاعتهم تحت اهو تحت بيجمع على الـ N فهو هيجمع قيمة الـ eigen
اه values كلها اللي هم ال1000 قيمة هيجمعهم كلهم. طب وفوق. فوق هيجمع على الK يعني هيجمع الeigenvalues من الاول فوق اهو يفضل ينزل لحد K يجمع اه مثلا اول خمسين بس في الdiagonal دول. طيب. يعمل واحد ناقص اللي اتنين دول على بعض الratio على بعض.
دى هتوريه هو الloss قد ايه يعني حقق قد ايه من الdata انت واخد بالك انت كده ما هو الـeigenvalues بيعبرولى برضه عن الـ variations فانت لما تروح تجمعلى الـ variations اللي انت  أخذتها على الـ total variations في الdata كلها تعرف أنك أخذت قد ايه من الـ total
لما تعمل 1 ناقص كأنك بتعمل 100% ناقص الvariations اللي انت خدتها فتعرف الloss فتعمل ده اقل من او يساوي الـ 0.01 وهكذا طول ما انت تعد برضو هنا تجرب في الequation دي تsum لما الK ابقى بـ 1 وتشوف
لما الK بقى ب2 وتشوف لما الK بقى ب3 وتشوف لما 4 وتشوف لما 5 وتشوف وهكذا ويتشوف بيعمل اول ما الequation دي تتكسر ساعتها تطلع ويبقى دي احسن K حلو طيب ليه دي efficient عن دي
دي efficient عن دي يعني استخدام eigenvalues في حساب الK احسن بكتير من استخدام الU Reduce اللي هي بتاعت الmatrix of eigenvectors علشان خاطر هنا انا عامل for loop بتلف على الK هنا عامل for loop بتلف على الK بس انت لو واخد بالك
هنا كل اللي بيحصل انه بيaccess ويsum 
O of 1 مفيش حاجة لكن هنا ده كل مرة بيحسب جوا الfor loop اللي بتلف ع الK دى كل مرة بيحسب الU Reduce يعني كل مرة بيحسب الcovariance matrix
ويلف جواها علشان يslice عدد K وبالتالي الcomplexity أعلى طبعا طيب خد بالك من معلومة كمان إن لو أنا أخدت الترم ده كله وعايز أعبر عنه بنفس الequation دي فأنا ممكن أقول إن الterm ده
لازم يبقى اكبر من او بيساوي 0.99. هي هي. ليه? لان ده انت واضح لك ان دي الratio. انت خدت variations قد ايه من الvariations كلها. وانا بقول لك ان انا عايز احافظ في الdata بتاعتي على variations اعلى من 99%. هي هي اهي? انا خدت قد ايه? من total variations لازم يبقى اكبر من او بيساوي 0.9.
اهو كده معناها دي معناها ايه ان انا 99% من ال variance retained يعني معناها معايا في الdata وال variations 99% معايا منها في الdata انا عملت loss ل 1% بس تمام principle component analysis هي statistical procedure  بص تعتمد على
بشكل كامل بدور على correlated values وعلشان كده قلت لك بيستخدم الcovariance ليه علشان الcovariance  بي بيعرف الcorrelations بيحتفظ بال correlations  بتاعة الdata وبيحتفظ بالvariance بتاعة الdata وبالتالي بيعرف يستخدمهم على طول بحيث ان انا
برمي الcorrelated variables أي correlated features برميهم وبحتفظ بال uncorrelated طب ليه؟ علشان الcorrelated  ما هو بيديوني نفس المعلومة خلاص statistical wise ده لما بيزيد ده بيزيد خلاص ما بيديوني نفس المعلومة ايه فايدة ال dimension الزيادة ده فبيشي
تمام ال PCA يستخدم في ايه؟ ال PCA يستخدم لو انا عندي supervised data أنا supervised data بيبقى عبارة عن x,y, x,y, x,y
فأنا بفكس للـ Label خالص بفكس للـ Label أركينه على جنب باخد الـ Features بس بدون Label علشان كده الـ PCA اعتبر Unsupervised Machine Learning عشان ما بيستخدمش Label هو بيستخدم الـ Features بس فبرمي الـ Label على جنب باخد الـ Features أحقق عليها الـ PCA فأطلع لي الـ Features الجديدة بتاعتي
طبعا features أقل ولكن نفس عدد الrows أخذ بقى الmatrix الجديدة دي أconcatenateها مع التارجت طبعا كل row هو هو نفس الtarget بتاعه الاختلاف بس أن عدد الfeatures كأني عملت لها compress كده المعلومات عملت لها compress بدل ما كانت في 1000 column بقى
في 50 column. مثلا يعني. الPCA يستخدم في ال compression وان انا اقلل memory disk وبspeed up  الalgorithm طبعا عشان بنقلل ال dimensions. وطبعا بحتفظ بكام في المية variance retain ده مهم جدا ودايما ببقى عايز اقلل اي loss في الinformation عندي. اه في ملحوظة كمان انا قلت لك ان انا ينفع اعمل reconstruction يعني ينفع
هعمل من نفس الequation هروح اعمل inverse و اقلبها بحيث ان انا من بعد الtransformation دي اقدر ارجع بقى الX الاصلية بس خد بالك ان انت مش هترجع نفس الX هتطلع طبعا هترجع نفس الX بنفس ال dimension ولكن مش هترجع نفس القيم بالظبط
ولكن هتطلع قيم approximate ليها بالظبط. طيب هي ليه approximate  مش نفس القيم بالظبط approximate  بسبب الloss of information اللي حصل لما انت جيت تطلع ال U Reduce رميت باقي eigenvectors كله. وده اللي عمل
الـ loss of information. في الـ visualization احنا دايماً بنخلي الK بـ 2 أو بـ 3 لإن أنا ما بقدرش أشوف أكتر من 2D أو 3D. هو 3D ده آخرى. Bad use للـ PCA أني في ناس أول ما بتلاقي الـ data تقولك يلا بينا نستخدم الـ PCA. لا لا مش مش شرط الـ PCA ممكن يبوظ الـ data.
وممكن يفيدها يعني على حسب اكتر bad use بيستخدم الناس بتستخدم فيه الPCA ان يقولك انا هعمل PCA علشان اقلل الover fitting على اساس ان الover fitting ده لما الfeatures بتزيد الover fitting بيزيد فبيقولك خلاص انا اعمل PCA عشان الfeatures  تقل فالover fitting
الحقيقة ان الPCA ساعتها هيbehave وحش جدا هو مش بيستخدم للover fitting الover fitting عايز تمنعه اعمل regularization وده اتوقع سؤال ييجي في الامتحان لكن الPCA لا يستخدم في الover fitting هو بيستخدم عشان يقلل الnumber of features لكن
حتة ان انا استخدمه علشان fewer features less likely to overfit ده كلام جميل بس ده فعلا ممكن يشتغل بس ده مش الgood way علشان ادرس الoverfitting استخدم الregularization احسن والPCA بيستخدم في dimensionality reduction عشان اقلل
كده خلصنا المنهج شكرا يا شباب يا رب اكون فيدتكم الترم ده السلام عليكم