Posts

Showing posts from October, 2019

تصغير حجم الخصائص المستخرجة من البيانات

Image
Dimensionality Reduction : Principal Component Analysis PCA في بعض المجالات تكون البيانات ضخمة جدا و عدد (Features ) كبيرا جدا يعني أبعادا كثيرة و هذا قد يصعب علينا العمل في مجال تعلم الألة أو حتى يستحيل ذلك في بعض المجالات الأخرى نظرا لقدرات الحواسب المحدودة. ال (Features ) في حد ذاتها قد تسبب تداخلا بين بياناتنا إذا لم نحسن إختيارها، مثلا لتنصيف البرتقال و التفاح و الليمون قد تكون خاصية الشكل غير مفيدة بل تخلق تداخلا و تعقد عملية التصنيف كون الأشكال بينها متشابهة عكس خاصة اللون التي تفصل بينهم بشكل واضح. في هذا المقال نشير إلى طريقة فعالة جدا لتصغير حجم (Features) و هي طريقة رياضية إحصائية إسمها (PCA) و تعتمد على حساب (Covariance matrix ) و (Eigen vectors and values)  ثم تعيد ترتيب البيانات وفق هذه الحسابات أو الأبعاد و بعدها تختار (K Eigen vectors ) و الذي يمثل عدد الأبعاد التي نرغب في تحويل (تصغير ) الخصائص (Features ) إليها. الصورة 1 هذه الطريقة (PCA) جاهزة على مكتبة (Scikit-Learn ). و كمثال تطبيقي حولها إخترنا قاعدة بيانات تحتوي على (Examples = 569  features = 30)

البحث عن أحسن المعاملات الداخلية لخوازمية التدريب

Image
Hyper-parameter Optimization المعاملات الداخلية (hyper-parameter )  هي المعاملات التى يحددها المطور و لا يمكن تغيرها أثناء عملية التدريب و لا تتأثر بنوع و لا شكل الداتا. مثل عدد (layers) في الشبكة العصبية أو المعاملات (C, gamma, kernel ) في خوارزمية (SVM). هذه المعاملات تؤثر على النتائج طبعا لأنها تؤثر على شكل و مبدأ عمل الخوارزمية و للبحث عن أحسن القيم الخاصة بها التي تناسب نوع الداتا التي نعمل عليها فأبسط فكرة تبادر لأذهاننا هي أننا في كل مرة نعيد تدريب الخوارزمية بمعاملات جديدة ثم نحتفظ بأحسن شكل ممكن لهذه المعاملات. لكن في مكتبة (Scikit-Learn ) تم تسهيل الأمر كثيرا بتوفير أدوات جاهزة للعمل في هذه النقطة بالتحديد.  أولا: (GridSearchCV)، و هو أداة جاهزة للبحث عن أحسن المعاملات لخوازمية محددة بتجريب جميع التركبيات الممكنة لهذه المعاملات. في السطر 19 من الصورة 1، حددنا مجموعة من قيم المعاملات الخاصة بخوارزمية (SVM ) في شكلين مختلفين، كل شكل موجود بين حاضنتين. في الشكل 1 حددنا قيم المتغير (C) التي تأخد القيم 1 أو 10 أو 100 أو 1000 و (kernel = linear) أثناء عملية التدريب سي