حزمة Python للنمذجة التنبؤية الموجزة والشفافة والدقيقة.
جميع متوافقة مع Sklearn وسهلة الاستخدام.
لتفسير القابلية في NLP ، تحقق من الحزمة الجديدة: imodelsx
مستندات • دفاتر تجريبية
نماذج تعلم الآلات الحديثة معقدة بشكل متزايد ، وغالبًا ما تجعلها من الصعب تفسيرها. توفر هذه الحزمة واجهة بسيطة لتركيب النماذج القابلة للتفسير واستخدامها ، وكلها متوافقة مع Scikit-Learn. يمكن أن تحل هذه النماذج في كثير من الأحيان محل نماذج الصناديق السوداء (مثل الغابات العشوائية) بنماذج أبسط (مثل قوائم القواعد) مع تحسين القابلية للتفسير والكفاءة الحسابية ، كل ذلك دون التضحية بالدقة التنبؤية! ما عليك سوى استيراد مصنف أو تراجع واستخدام طرق fit predict ، مثل نماذج Scikit-Learn القياسية.
from sklearn . model_selection import train_test_split
from imodels import get_clean_dataset , HSTreeClassifierCV # import any imodels model here
# prepare data (a sample clinical dataset)
X , y , feature_names = get_clean_dataset ( 'csi_pecarn_pred' )
X_train , X_test , y_train , y_test = train_test_split (
X , y , random_state = 42 )
# fit the model
model = HSTreeClassifierCV ( max_leaf_nodes = 4 ) # initialize a tree model and specify only 4 leaf nodes
model . fit ( X_train , y_train , feature_names = feature_names ) # fit model
preds = model . predict ( X_test ) # discrete predictions: shape is (n_test, 1)
preds_proba = model . predict_proba ( X_test ) # predicted probabilities: shape is (n_test, n_classes)
print ( model ) # print the model ------------------------------
Decision Tree with Hierarchical Shrinkage
Prediction is made by looking at the value in the appropriate leaf of the tree
------------------------------
|--- FocalNeuroFindings2 <= 0.50
| |--- HighriskDiving <= 0.50
| | |--- Torticollis2 <= 0.50
| | | |--- value: [0.10]
| | |--- Torticollis2 > 0.50
| | | |--- value: [0.30]
| |--- HighriskDiving > 0.50
| | |--- value: [0.68]
|--- FocalNeuroFindings2 > 0.50
| |--- value: [0.42]
تثبيت مع pip install imodels (انظر هنا للحصول على المساعدة).
مستندات؟ ورقة البحث؟ تنفيذ رمز المرجع
| نموذج | مرجع | وصف |
|---|---|---|
| مجموعة قاعدة القواعد | ،؟ ،؟ | يناسب نموذج خطي متفرق على القواعد المستخرجة من أشجار القرار |
| مجموعة قاعدة سكوب | ،؟ | يستخلص القواعد من الأشجار المعززة بالتعطيل ، ويؤديها ، ثم يجمعهم خطيًا بناءً على دقة OOB الخاصة بهم |
| مجموعة القواعد المعززة | ،؟ ،؟ | يناسب بشكل متتابع مجموعة من القواعد مع Adaboost |
| مجموعة قاعدة النعال | ،؟ | يتعلم بالتتابع مجموعة من القواعد مع النعال |
| مجموعة القاعدة بايزي | ،؟ ،؟ | يجد قاعدة موجزة مجموعة مع أخذ عينات بايزي (بطيئة) |
| قائمة القواعد المثلى | ،؟ ،؟ | قائمة قواعد تناسب باستخدام التحسين العالمي للفروق (Corels) |
| قائمة قواعد بايزي | ،؟ ،؟ | يناسب توزيع قائمة القواعد المدمجة مع أخذ عينات بايزي (بطيئة) |
| قائمة القواعد الجشع | ،؟ | يستخدم عربة لتناسب قائمة (مسار واحد فقط) ، بدلاً من شجرة |
| قائمة قواعد ONER | ،؟ | تناسب قائمة القواعد المقتصوبة على ميزة واحدة فقط |
| شجرة القاعدة الأمثل | ،؟ ،؟ | يناسب الأشجار المستجيب باستخدام التحسين العالمي للتفاؤل (GOSDT) |
| شجرة القاعدة الجشع | ،؟ ،؟ | يناسب الشجرة الجشع باستخدام العربة |
| C4.5 شجرة القاعدة | ،؟ ،؟ | يناسب الشجرة الجشع باستخدام C4.5 |
| شجرة القاعدة تاو | ،؟ | يناسب الشجرة باستخدام التحسين المتناوب |
| عشوائي التكراري غابة | ،؟ ،؟ | تناسب غابة عشوائية مرارًا وتكرارًا ، مع إعطاء ميزات مع أهمية عالية فرصة أكبر للاختيار |
| عدد صحيح متناثر نموذج خطي | ،؟ | نموذج خطي متناثر مع معاملات عدد صحيح |
| شجرة gam | ،؟ ،؟ | نموذج إضافي معمم يتناسب مع الأشجار المعززة القصيرة |
| شجرة الجشع مبالغ (التين) | ، ㅤ؟ | مجموع الأشجار الصغيرة مع عدد قليل جدا من القواعد (التين) |
| التسلسل الهرمي غلاف الانكماش | ،؟ | تحسين شجرة القرار أو الغابة العشوائية أو فرقة تعزيز التدرج مع تنظيم فائق السرعة ، بعد المخصصة |
| RF+ (MDI+) | ،؟ | ميزة عشوائية مرنة القائمة على الغابات |
| التقطير إزار | تدريب نموذج صندوق الأسود ، ثم قم بتقطيره في نموذج قابل للتفسير | |
| غلاف السيارات | قم بتركيب نموذج قابل للتفسير وحدده تلقائيًا | |
| المزيد من النماذج | ⌛ | (قريبا!) تحريض القاعدة الخفيفة ، mlroules ، ... |
وترد العروض التوضيحية في مجلد دفاتر.
imodels لاستخلاص قاعدة القرار السريرييأخذ الشكل الأخير من النماذج المذكورة أعلاه أحد الأشكال التالية ، والتي تهدف إلى أن تكون سهلة في وقت واحد لفهم وتنبؤها للغاية:
| مجموعة القواعد | قائمة القواعد | شجرة الحكم | النماذج الجبرية |
|---|---|---|---|
لا تختلف النماذج والخوارزميات المختلفة فقط في شكلها النهائي ولكن أيضًا في خيارات مختلفة تم إجراؤها أثناء النمذجة ، مثل كيفية توليد قواعد واختيارها وبعدها:
| الحكم جيل المرشح | اختيار القاعدة | حكم ما بعد المعالجة |
|---|---|---|
نماذج مختلفة تدعم مهام تعلم الآلات المختلفة. ويرد أدناه الدعم الحالي لنماذج مختلفة (يمكن استيراد كل من هذه النماذج مباشرة من IModels (على سبيل المثال from imodels import RuleFitClassifier ):
| نموذج | التصنيف الثنائي | الانحدار | ملحوظات |
|---|---|---|---|
| مجموعة قاعدة القواعد | RuleFitClassifier | Rulefitregressor | |
| مجموعة قاعدة سكوب | SkoperuleSclassifier | ||
| مجموعة القواعد المعززة | BOOSTEDRULESCLASSIFIER | BOOSTEDRULESREGRESSOR | |
| مجموعة قاعدة النعال | SlipperClassifier | ||
| مجموعة القاعدة بايزي | BayesianRulesetClassifier | فشل في مشاكل كبيرة | |
| قائمة القواعد المثلى (Corels) | OptimalRuleListClassifier | يتطلب corels ، يفشل في مشاكل كبيرة | |
| قائمة قواعد بايزي | BayesianRuleListClassifier | ||
| قائمة القواعد الجشع | GreedyRuleListClassifier | ||
| قائمة قواعد ONER | onerclassifier | ||
| شجرة القواعد الأمثل (GOSDT) | OptimalTreeClassifier | يتطلب GOSDT ، يفشل في مشاكل كبيرة | |
| شجرة القاعدة الجشع (عربة) | الجشع | الجشع | |
| C4.5 شجرة القاعدة | C45TreeClassifier | ||
| شجرة القاعدة تاو | taotreeclassifier | taotreeRegressor | |
| غابة عشوائية تكرارية | irfclassifier | يتطلب IRF | |
| النموذج الخطي العددي المتناثر | Slimclassifier | Slimregressor | يتطلب تبعيات إضافية للسرعة |
| شجرة gam | TreeGamClassifier | TreeGamregressor | |
| مبالغ الأشجار الجشع (التين) | FigsClassifier | Figsregressor | |
| الانكماش الهرمي | Hstreeclassifiercv | hstreeRegressorcv | يلف أي نموذج قائم على شجرة Sklearn |
| التقطير | distilledregressor | يلف أي نماذج متوافقة مع Sklearn | |
| طراز السيارات | AutoInterpretableClassifier️ | AutoInterpretableregressor rom |
| المعزز | مرجع | وصف |
|---|---|---|
| MDLP | ،؟ ،؟ | التقدير باستخدام تقليل الانتروبيا إلى الحد الأدنى |
| بسيط | ،؟ | التقدير البسيط Kbins |
| غابة عشوائية | تقديري في صناديق تستند إلى شعبية عشوائية تقسيم الغابات |
بعد تطوير واللعب مع imodels ، قمنا بتطوير عدد قليل من النماذج الجديدة للتغلب على قيود النماذج القابلة للتفسير الحالية.
؟ ورق، ؟ بريد، ؟ اقتباس
تعد مبالغ الشجرة الجشعية القابلة للتفسير (FIGS) خوارزمية لتركيب النماذج المستندة إلى القواعد الموجزة. على وجه التحديد ، تقوم التين بتعميم CART لتنمية عدد مرن من الأشجار في وقت واحد في ملخص. يمكن تقييد إجمالي عدد الانقسامات عبر جميع الأشجار من خلال عتبة محددة مسبقًا ، مما يجعل النموذج قابلاً للتفسير. تُظهر التجارب عبر مجموعة واسعة من مجموعات البيانات في العالم الحقيقي أن التين تحقق أداء التنبؤ الحديث عندما يقتصر على بعض الانقسامات (على سبيل المثال أقل من 20).
مثال نموذج التين. يتعلم التين مجموعة من الأشجار مع عدد مرن من الأشجار ؛ لتقديم تنبؤها ، يلخص النتيجة من كل شجرة.
؟ ورقة (ICML 2022) ،؟ بريد، ؟ اقتباس
الانكماش الهرمي هو طريقة تنظيم ما بعد المخصصة سريعة للغاية تعمل على أي شجرة قرار (أو مجموعة قائمة على الأشجار ، مثل الغابات العشوائية). لا يعدل بنية الشجرة ، وبدلاً من ذلك يقوم بتنظيم الشجرة عن طريق تقليص التنبؤ على كل عقدة باتجاه وسائل عينة أسلافها (باستخدام معلمة تنظيم واحدة). تُظهر التجارب على مجموعة واسعة من مجموعات البيانات أن الانكماش الهرمي يزيد بشكل كبير من الأداء التنبئي لأشجار القرار الفردية ومجموعات شجرة القرار.
مثال HS. ينطبق HS على تنظيم ما بعد المخصصة على أي شجرة قرار عن طريق تقليص كل عقدة تجاه والديها.
؟ ورق، ؟ بريد، ؟ اقتباس
MDI+ هو إطار أهمية ميزة جديدة ، والذي يعتمد على درجة أهمية المتوسط الشعبي في النتيجة الشجاعة (MDI) للأهمية الغابات العشوائية. في جوهرها ، تتوسع MDI+ عند صلة تم اكتشافها مؤخرًا بين الانحدار الخطي وأشجار القرار. عند القيام بذلك ، يتيح MDI+ الممارسين (1) تكييف حساب أهمية الميزة لهيكل البيانات/المشكلة و (2) دمج ميزات أو معرفة إضافية للتخفيف من التحيزات المعروفة لأشجار القرار. في كل من دراسات حالة البيانات الحقيقية والمحاكاة الواسعة المستوحاة من الواقعة ، يتفوق MDI+ على مقاييس أهمية شائعة الاستخدام (على سبيل المثال ، MDI ، الدرجات القائمة على التقليب ، و treeshap) بواسطة هوامش كبيرة.
يرجى الاستشهاد بالحزمة إذا كنت تستخدمها في عمل أكاديمي :)
@ software {
imodels2021 ,
title = { imodels : a python package for fitting interpretable models },
journal = { Journal of Open Source Software },
publisher = { The Open Journal },
year = { 2021 },
author = { Singh , Chandan and Nasseri , Keyan and Tan , Yan Shuo and Tang , Tiffany and Yu , Bin },
volume = { 6 },
number = { 61 },
pages = { 3192 },
doi = { 10.21105 / joss.03192 },
url = { https : // doi.org / 10.21105 / joss.03192 },
}