تحليل المكون الرئيسي في r: مثال خطوة بخطوة


تحليل المكونات الرئيسية، والذي غالبًا ما يتم اختصاره PCA، هو تقنية تعلم آلي غير خاضعة للرقابة تسعى إلى العثور على المكونات الرئيسية – مجموعات خطية من المتنبئين الأصليين – التي تفسر جزءًا كبيرًا من الاختلاف في مجموعة البيانات.

الهدف من PCA هو شرح معظم التباين في مجموعة البيانات التي تحتوي على متغيرات أقل من مجموعة البيانات الأصلية.

بالنسبة لمجموعة بيانات معينة تحتوي على متغيرات p ، يمكننا فحص مخططات التشتت لكل مجموعة زوجية من المتغيرات، ولكن يمكن أن يصبح عدد مخططات التشتت كبيرًا بسرعة كبيرة.

بالنسبة للتنبؤات p ، توجد سحب نقطية p(p-1)/2.

لذلك، بالنسبة لمجموعة بيانات ذات تنبؤات p = 15، سيكون هناك 105 مخططات مبعثرة مختلفة!

لحسن الحظ، يوفر PCA طريقة للعثور على تمثيل منخفض الأبعاد لمجموعة البيانات التي تلتقط أكبر قدر ممكن من الاختلاف في البيانات.

إذا تمكنا من التقاط معظم التباين في بعدين فقط، فيمكننا إسقاط جميع الملاحظات من مجموعة البيانات الأصلية على مخطط تشتت بسيط.

الطريقة التي نجد بها المكونات الرئيسية هي كما يلي:

بالنظر إلى مجموعة بيانات ذات تنبؤات p : _

  • ض م = ΣΦ جم _
  • Z 1 عبارة عن مجموعة خطية من المتنبئات التي تلتقط أكبر قدر ممكن من التباين.
  • Z 2 هي المجموعة الخطية التالية من المتنبئات التي تلتقط أكبر قدر من التباين بينما تكون متعامدة (أي غير مرتبطة) بـ Z 1 .
  • Z 3 هي المجموعة الخطية التالية من المتنبئات التي تلتقط أكبر قدر من التباين بينما تكون متعامدة مع Z 2 .
  • وما إلى ذلك وهلم جرا.

من الناحية العملية، نستخدم الخطوات التالية لحساب المجموعات الخطية للمتنبئات الأصلية:

1. قم بقياس كل من المتغيرات للحصول على متوسط 0 وانحراف معياري 1.

2. احسب مصفوفة التغاير للمتغيرات المقاسة.

3. احسب القيم الذاتية لمصفوفة التغاير.

باستخدام الجبر الخطي، يمكننا أن نبين أن المتجه الذاتي الذي يتوافق مع أكبر قيمة ذاتية هو المكون الرئيسي الأول. وبعبارة أخرى، فإن هذا المزيج الخاص من المتنبئين يفسر التباين الأكبر في البيانات.

والمتجه الذاتي المقابل لثاني أكبر قيمة ذاتية هو المكون الرئيسي الثاني، وهكذا.

يقدم هذا البرنامج التعليمي مثالاً خطوة بخطوة لكيفية تنفيذ هذه العملية في R.

الخطوة 1: تحميل البيانات

سنقوم أولاً بتحميل حزمة Tidyverse ، التي تحتوي على العديد من الوظائف المفيدة لتصور البيانات ومعالجتها:

 library (tidyverse)

في هذا المثال، سوف نستخدم مجموعة بيانات USArrests المضمنة في R، والتي تحتوي على عدد الاعتقالات لكل 100.000 مقيم في كل ولاية أمريكية في عام 1973 بتهمة القتل والاعتداء والاغتصاب .

ويشمل أيضًا النسبة المئوية لسكان كل ولاية الذين يعيشون في المناطق الحضرية، UrbanPop .

يوضح التعليمة البرمجية التالية كيفية تحميل وعرض الصفوف الأولى من مجموعة البيانات:

 #load data
data ("USArrests")

#view first six rows of data
head(USArrests)

           Murder Assault UrbanPop Rape
Alabama 13.2 236 58 21.2
Alaska 10.0 263 48 44.5
Arizona 8.1 294 80 31.0
Arkansas 8.8 190 50 19.5
California 9.0 276 91 40.6
Colorado 7.9 204 78 38.7

الخطوة 2: حساب المكونات الرئيسية

بعد تحميل البيانات، يمكننا استخدام وظيفة R المضمنة prcomp() لحساب المكونات الرئيسية لمجموعة البيانات.

تأكد من تحديد المقياس = TRUE بحيث يتم قياس كل من المتغيرات في مجموعة البيانات بحيث يكون متوسطها 0 وانحراف معياري قدره 1 قبل حساب المكونات الرئيسية.

لاحظ أيضًا أن المتجهات الذاتية في R تشير إلى الاتجاه السلبي افتراضيًا، لذلك سنضربها في -1 لعكس الإشارات.

 #calculate main components
results <- prcomp(USArrests, scale = TRUE )

#reverse the signs
results$rotation <- -1*results$rotation

#display main components
results$rotation

               PC1 PC2 PC3 PC4
Murder 0.5358995 -0.4181809 0.3412327 -0.64922780
Assault 0.5831836 -0.1879856 0.2681484 0.74340748
UrbanPop 0.2781909 0.8728062 0.3780158 -0.13387773
Rape 0.5434321 0.1673186 -0.8177779 -0.08902432

يمكننا أن نرى أن المكون الرئيسي الأول (PC1) له قيم عالية للقتل والاعتداء والاغتصاب، مما يشير إلى أن هذا المكون الرئيسي يصف التباين الأكبر في هذه المتغيرات.

