Lightautoml (LAMA) هو إطار السيارات من قبل SBER AI Lab.
يوفر إنشاء النموذج التلقائي للمهام التالية:
الإصدار الحالي من الحزمة يتولى مجموعات البيانات التي لها عينات مستقلة في كل صف. أي كل صف هو كائن له ميزاته المحددة والهدف . مجموعات البيانات والتسلسلات متعددة العمل قيد التقدم :)
ملاحظة : نستخدم مكتبة AutoWoE لإنشاء نماذج قابلة للتفسير تلقائيًا.
المؤلفون : ألكساندر ريزكوف ، أنطون فاكروشييف ، ديمتري سيماكوف ، فاسيلي بوناكوف ، رينشين دامدينوف ، بافل شفيتس ، ألكساندر كيريلين.
تتوفر توثيق Lightautoml هنا ، يمكنك أيضًا إنشاءه.
خط أنابيب GPU الكامل لـ Lightautoml المتاح حاليًا لاختبار المطورين (لا يزال قيد التقدم). الكود والبرامج التعليمية المتاحة هنا
لتثبيت Lama Framework على جهازك من PYPI ، قم بتنفيذ الأوامر التالية:
# Install base functionality:
pip install -U lightautoml
# For partial installation use corresponding option.
# Extra dependecies: [nlp, cv, report]
# Or you can use 'all' to install everything
pip install -U lightautoml[nlp]
الإضافة ، قم بتشغيل الأوامر التالية لتمكين توليد تقرير PDF:
# MacOS
brew install cairo pango gdk-pixbuf libffi
# Debian / Ubuntu
sudo apt-get install build-essential libcairo2 libpango-1.0-0 libpangocairo-1.0-0 libgdk-pixbuf2.0-0 libffi-dev shared-mime-info
# Fedora
sudo yum install redhat-rpm-config libffi-devel cairo pango gdk-pixbuf2
# Windows
# follow this tutorial https://weasyprint.readthedocs.io/en/stable/install.html#windowsالعودة إلى الأعلى
دعنا نحل مسابقة Kaggle Titanic الشهيرة أدناه. هناك طريقتان رئيسيتان لحل مشاكل التعلم الآلي باستخدام Lightautoml:
import pandas as pd
from sklearn . metrics import f1_score
from lightautoml . automl . presets . tabular_presets import TabularAutoML
from lightautoml . tasks import Task
df_train = pd . read_csv ( '../input/titanic/train.csv' )
df_test = pd . read_csv ( '../input/titanic/test.csv' )
automl = TabularAutoML (
task = Task (
name = 'binary' ,
metric = lambda y_true , y_pred : f1_score ( y_true , ( y_pred > 0.5 ) * 1 ))
)
oof_pred = automl . fit_predict (
df_train ,
roles = { 'target' : 'Survived' , 'drop' : [ 'PassengerId' ]}
)
test_pred = automl . predict ( df_test )
pd . DataFrame ({
'PassengerId' : df_test . PassengerId ,
'Survived' : ( test_pred . data [:, 0 ] > 0.5 ) * 1
}). to_csv ( 'submit.csv' , index = False )يحتوي Lighautoml Framework على الكثير من الأجزاء الجاهزة للاستخدام وخيارات التخصيص الواسعة ، لمعرفة المزيد من الفحص قسم الموارد.
العودة إلى الأعلى
Tutorial_1_basics.ipynb - ابدأ مع Lightautoml على البيانات الجدولية.Tutorial_2_WhiteBox_AutoWoE.ipynb - إنشاء نماذج قابلة للتفسير.Tutorial_3_sql_data_source.ipynb - يوضح كيفية استخدام الإعدادات المسبقة Lightautoml (كل من المتغيرات المستقلة والوقت المستخدمة) لحل مهام ML على البيانات الجدولية من قاعدة بيانات SQL بدلاً من CSV.Tutorial_4_NLP_Interpretation.ipynb - مثال على استخدام TabularNlPautoml preset ، limetextexplainer.Tutorial_5_uplift.ipynb - يوضح كيفية استخدام Lightautoml لمهمة النموذج النهائي.Tutorial_6_custom_pipeline.ipynb - يوضح كيفية إنشاء خط الأنابيب الخاص بك من كتل محددة: خطوط أنابيب لتوليد الميزات واختيار الميزات ، خوارزميات ML ، تحسين الفائقة ، إلخ.Tutorial_7_ICE_and_PDP_interpretation.ipynb - كيفية الحصول على التفسير المحلي والعالمي لنتائج النموذج باستخدام أساليب ICE و PDP.ملاحظة 1 : بالنسبة للإنتاج ، لا تحتاج إلى استخدام profiler (التي تزيد من وقت العمل ومواصلة الذاكرة) ، لذا يرجى عدم تشغيله - إنه في حالة إيقاف افتراضيًا
ملاحظة 2 : لإلقاء نظرة على هذا التقرير بعد التشغيل ، يرجى التعليق على السطر الأخير من العرض التجريبي مع أمر حذف التقرير.
دورات تصادم Lightautoml :
أدلة الفيديو :
الأوراق :
مقالات حول Lightautoml :
العودة إلى الأعلى
إذا كنت مهتمًا بالمساهمة في Lightautoml ، فيرجى قراءة الدليل المساهم للبدء.
العودة إلى الأعلى
تم ترخيص هذا المشروع بموجب ترخيص Apache ، الإصدار 2.0. انظر ملف الترخيص لمزيد من التفاصيل.
العودة إلى الأعلى
بادئ ذي بدء ، تحتاج إلى تثبيت git والشعر.
# Load LAMA source code
git clone https://github.com/sberbank-ai-lab/LightAutoML.git
cd LightAutoML/
# !!!Choose only one item!!!
# 1. Global installation: Don't create virtual environment
poetry config virtualenvs.create false --local
# 2. Recommended: Create virtual environment inside your project directory
poetry config virtualenvs.in-project true
# For more information read poetry docs
# Install LAMA
poetry lock
poetry install import pandas as pd
from sklearn . metrics import f1_score
from lightautoml . automl . presets . tabular_presets import TabularAutoML
from lightautoml . tasks import Task
df_train = pd . read_csv ( '../input/titanic/train.csv' )
df_test = pd . read_csv ( '../input/titanic/test.csv' )
# define that machine learning problem is binary classification
task = Task ( "binary" )
reader = PandasToPandasReader ( task , cv = N_FOLDS , random_state = RANDOM_STATE )
# create a feature selector
model0 = BoostLGBM (
default_params = { 'learning_rate' : 0.05 , 'num_leaves' : 64 ,
'seed' : 42 , 'num_threads' : N_THREADS }
)
pipe0 = LGBSimpleFeatures ()
mbie = ModelBasedImportanceEstimator ()
selector = ImportanceCutoffSelector ( pipe0 , model0 , mbie , cutoff = 0 )
# build first level pipeline for AutoML
pipe = LGBSimpleFeatures ()
# stop after 20 iterations or after 30 seconds
params_tuner1 = OptunaTuner ( n_trials = 20 , timeout = 30 )
model1 = BoostLGBM (
default_params = { 'learning_rate' : 0.05 , 'num_leaves' : 128 ,
'seed' : 1 , 'num_threads' : N_THREADS }
)
model2 = BoostLGBM (
default_params = { 'learning_rate' : 0.025 , 'num_leaves' : 64 ,
'seed' : 2 , 'num_threads' : N_THREADS }
)
pipeline_lvl1 = MLPipeline ([
( model1 , params_tuner1 ),
model2
], pre_selection = selector , features_pipeline = pipe , post_selection = None )
# build second level pipeline for AutoML
pipe1 = LGBSimpleFeatures ()
model = BoostLGBM (
default_params = { 'learning_rate' : 0.05 , 'num_leaves' : 64 ,
'max_bin' : 1024 , 'seed' : 3 , 'num_threads' : N_THREADS },
freeze_defaults = True
)
pipeline_lvl2 = MLPipeline ([ model ], pre_selection = None , features_pipeline = pipe1 ,
post_selection = None )
# build AutoML pipeline
automl = AutoML ( reader , [
[ pipeline_lvl1 ],
[ pipeline_lvl2 ],
], skip_conn = False )
# train AutoML and get predictions
oof_pred = automl . fit_predict ( df_train , roles = { 'target' : 'Survived' , 'drop' : [ 'PassengerId' ]})
test_pred = automl . predict ( df_test )
pd . DataFrame ({
'PassengerId' : df_test . PassengerId ,
'Survived' : ( test_pred . data [:, 0 ] > 0.5 ) * 1
}). to_csv ( 'submit.csv' , index = False )العودة إلى الأعلى
طلب نصيحة سريعة في Slack Community أو Telegram Group.
تقارير الأخطاء المفتوحة وطلبات الميزات حول قضايا GitHub.