انشاء machine model لل PCA في تعليم الاله بالبايثون

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


انشاء machine model لل PCA في تعليم الاله بالبايثون

انشاء machine model لل PCA في تعليم الاله بالبايثون

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


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


التعامل مع datasets cancer عن طريق machine learning

التعامل مع datasets cancer عن طريق machine learning

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


import numpy as mp
import pandas as pd
from sklearn.datasets import load_breast_cancer
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import  PCA
%matplotlib inline
cancer = load_breast_cancer()
print(cancer.keys())
df = pd.DataFrame(cancer['data'] , columns=cancer['feature_names'])
print(df.head())
print(df.shape)


تنظيم البيانات وتقليل نسبة الخطأ منها في تعليم الاله

تنظيم البيانات وتقليل نسبة الخطأ منها في تعليم الاله

سبق وشرحنا لكم في كثير من الدروس عن StandardScaler وهي مهمه جدا جدا ولذلك سوف نستخدمها لكي نتاكد عن عدم خروج البيانات من المسارات المحدوده وهي ما بين 1 و -1 وهذا افضل من التعامل مع البيانات بصيغتها الحقيقه والكبيره والتي تختلف قيمتها وهذا يسبب مشاكل في بعض البيانات بعد استخدام هذة الخاصة سنقوم بإستخدام pca لكي نقوم بعمل components او تحجيم للبيانات وهنا جعلناها في صورتها الحقيقه وهي ال30 صف .


scaler = StandardScaler()
scaled_data = scaler.fit_transform(df)
scaled_data
pca = PCA(n_components=30)
x_pca = pca.fit_transform(scaled_data)
x = pd.DataFrame(pca.components_ , columns=df.columns)
x


تقليص الdata للوصول الى افضل الاحتمالات

تقليص الdata للوصول الى افضل الاحتمالات

في هذة الخطوة بعد الانتهاء من جميع الخطوات السابقه نقوم بعمل رسم للبيانات لكي نرى اكثر قيمة حدث بها انحدار ونقوم بتقليص عدد البيانات عند هذة القيمة وتتم هذة الخطوة عن طريق pca model ولذلك تاكد من استخدامك لمكتبة sklearn والتاكد من انك تستعمل نموذج pca ولو نلاحظ ان اكثر قيمة حدث فيها التغيير كانت 3 وهذة القيمة كانت الافضل من غيرها نوعا ما يمكنك اختيار القيمة 5 ايضا حدث بها تغيير ملاحظ .


pca.explained_variance_  # show in array variance
plt.plot(pca.explained_variance_)


عرض البيانات بعدما يتم عمل لها components

عرض البيانات بعدما يتم عمل لها components

الان بعد القيام بالخطوة السابقة سنقوم بعرض البيانات مره اخرى للتاكد من انها تمت عملية ضعها في 3 rows فقط وهذة القيمة التي اخترناها سابقا من خلال الرسم وحاول المقارنه بين هذة البيانات السابقة والبيانات الحالية ولاحظ الفرق بينهم في الطبيعي لن تجد فرق والسبب انها قمنا فقط بالتعامل مع البيانات الاولى التي قمنا بتحديدها والتي حدث عندها تغيير في مسار البيانات .


pca = PCA(n_components=3)
x_pca = pca.fit_transform(scaled_data)
x = pd.DataFrame(pca.components_ , columns=df.columns)
x


المقارنة بين البيانات السابقة والبيانات الحديثة

المقارنة بين البيانات السابقة والبيانات الحديثة

في هذة الخطوة لن نقوم باي شيئ جديد فقط ما سيتم وهو عرض الshape للبيانات لمعرفة عدد الrows وcolumn وهنا نجد ان الصفوف كما هي ولكن الاختلاف كان في الاعمده فبدلا من 30 تعاملنا فقط مع 3 وهذا يسهل على النموذج العمل بدلا من كثرة البيانات وزيادة ال complexity في التعامل


print(f"scaled data shape from : {scaled_data.shape} to {x_pca.shape} ")


عرض البيانات في scatter باستخدام google colabe

عرض البيانات في scatter باستخدام google colabe

في هذة الخطوة سوف نقوم بعرض البيانات كاملا على شكل مجموعة من النقاط في جدول لذلك قمنا بطباعة كل البيانات الpositive وهي التي تحمل القيمة 0 ومن الcolumn الاول والذي يرمز له بالرقم 0 وقمنا بطباعة لونها بالاحمر والاسم positive والاخرى negative والتي كان يرمز لها بالقيمة 1 من الcolumn الثاني والمرمز له بالرقم 1 والاسم negative وقمنا بطباعة البيانات كما يظهر بالصورة التالية .

plt.figure(figsize=(12,8))
plt.scatter(x_pca[cancer['target']==0 , 0] , x_pca[cancer['target']==0, 1] , c="red" , label="positive")
plt.scatter(x_pca[cancer['target']==1 , 0] , x_pca[cancer['target']==1, 1] , c="black" , label="negative")
plt.xlabel("First")
plt.ylabel("second")
plt.legend() # box in figure (positive - negative)


استخدام scatter والتعديل عليه

استخدام scatter والتعديل عليه

في هذة الخطوة والتي تكون الاخيره في مقالة اليوم سوف نستخدم نفس الامر scatter ولكن سوف نقوم بتغيير شكل الmarker لكي نتميز البيانات عن بضعها البعض وايضا قمنا بتغيير الالوان لهم واستخدمنا البيانات الموجوده في الcolumn الاخير وهو 3 لكي نغير من النموذج السابق ونقوم اخيرا بطباعة البيانات النهائيه وتقريبا هذا الكود نفس السابق تماما ولكن مع اختلاف بسيط في بعض المتغيرات .


plt.figure(figsize=(12,8))
plt.scatter(x_pca[cancer['target']==0 , 0] , x_pca[cancer['target']==0, 2] , c="blue" , label="positive", marker='*')
plt.scatter(x_pca[cancer['target']==1 , 0] , x_pca[cancer['target']==1, 2] , c="green" , label="negative", marker='+')
plt.xlabel("First")
plt.ylabel("second")
plt.legend() # box in figure (positive - negative)


PCA_tutorial.py

تعليقات