يمكننا أيضًا أن نرى أن المكون الرئيسي الثاني (PC2) له قيمة عالية لـ UrbanPop، مما يشير إلى أن هذا المكون الرئيسي يركز على سكان الحضر.

لاحظ أنه يتم تخزين درجات المكون الرئيسي لكل ولاية في results$x . سنقوم أيضًا بضرب هذه الدرجات في -1 لعكس العلامات:

 #reverse the signs of the scores
results$x <- -1*results$x

#display the first six scores
head(results$x)

                  PC1 PC2 PC3 PC4
Alabama 0.9756604 -1.1220012 0.43980366 -0.154696581
Alaska 1.9305379 -1.0624269 -2.01950027 0.434175454
Arizona 1.7454429 0.7384595 -0.05423025 0.826264240
Arkansas -0.1399989 -1.1085423 -0.11342217 0.180973554
California 2.4986128 1.5274267 -0.59254100 0.338559240
Colorado 1.4993407 0.9776297 -1.08400162 -0.001450164

الخطوة 3: تصور النتائج باستخدام مخطط ثنائي

بعد ذلك، يمكننا إنشاء مخطط ثنائي – مخطط يعرض كل الملاحظات الموجودة في مجموعة البيانات على مخطط مبعثر يستخدم المكونين الرئيسيين الأول والثاني كمحاور:

لاحظ أن المقياس = 0 يضمن تغيير حجم الأسهم الموجودة في المخطط لتمثيل عمليات التحميل.

 biplot(results, scale = 0 )

Biplot لتحليل المكونات الرئيسية في R

من المخطط يمكننا أن نرى كل ولاية من الولايات الخمسين ممثلة في مساحة بسيطة ثنائية الأبعاد.

الدول القريبة من بعضها البعض على الرسم البياني لديها أنماط بيانات مماثلة فيما يتعلق بالمتغيرات في مجموعة البيانات الأصلية.

يمكننا أيضًا أن نرى أن بعض الدول ترتبط بقوة بجرائم معينة أكثر من غيرها. على سبيل المثال، جورجيا هي الولاية الأقرب إلى متغير القتل في المؤامرة.

إذا نظرنا إلى الولايات التي لديها أعلى معدلات القتل في مجموعة البيانات الأصلية، يمكننا أن نرى أن جورجيا تتصدر القائمة بالفعل:

 #display states with highest murder rates in original dataset
head(USArrests[ order (-USArrests$Murder),])

               Murder Assault UrbanPop Rape
Georgia 17.4 211 60 25.8
Mississippi 16.1 259 44 17.1
Florida 15.4 335 80 31.9
Louisiana 15.4 249 66 22.2
South Carolina 14.4 279 48 22.5
Alabama 13.2 236 58 21.2

الخطوة 4: ابحث عن التباين الموضح لكل مكون رئيسي

يمكننا استخدام الكود التالي لحساب التباين الإجمالي في مجموعة البيانات الأصلية الموضحة بواسطة كل مكون رئيسي:

 #calculate total variance explained by each principal component
results$sdev^2 / sum (results$sdev^2)

[1] 0.62006039 0.24744129 0.08914080 0.04335752

ومن النتائج يمكننا ملاحظة ما يلي:

  • يشرح المكون الرئيسي الأول 62% من إجمالي التباين في مجموعة البيانات.
  • ويفسر المكون الرئيسي الثاني 24.7% من إجمالي التباين في مجموعة البيانات.
  • ويفسر المكون الرئيسي الثالث 8.9% من إجمالي التباين في مجموعة البيانات.
  • ويشرح المكون الرئيسي الرابع 4.3% من إجمالي التباين في مجموعة البيانات.

وبالتالي، فإن المكونين الرئيسيين الأولين يفسران غالبية التباين الإجمالي في البيانات.

وهذه علامة جيدة لأن المخطط الثنائي السابق أسقط كل الملاحظات من البيانات الأصلية على مخطط التشتت الذي أخذ في الاعتبار فقط المكونين الرئيسيين الأولين.

وبالتالي، فمن الصحيح فحص الأنماط الموجودة في المخطط الثنائي لتحديد الحالات المتشابهة مع بعضها البعض.

يمكننا أيضًا إنشاء مخطط حصوي – رسم بياني يعرض التباين الإجمالي الموضح بواسطة كل مكون رئيسي – لتصور نتائج PCA:

 #calculate total variance explained by each principal component
var_explained = results$sdev^2 / sum (results$sdev^2)

#create scree plot
qplot(c(1:4), var_explained) + 
  geom_line() + 
  xlab(" Principal Component ") + 
  ylab(" Variance Explained ") +
  ggtitle(" Scree Plot ") +
  ylim(0, 1) 

تضاريس صخرية على شكل حرف R

تحليل المكون الرئيسي في الممارسة العملية

من الناحية العملية، يتم استخدام PCA في أغلب الأحيان لسببين:

1. تحليل البيانات الاستكشافية – نستخدم PCA عندما نستكشف مجموعة بيانات لأول مرة ونريد أن نفهم الملاحظات الأكثر تشابهاً في البيانات مع بعضها البعض.

2. انحدار المكون الرئيسي – يمكننا أيضًا استخدام PCA لحساب المكونات الرئيسية والتي يمكن استخدامها بعد ذلك في انحدار المكون الرئيسي . غالبًا ما يستخدم هذا النوع من الانحدار عندما يكون هناك علاقة خطية متعددة بين المتنبئين في مجموعة البيانات.


يمكن العثور على رمز R الكامل المستخدم في هذا البرنامج التعليمي هنا .

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *