דוגמה לניתוח גורמים ראשיים בשני ממדים. הווקטורים המאוירים מתאימים לגורם ראשי ראשון (הארוך) ולגורם ראשי שני (הקצר). הווקטורים הם וקטורים עצמיים של מטריצת השונות המתואמת שנורמלו על ידי שורשי הערכים העצמיים המתאימים, והוסטו כך שזנבם נמצא על ממוצע ההתפלגות. פיזור הנקודות בתמונה הוא לפי התפלגות גאוסיאנית דו-ממדית (עם ממוצע (1,3), סטיית תקן 3 בכיוון (0.478, 0.878) וסטיית תקן 1 בכיוון המאונך).
**ניתוח גורמים ראשיים** או **PCA** (ראשי תיבות באנגלית של: **P**rincipal **C**omponents **A**nalysis) היא שיטה להתמרה ליניארית של נתונים למערכת קואורדינטות חדשה שבה המידע בקואורדינטות השונות הוא אורתוגונלי ובעל שונות הולכת וקטנה. שימוש נפוץ בשיטה הוא לצורך מציאת ייצוג מממד נמוך למידע מממד גבוה (תהליך הנקרא הורדת ממד). שיטה זו הומצאה בשנת 1901 על ידי קרל פירסון והיא שימושית מאוד בסטטיסטיקה ובלמידת מכונה.

בהינתן מדגם של וקטורים מממד d (שהממוצע שלהם הוא אפס), ניתוח גורמים ראשיים ממיר אותם לקואורדינטות אחרות, שמהוות קומבינציה ליניארית של הקואורדינטות המקוריות, שגם בה הם מממד d, ולקואורדינטה הראשונה (הנקראת הגורם הראשי הראשון) יש את השונות (של איברים באותה הקואורדינטה בכל הווקטורים במדגם) הגדולה ביותר האפשרית, לקואורדינטה השנייה (הגורם הראשי השני) יש את השונות הגדולה ביותר האפשרית תחת האילוץ שהיא אורתוגונלית לקואורדינטה הראשונה, וכן הלאה. בצורה זו, השונות המשותפת המדגמית היא 0, ועל כן השמטת משתנה לא תפגע בשונות של המשתנים האחרים. התמרה זו ניתנת לייצוג ככפל של המטריצה המייצגת את ההתמרה במטריצה שעמודותיה הן וקטורי המדגם. כך, כל גורם ראשי הוא מכפלה פנימית עם שורה במטריצה המייצגת את ההתמרה, ושורות אלו נקראות הווקטורים הראשיים. הורדת הממד נעשית על ידי לקיחת מספר קטן של גורמים ראשיים בלבד, שהשונות שלהם היא הגדולה ביותר. 

לדוגמה, נניח כי בידינו תוצאות של ניסוי הבוחן משקל, גובה וגיל. דגימות אלו נמצאות במרחב וקטורי תלת-ממדי שהרכיבים של כל נקודה בו הם משקל, גובה וגיל. אם נרצה לשמור את המידע רק באמצעות 2 משתנים, ניאלץ לבחור איזה משתנה להשמיט. יכול להיות, שיש מתאם גבוה בין המשתנים, ואז אנו מאבדים מידע רב בצורה זו. באמצעות ניתוח גורמים ראשיים ניתן להוריד את הממד של המידע לממד נמוך יותר אשר יכול לגלות קשרים בין המשתנים השונים. כך, במקום לאפיין אדם על ידי שלושת הפרמטרים – משקל, גובה וגיל, ייתכן כי ניתן לאפיין אותו על ידי שני פרמטרים בלבד, ומתוכם לשחזר את המשקל, הגובה והגיל שלו. לשם כך נחפש את ההטלה הליניארית האופטימלית אשר עליה השונות של המדגם היא רבה ככל הניתן, ואחר כך נפחית אותה מהמדגם ונחפש את ההטלה הבאה עם השונות הכי גדולה. אלו שני הווקטורים העיקריים הראשונים, שאם נטיל את המשקל, הגובה והגיל של אדם עליהם נקבל שני פרמטרים שממזערים את המידע והשונות שנאבדים.

