حل "لعنة أبعاد"، تحليل المكون الرئيسي ليعلمك ضرب أبعاد الحد

أطروحة 7016 الكلمات، وعندما يكون التعلم مدى المتوقع 40 دقيقة أو أكثر

المصدر: فرحان عزام / unsplash.com

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

تخفيض الحد الأبعاد هو وسيلة لتعقيد النموذج وoverfitting تجنب. استخراج ميزة واختيار ميزة طريقتان رئيسيتان للحد من أبعاد. اختيار ميزة هي جزء من مجموعة فرعية ميزة الأصلي مختارة من مجموعة من استخراج ميزة هو جمع جزء من المعلومات الأصلية من بناء ميزات فضاء جزئي جديد.

هذه المادة سوف يأخذك لتعلم استخراج الميزة. في التطبيقات العملية، واستخراج ميزة لا يمكن توسيع فقط من مساحة التخزين وتحسين كفاءة الحسابية الخوارزمية التعلم، عن طريق تجنب لعنة الأبعاد، كما يمكن تحسين أداء التنبؤ - وخاصة في استخدام نموذج غير النظامية متى.

على وجه التحديد، وسوف نناقش تحليل خوارزمية (PCA) لضغط مجموعة البيانات إلى فضاء جزئي أقل الأبعاد، مع الحفاظ على معظم المعلومات المتعلقة باستخدام تحليل المكونات الرئيسية. سنتعلم:

المعرفة والمفاهيم الرياضية وراء PCA ل

خطوة بخطوة كيفية استخدام تطبيق بيثون من PCA

كيفية استخدام مكتبة بيثون لأداء PCAscikit تعلم تعلم الآلة

ابدأ الآن!

المصدر: Traf / unsplash.com

ويتم تكييف هذا البرنامج التعليمي من الجزء الثاني من آلة بيثون التالي التكنلوجيا سلسلة تعلم، فإن سلسلة يتعلمون مهارات القيادة بنجاح خوارزميات تعلم الآلة الأبيض والتعلم العميق مع بيثون. ويتضمن هذا البرنامج التعليمي بيئة رمل متصفح جزءا لا يتجزأ، مثبتة مسبقا كل البرامج والمكتبات اللازمة، فضلا عن عدد من المشاريع باستخدام مجموعات البيانات العامة.

الرئيسية تحليل المكونات 1. مقدمة

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

العلاقة بين الخصائص المحددة في نموذج البيانات PCA القائم. باختصار، أهداف PCA لتحديد بيانات عالية الأبعاد في الاتجاه من أكبر الفرق، ويتوقع أن بعدا جديدا من نفس أو أقل دون الفضاء.

في ميزات محاور جديدة متعامدة مع بعضها البعض، يمكن اعتباره محور متعامد فضاء جزئي الجديد (المكون الرئيسي) واتجاه أقصى التباين، كما هو مبين أدناه:

في الشكل أعلاه، X1 و x2 هو محور ميزة الأصلي، PC1 وPC2 هو المكون الرئيسي.

إذا كنت تستخدم PCA للحد من البعد د ك الأبعاد بناء على مصفوفة التحويل W، قد يتم تعيينها عينة ناقلات العاشر إلى فضاء جزئي-ك الأبعاد الجديد (ك أصغر من د).

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

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

قبل خوارزميات التعلم مفصل للحد من البعد PCA، مع بضع خطوات بسيطة لخلاصة:

وتطبيع 1. مجموعات البيانات د الأبعاد.

2. بناء مصفوفة التغاير.

3. مصفوفة التغاير في المتجهات الذاتية والقيم الذاتية.

4. القيم الذاتية في ترتيب تنازلي، يتم فرز ناقلات المقابلة.

5. ك تحديد أكبر القيم الذاتية والمتجهات الذاتية المقابلة ك، حيث ك هو البعد فضاء جزئي ميزة جديدة (ك د).

شيدت 6. مصفوفة الإسقاط الذي المتجهات الذاتية ك W.

يتم تحويل 7. إسقاط مصفوفة W من قبل مجموعة البيانات المدخلة د الأبعاد إلى X البيانات الجديدة فضاء جزئي-ك الأبعاد.

الآن استخدام بايثون لتنفيذ خطوة خطوة من PCA باعتبارها ممارسة. ثم، معرفة كيفية استخدام scikit تعلم آلة التعلم لتحسين تنفيذ PCA.

2. استخراج تدريجيا المكون الرئيسي

