سنخبرك لماذا ظهرت هذه الأداة وما يمكنها فعله.
عدم وجود خوارزميات
أحد التحديات الرئيسية في التعلم الآلي هو تقليل أبعاد البيانات. يقلل علماء البيانات من عدد المتغيرات من خلال عزل القيم التي لها أكبر تأثير على النتيجة فيما بينها. بعد هذه العملية ، يتطلب نموذج التعلم الآلي ذاكرة أقل ويعمل بشكل أسرع وأفضل. يوضح المثال أدناه أن إزالة الميزات المكررة يزيد من دقة التصنيف من 0.903 إلى 0.943.
>>> from sklearn.linear_model import SGDClassifier
>>> from ITMO_FS.embedded import MOS
>>> X, y = make_classification(n_samples=300, n_features=10, random_state=0, n_informative=2)
>>> sel = MOS()
>>> trX = sel.fit_transform(X, y, smote=False)
>>> cl1 = SGDClassifier()
>>> cl1.fit(X, y)
>>> cl1.score(X, y)
0.9033333333333333
>>> cl2 = SGDClassifier()
>>> cl2.fit(trX, y)
>>> cl2.score(trX, y)
0.9433333333333334
هناك طريقتان لتقليل الأبعاد - تصميم الميزات واختيار الميزة. في مجالات مثل المعلوماتية الحيوية والطب ، غالبًا ما يتم استخدام هذا الأخير ، لأنه يتيح لك إبراز الميزات المهمة مع الحفاظ على الدلالات ، أي أنه لا يغير المعنى الأصلي للميزات. ومع ذلك ، فإن مكتبات التعلم الآلي الأكثر شيوعًا في Python - scikit-Learn و pytorch و keras و tensorflow - تفتقر إلى مجموعة كاملة من طرق اختيار الميزات.
لحل هذه المشكلة ، طور طلاب جامعة ITMO وخريجيها مكتبة مفتوحة - ITMO_FS. يعمل عليها فريق تحت قيادة إيفان سميتانيكوف ، الأستاذ المشارك في كلية تكنولوجيا المعلومات والبرمجة.نائب رئيس مختبر التعلم الآلي. المطور الرئيسي - نيكيتا بيلنينسكي ، تخرج من درجة الماجستير في التعلم الآلي وتحليل البيانات . الآن يذهب إلى المدرسة العليا.
« , . , , , (-) .
, , , . , , , ».
—
يتم تنفيذ ITMO_FS في Python وهو متوافق مع scikit-Learn ، والذي يعتبر أداة تحليل البيانات الرئيسية بحكم الواقع. تأخذ محددات الميزات الخاصة بها نفس المعلمات:
data: array-like (2-D list, pandas.Dataframe, numpy.array);
targets: array-like (1-D list, pandas.Series, numpy.array).
تدعم المكتبة جميع الأساليب الكلاسيكية لاختيار الميزات - المرشحات والأغلفة والأساليب المضمنة. من بينها خوارزميات مثل المرشحات القائمة على ارتباطات سبيرمان وبيرسون ، ومعيار Fit ، و QPFS ، ومرشح تسلق التل وغيرها .
تدعم المكتبة أيضًا مجموعات التدريب من خلال الجمع بين خوارزميات اختيار الميزات بناءً على مقاييس الأهمية المستخدمة فيها. يتيح لك هذا الأسلوب الحصول على نتائج تنبؤية أعلى باستثمار منخفض للوقت.
ما هي نظائرها
لا توجد العديد من مكتبات خوارزميات اختيار الميزات ، خاصة في Python. يعتبر تطوير المهندسين من جامعة ولاية أريزونا (ASU) أحد أكبرها . يدعم عددًا كبيرًا من الخوارزميات ، ولكن لم يتم تحديثه مؤخرًا.
لدى Scikit-Learn نفسها أيضًا العديد من آليات اختيار الميزات ، ولكنها في الواقع ليست كافية.
"بشكل عام ، خلال السنوات الخمس إلى السبع الماضية ، تحول التركيز نحو خوارزميات التجميع لاختيار الميزات ، لكنها غير ممثلة بشكل خاص في مثل هذه المكتبات ، والتي نريد أيضًا إصلاحها."
- إيفان سميتانيكوف
آفاق المشروع
يخطط مؤلفو ITMO_FS لدمج منتجهم مع scikit-Learn عن طريق إضافته إلى قائمة المكتبات المتوافقة رسميًا. في الوقت الحالي ، تحتوي المكتبة بالفعل على أكبر عدد من خوارزميات اختيار الميزات من بين جميع المكتبات ، ولكن إضافتها مستمرة. علاوة على خارطة الطريق ، هناك إضافة خوارزميات جديدة ، بما في ذلك التطورات الخاصة بنا.
في الخطط البعيدة ، توجد مهام لإدخال المكتبة في نظام التعلم الفوقي ، وإضافة خوارزميات للعمل المباشر مع بيانات المصفوفة (ملء الفجوات ، وإنشاء بيانات مساحة الميزة الوصفية ، وما إلى ذلك) ، بالإضافة إلى واجهة رسومية. بالتوازي مع ذلك ، ستقام الهاكاثونات باستخدام المكتبة لجذب اهتمام المزيد من المطورين بالمنتج والحصول على التعليقات.
من المتوقع أن يجد ITMO_FS تطبيقًا في مجالات الطب والمعلوماتية الحيوية - في مشاكل مثل تشخيص أنواع السرطان المختلفة ، وبناء نماذج تنبؤية للخصائص المظهرية (على سبيل المثال ، عمر الشخص) وتوليف الأدوية.
أين يمكنني التنزيل
إذا كنت مهتمًا بمشروع ITMO_FS ، فيمكنك تنزيل المكتبة وتجربتها عمليًا - هنا هو المستودع على GitHub . نسخة أولية من الوثائق متاحة في readthedocs . هناك يمكنك أيضًا مشاهدة إرشادات التثبيت (مدعومة بالنقطة). نرحب بأي ملاحظات.
مواد إضافية من مدونتنا على Habré: