ניתוח רכיבים עיקריים

דוגמה לניתוח רכיבים עיקריים בשני ממדים. הווקטורים המאוירים מתאימים לרכיב עיקרי ראשון (הארוך) ולרכיב עיקרי שני (הקצר). הווקטורים הם וקטורים עצמיים של מטריצת השונות המתואמת שנורמלו על ידי שורשי הערכים העצמיים המתאימים, והוסטו כך שזנבם נמצא על ממוצע ההתפלגות. פיזור הנקודות בתמונה הוא לפי התפלגות גאוסיאנית דו-ממדית (עם ממוצע (1,3), סטיית תקן 3 בכיוון (0.478, 0.878) וסטיית תקן 1 בכיוון המאונך).
ניתוח רכיבים עיקריים או PCA (ראשי תיבות באנגלית של: Principal Components Analysis) היא שיטה להתמרה ליניארית של נתונים למערכת קואורדינטות חדשה שבה המידע בקואורדינטות השונות הוא אורתוגונלי ובעל שונות הולכת וקטנה. שימוש נפוץ בשיטה הוא לצורך מציאת ייצוג מממד נמוך למידע מממד גבוה (תהליך הנקרא הורדת ממד). שיטה זו הומצאה בשנת 1901 על ידי קרל פירסון והיא שימושית מאוד בסטטיסטיקה ובלמידת מכונה.
בהינתן מדגם של וקטורים מממד d (שהממוצע שלהם הוא אפס), ניתוח רכיבים עיקריים ממיר אותם לקואורדינטות אחרות, שמהוות קומבינציה ליניארית של הקואורדינטות המקוריות, שגם בה הם מממד d, ולקואורדינטה הראשונה (הנקראת הרכיב העיקרי הראשון) יש את השונות (של איברים באותה הקואורדינטה בכל הווקטורים במדגם) הגדולה ביותר האפשרית, לקואורדינטה השנייה (הרכיב העיקרי השני) יש את השונות הגדולה ביותר האפשרית תחת האילוץ שהיא אורתוגונלית לקואורדינטה הראשונה, וכן הלאה. בצורה זו, השונות המשותפת המדגמית היא 0, ועל כן השמטת משתנה לא תפגע בשונות של המשתנים האחרים. התמרה זו ניתנת לייצוג ככפל של המטריצה המייצגת את ההתמרה במטריצה שעמודותיה הן וקטורי המדגם. כך, כל רכיב עיקרי הוא מכפלה פנימית עם שורה במטריצה המייצגת את ההתמרה, ושורות אלו נקראות הווקטורים הראשיים. הורדת הממד נעשית על ידי לקיחת מספר קטן של רכיבים עיקריים בלבד, שהשונות שלהם היא הגדולה ביותר.
לדוגמה, נניח כי בידינו תוצאות של ניסוי הבוחן משקל, גובה וגיל. דגימות אלו נמצאות במרחב וקטורי תלת-ממדי שהרכיבים של כל נקודה בו הם משקל, גובה וגיל. אם נרצה לשמור את המידע רק באמצעות 2 משתנים, ניאלץ לבחור איזה משתנה להשמיט. יכול להיות, שיש מתאם גבוה בין המשתנים, ואז אנו מאבדים מידע רב בצורה זו. באמצעות ניתוח רכיבים עיקריים ניתן להוריד את הממד של המידע לממד נמוך יותר אשר יכול לגלות קשרים בין המשתנים השונים. כך, במקום לאפיין אדם על ידי שלושת הפרמטרים – משקל, גובה וגיל, ייתכן כי ניתן לאפיין אותו על ידי שני פרמטרים בלבד, ומתוכם לשחזר את המשקל, הגובה והגיל שלו. לשם כך נחפש את ההטלה הליניארית האופטימלית אשר עליה השונות של המדגם היא רבה ככל הניתן, ואחר כך נפחית אותה מהמדגם ונחפש את ההטלה הבאה עם השונות הכי גדולה. אלו שני הווקטורים העיקריים הראשונים, שאם נטיל את המשקל, הגובה והגיל של אדם עליהם נקבל שני פרמטרים שממזערים את המידע והשונות שנאבדים.
ניתוח רכיבים עיקריים ניתן למימוש באופן הבא:
מפחיתים את הווקטור הממוצע מכל דגימה. לרוב גם מנרמלים כל דגימה לשונות של 1.
מחשבים את מטריצת השונות המשותפת (covariance) על ידי הכפלת מטריצת הדגימות (לאחר הפחתת הממוצע) במטריצה המשוחלפת שלה.
מלכסנים את המטריצה. המטריצה חיובית לחלוטין, ולכן כל ערכיה העצמיים ממשיים וחיוביים. ממיינים את הערכים העצמיים בסדר יורד (ואת הווקטורים העצמיים בהתאם), ומנרמלים את הווקטורים העצמיים.
הווקטורים העצמיים הם הרכיבים העיקריים. אם מטרתנו היא לבצע הורדת ממד, לוקחים כמה מהווקטורים העצמיים הראשונים (המתאימים לערכים העצמיים הגדולים ביותר).
המטריצה אשר שורותיה הם הווקטורים העצמיים היא ההעתקה הליניארית המבצעת ניתוח רכיבים עיקריים.
חשוב לציין כי שלב מספר 1 אינו הכרחי לצורך נכונות האלגוריתם. המטרה של PCA היא למזער את המרחק בין הנקודות המקוריות, לבין הנקודות לאחר "קידוד" לתת-המרחב הליניארי ו"פענוח" בחזרה למרחב המקורי. גם ללא הפחתת הממוצע, האלגוריתם המתואר עדיין מממש את מטרת PCA במזעור המרחק.
יחד עם זאת, הפחתת הממוצע לרוב מאפשרת תוצאות טובות יותר ל-PCA, שכן בכך תת-המרחב הליניארי שמוחזר מהאלגוריתם הוא תת-המרחב שיכול להפריד את הנקודות בצורה הטובה ביותר.
באמצעות פירוק לערכים סינגולריים (באנגלית: SVD) של מטריצת הדגימות, ניתן למצוא את הווקטורים העצמיים מבלי לחשב באופן מפורש את מטריצת השונות המשותפת, ולרוב שיטה זו מועדפת על פני לכסון, במיוחד כאשר מספר הדגימות קטנה משמעותית מממד הדגימה.