سوف نستخدم آلة UCI تعلم البيانات النبيذ مستودع وضع كمثال على ذلك. مجموعة البيانات يحتوي على 178 عينات من النبيذ، وصفت 13 مع ميزات طبيعتها الكيميائية.

هذه الخطوة القسم الأول في تعلم PCA أربع خطوات، ثم تعلم بقية الخطوات الثلاث. يمكنك استخدام التعليمات البرمجية في هذا البرنامج التعليمي رمل التالي تك لمعرفة كل ما يلزم من قاعدة البيانات المثبتة مسبقا، أو قد يتم تشغيل مقطع التعليمات البرمجية في بيئة المحلية.

مرة واحدة يتم تحميل رمل، نحن سيتم تحميلها مباشرة من مجموعة البيانات النبيذ مستودع يبدأ.

الباندا الواردات والمشتريات df_wine = pd.read_csv ( 'https://archive.ics.uci.edu/ml/ " "آلة التعلم قواعد البيانات / النبيذ / wine.data، رأس = لا يوجد) df_wine.head ()

المقبل، والنبيذ انقسام 70:30 بمعالجة البيانات إلى التدريب واختبار مجموعات منفصلة، وتطبيع كما تباين حدة.

من sklearn.model_selection train_test_split استيراد من sklearn.preprocessing StandardScaler استيراد # انقسام في تدريب واختبار مجموعات X، Y = df_wine.iloc . القيم، df_wine.iloc .values X_train، X_test، y_train، y_test = train_test_split ( X، Y، test_size = 0.3، تطبق = ذ، random_state = 0 ) # توحيد الميزات الشوري = StandardScaler () X_train_std = sc.fit_transform (X_train) X_test_std = sc.transform (X_test)

بعد الانتهاء من الضروري قبل المعالجة، يدخل الآن الخطوة الثانية: بناء مصفوفة التغاير. D د الأبعاد متماثل مصفوفة تغاير (د الأبعاد مجموعة البيانات)، التي تتألف من التغاير بين أزواج من ميزات مختلفة. على سبيل المثال، ويتميز x_j x_j والتغاير في المستوى العام وتحسب على أساس الصيغة التالية:

هنا _j _k وي هي متوسط العينة ومميزة ميزات ك.

ملاحظة: إذا كانت موحدة مجموعة البيانات، متوسط العينة هو صفر. إذا كانت قيمة إيجابية بين التغاير اثنين من ميزة، مع كل انخفاض متوسط، وإذا التغاير سلبية ووسائل كلا من الاتجاه المعاكس للتغيير. على سبيل المثال، ومصفوفة التغاير كما يمكن كتابة ثلاث سمات (ملاحظة: [سيجما يمثل إلكتروني العاصمة اليونانية سيغما، وليس عبر):

المتجهات الذاتية للمصفوفة التغاير تمثل العنصر الرئيسي (بحد أقصى الاتجاه التباين)، المقابلة لقيمة مميزة وتعرف حجمها. النبيذ من بيانات 13 13 الأبعاد المحددة في مصفوفة التغاير ويمكن الحصول على 13 القيم الذاتية والمتجهات الذاتية.

الخطوة الثالثة من الحصول على قيمة الميزة من مصفوفة التغاير. ميزة ناقلات يرضي ضد الشرط التالي:

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

استيراد نمباي كما أرستها cov_mat = np.cov (X_train_std.T) eigen_vals، eigen_vecs = np.linalg.eig (cov_mat)

باستخدام وظيفة لحساب numpy.cov تطبيع التغاير مصفوفة من مجموعة البيانات. Linalg.eig الدالة باستخدام التحلل القيمة الذاتية للحصول على ناقلات ناقلات ميزة 13 والقيم الذاتية المقابلة (القيم الذاتية) يتألف التي يتم تخزينها كعمود في 13 13 أبعاد المصفوفة (ناقلات الميزة) في.

3. مجموع التباين والتباين الإفراج

منذ مثل لإعطاء فضاء جزئي جديد عن طريق ضغط مجموعات البيانات لتقليل البعد من مجموعة البيانات، نختار يحتوي فقط على معظم المعلومات (التباين) المتجهات الذاتية (المكونات الرئيسية) فرعية.

قبل جمع ناقلات ميزة ك مع أكبر قدر من المعلومات، أول حساب قيمة السمات المميزة لنسبة مساهمة التباين. القيم الذاتية _j نسبة مساهمة ميزة التباين هو مجموع القيم الذاتية _j والقيم الذاتية.

أخذت نمباي وظيفة cumsum باستخدام حساب مبلغ المساهمة التباين، وسوف تستخدم وظيفة خطوة matplotlib لوصف:

matplotlib.pyplot استيراد كما معاهدة قانون البراءات # حساب المبلغ التراكمي الفروق أوضح طفل = مجموع (eigen_vals) var_exp = cum_var_exp = np.cumsum (var_exp) # أوضحت مؤامرة الفروق plt.bar (المدى (1،14)، var_exp، ألفا = 0.5، محاذاة = 'مركز'، 'وأوضح فرد التباين' = التسمية) plt.step (المدى (1،14)، cum_var_exp، حيث 'منتصف' =، التسمية = 'أوضح التراكمي التباين') plt.ylabel ( 'شرح نسبة التباين') plt.xlabel ( 'مؤشر مكون رئيسي') plt.legend (الموضع = 'أفضل') plt.show ()

وأظهرت النتائج أن 40 من المكون الرئيسي الأول حسابات لهذه الفروق. وبالإضافة إلى ذلك، يمكننا أن نرى اثنين من المكونات الرئيسية الأولى مجتمعة ما يقرب من 60 من التباين مجموعة البيانات.

4. ميزة تحويل

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

وتصنف على أنها وdecrementing قيمة الميزة عن طريق ترتيب ميزة:

# تقديم قائمة من (القيمة الذاتية، بالمتجه الذاتي) الصفوف eigen_pairs = # فرز (القيمة الذاتية، بالمتجه الذاتي) الصفوف من الأعلى إلى الأقل eigen_pairs.sort (مفتاح = امدا ك: ك ، عكس = صحيح)

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

ث = np.hstack ((eigen_pairs ، eigen_pairs )) طباعة ( 'مصفوفة W: \ ن'، ث) مصفوفة W:

بواسطة تنفيذ التعليمات البرمجية السابق، وفقا لاثنين من ناقلات ميزة أعلاه لإنشاء مصفوفة W. 13x2 إسقاط الأبعاد

باستخدام مصفوفة الإسقاط قد يكون عينة العاشر (13 هي ناقلات الصف بعد واحد س) إلى PCA فضاء جزئي (المكون الرئيسي 1 والمكون الرئيسي 2)، للحصول على ناقلات عينة ثنائية الأبعاد س يحتوي على اثنين من الميزات الجديدة ':

X_train_std .DOT (ث)

وبالمثل، عن طريق حساب مصفوفة نقطة المنتج 124 13 الأبعاد مجموعة التدريب البيانات إلى عنصرين رئيسيين:

X_train_pca = X_train_std.dot (ث)

وأخيرا، فإن تحويل النبيذ مجموعة التدريب تصور في التشتت ثنائي الأبعاد، يتم تخزين في شكل مصفوفة 124 2 الأبعاد:

الألوان = علامات = للتر، ج، م في الرمز البريدي (np.unique (y_train)، والألوان، وعلامات): plt.scatter (X_train_pca ، X_train_pca ، ج = ج، والتسمية = ل، علامة = م) plt.xlabel ( 'PC 1') plt.ylabel ( 'PC 2') plt.legend (الموضع = 'اليسرى السفلى') plt.show ()

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

على الرغم من أن في مؤامرة مبعثر السابقة لأغراض التفسير، والترميز تسمية الطبقة، ولكن تذكر، PCA هو معلومات التسمية الطبقة دون استخدام تقنيات غير خاضعة للرقابة.

5. PCA وscikit تعلم تعلم الآلة

القسم السابق لمساعدتنا على فهم الأعمال الداخلية للPCA، سوف PCA الآن مناقشة كيفية استخدام نموذج الطبقة تنفيذها في scikit تعلم في. PCA نموذج الطبقة المحول هو فئة أخرى من scikit تعلم، وقبل استخدام نفس التدريب تحويل المعلمة نموذج واختبار مجموعات البيانات، علينا أولا استخدام بيانات التدريب لتتناسب مع النموذج.

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

من sklearn.linear_model انحدار لوجستي استيراد من sklearn.decomposition PCA استيراد # Intialize PCA ونموذج الانحدار اللوجستي PCA = PCA (n_components = 2) LR = انحدار لوجستي (multi_class = "السيارات"، حلالا = 'liblinear') # صالح وتحويل البيانات X_train_pca = pca.fit_transform (X_train_std) X_test_pca = pca.transform (X_test_std) lr.fit (X_train_pca، y_train)

الآن مع العمل على plot_decision_regions العادية لتصور مجالات صنع القرار:

من matplotlib.colors ListedColormap استيراد مواطنه plot_decision_regions (X، Y، المصنف، القرار = 0.02): # مولد إعداد علامة وخريطة ملونة علامات = (الصورة '،' س '،' س '،' ^ '،' الخامس ') الألوان = ( 'أحمر'، 'الأزرق'، 'lightgreen'، 'الرمادي'، 'السماوي') CMAP = ListedColormap (ألوان ) # مؤامرة سطح قرار x1_min، x1_max = X . دقيقة () - 1 X .max () + 1 x2_min، x2_max = X . دقيقة () - 1 X .max () + 1 xx1، xx2 = np.meshgrid (np.arange (x1_min، x1_max، القرار)، np.arange (x2_min، x2_max، القرار)) Z = classifier.predict (np.array ( ) .T) Z = Z.reshape (xx1.shape) plt.contourf (xx1، xx2، Z، ألفا = 0.4، CMAP = CMAP) plt.xlim (xx1.min ()، xx1.max ()) plt.ylim (xx2.min ()، xx2.max ()) # عينات الطبقة مؤامرة لIDX، البنود في اعدد (np.unique (ص)): plt.scatter (س = X ، ذ = X ، ألفا = 0.6، ج = ، edgecolor = 'الأسود'، علامة = علامات ، التسمية = CL) مناطق قرار # مؤامرة لمجموعة التدريب plot_decision_regions (X_train_pca، y_train، المصنف = LR) plt.xlabel ( 'PC 1') plt.ylabel ( 'PC 2') plt.legend (الموضع = 'اليسرى السفلى') plt.show ()

السابقة كود أعدم، يجب المنطقة القرار نرى الآن يتم تقليل عنصر التدريب البيانات إلى محورين أساسيين.

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

# مناطق قرار مؤامرة للمجموعة الاختبار plot_decision_regions (X_test_pca، y_test، المصنف = LR) plt.xlabel ( 'PC1') plt.ylabel ( 'PC2') plt.legend (الموضع = 'اليسرى السفلى') plt.show ()

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

إذا كنت مهتما في نسبة مساهمة ميزة التباين، فإنه يمكن ببساطة تهيئة الطبقة مع n_components PCA المعلمة مجموعة، لذلك حساب نسبة مساهمة التباين الادخار ويضم جميع مكونات رئيسية يمكن تحقيقه عن طريق explained_variance_ratio الملكية:

PCA = PCA (n_components = لا يوجد) X_train_pca = pca.fit_transform (X_train_std) pca.explained_variance_ratio_

ملاحظة: عندما تتم تهيئة الطبقة PCA، أي مجموعة n_components = بلا، فإنه سيعود كل المكونات الرئيسية للنظام فرزها، بدلا من تنفيذ عمليات تخفيض البعد.

انتباه رسالة الابهام

معا نحن نشارك في التعلم وتطوير AI الجاف

ترحب منظمة العفو الدولية انتباه منصة الشنق كله من الطبقة سائل الإعلام "قراءة التقنية الأساسية"

أوقف قويتشو البناء البنك للتعامل مع دراجة نارية ETC

3A تحفة في خطوة واحدة، تسعة أجيال من اللاعبين يفضلون الأساسية

واحدة من ورق التواليت، وجعل عدد لا يحصى من أبطال القوس في ولاء! الأهتزاز نسخة ورق التواليت من الهامش المياه تدع ثلاثة ملايين تسبب في الشبكة بالكامل إلى تقليد

طريق الابتكار، لماذا تكييف الهواء دايكن المشهود الإصدار الجديد مرة أخرى؟

الكهرباء في القطب الجنوبي نمو عالية مزود خبيث مكتب

هو رمي المليار! وضع هواوي الكلمات: مليون التدريب لمدة ثلاث سنوات AI المواهب! فاستجاب الله للمستخدمين

تويوتا ياريس صور تجسس جديدة، ونماذج النسخة الهجينة الجديدة

مستقبلية! سامسونج سحب من نوع شاشة كبيرة تعرض الهاتف براءات الاختراع

3 أضعاف الأداء التوت فطيرة 4-قنبلة عيوب في التصميم

ممن لهم ENCO التعرض العلامة التجارية: شاشة قابلة للطي أو لإعداد المعدات

Microsoft CTO Wei Qing: 5G و Aristotle

مخترع الكمبيوتر كلمات السر مات! فاز بجائزة تورينج، ولادة والتنوير يونكس