ניתוח גורמים ראשיים ניתן למימוש באופן הבא:

1. מפחיתים את הווקטור הממוצע מכל דגימה. לרוב גם מנרמלים כל דגימה לשונות של 1.
2. מחשבים את מטריצת השונות המשותפת (covariance) על ידי הכפלת מטריצת הדגימות (לאחר הפחתת הממוצע) במטריצה המשוחלפת שלה.
3. מלכסנים את המטריצה. המטריצה חיובית לחלוטין, ולכן כל ערכיה העצמיים ממשיים וחיוביים. ממיינים את הערכים העצמיים בסדר יורד (ואת הווקטורים העצמיים בהתאם), ומנרמלים את הווקטורים העצמיים.
4. הווקטורים העצמיים הם הווקטורים העיקריים. אם מטרתנו היא לבצע הורדת ממד, לוקחים כמה מהווקטורים העצמיים הראשונים (המתאימים לערכים העצמיים הגדולים ביותר).
5. המטריצה אשר שורותיה הם הווקטורים העצמיים היא ההעתקה הליניארית המבצעת ניתוח גורמים ראשיים.

חשוב לציין כי שלב מספר 1 אינו הכרחי לצורך נכונות האלגוריתם. המטרה של PCA היא למזער את המרחק בין הנקודות המקוריות, לבין הנקודות לאחר "קידוד" לתת-המרחב הליניארי ו"פענוח" בחזרה למרחב המקורי. גם ללא הפחתת הממוצע, האלגוריתם המתואר עדיין מממש את מטרת PCA במזעור המרחק.

יחד עם זאת, הפחתת הממוצע לרוב מאפשרת תוצאות טובות יותר ל-PCA, שכן בכך תת-המרחב הליניארי שמוחזר מהאלגוריתם הוא תת-המרחב שיכול להפריד את הנקודות בצורה הטובה ביותר. 

באמצעות פירוק לערכים סינגולריים (באנגלית: SVD) של מטריצת הדגימות, ניתן למצוא את הווקטורים העיקריים מבלי לחשב באופן מפורש את מטריצת השונות המשותפת, ולרוב שיטה זו מועדפת על פני לכסון, במיוחד כאשר כמות הדגימות קטנה משמעותית מממד הדגימה.

מאפיינים
--------

* זו השיטה הליניארית להורדת ממד שעבורה השגיאה הריבועית הכוללת של שחזור הנתונים היא מינימלית.
* מיקסום השונות למעשה ממקסם את המידע שיש בנתונים, מתוך הנחה שמה שמעניין במדגם הוא ההבדלים בין הדגימות ולא הממוצע שלהן.
* על אף שמקובל לזנוח את רוב הגורמים הראשיים מלבד הגדולים ביותר, ייתכן כי דווקא הגורמים הקטנים יותר מכילים מידע מעניין.
* ישנה הרחבה לשיטה המאפשרות לבצע התמרה לא ליניארית. דוגמה פשוטה למקרה שבו זה שימושי היא מדגם אחיד של נקודות ממעגל היחידה. שימוש ב-PCA בצורתו הרגילה לא יועיל במקרה כזה משום שהשונות זהה בכל כיוון. אולם, המרת הדגימות לקואורדינטות קוטביות תאפשר לנו לזנוח את הגורם הראשי השני (שהוא הרדיוס הקבוע עם אפס שונות), ולשמר את הגורם הראשי הראשון – זווית הדגימות.

ראו גם
------

* T-SNE
* מיפוי סאמון
* ClustVis

קישורים חיצוניים
----------------

ויקישיתוף מדיה וקבצים בנושא **ניתוח רכיבים עיקריים** בוויקישיתוף   **המזהה לא מולא ולא נמצא בוויקינתונים, נא למלא את הפרמטר.**
* ניתוח מרכיבים ראשיים (PCA) – למה, איך ואיך לא - יוסי לוי, נסיכת המדעים