LightAutoml (Lama) adalah kerangka kerja Automl oleh Sber AI Lab.
Ini menyediakan pembuatan model otomatis untuk tugas -tugas berikut:
Versi saat ini dari paket menangani dataset yang memiliki sampel independen di setiap baris. Yaitu setiap baris adalah objek dengan fitur dan target spesifiknya . Dataset dan urutan multitable adalah pekerjaan yang sedang berlangsung :)
Catatan : Kami menggunakan AutoWoE Library untuk secara otomatis membuat model yang dapat diinterpretasikan.
Penulis : Alexander Ryzhkov, Anton Vakhrushev, Dmitry Simakov, Vasilii Bunakov, Rinchin Damdinov, pavel shvets, Alexander Kirilin.
Dokumentasi LightAutoml tersedia di sini, Anda juga dapat menghasilkannya.
Pipa GPU penuh untuk LightAutoml saat ini tersedia untuk pengujian pengembang (masih sedang berlangsung). Kode dan tutorial yang tersedia di sini
Untuk menginstal Lama Framework di mesin Anda dari PYPI, jalankan perintah berikut:
# 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]
Tambahan, jalankan perintah berikut untuk mengaktifkan pembuatan laporan 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#windowsKembali ke atas
Mari kita selesaikan kompetisi Kaggle Titanic yang populer di bawah ini. Ada dua cara utama untuk menyelesaikan masalah pembelajaran mesin menggunakan 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 )Kerangka kerja LighAutoml memiliki banyak komponen yang siap digunakan dan opsi kustomisasi yang luas, untuk mempelajari lebih lanjut untuk memeriksa bagian sumber daya.
Kembali ke atas
Tutorial_1_basics.ipynb - Mulailah dengan lightautoml pada data tabel.Tutorial_2_WhiteBox_AutoWoE.ipynb - Membuat model yang dapat ditafsirkan.Tutorial_3_sql_data_source.ipynb - menunjukkan cara menggunakan preset lightautoml (baik mandiri dan varian yang digunakan waktu) untuk menyelesaikan tugas ML pada data tabel dari basis data SQL, bukan CSV.Tutorial_4_NLP_Interpretation.ipynb - Contoh penggunaan tabularnlpautoml preset, limeTextExplainer.Tutorial_5_uplift.ipynb - Menunjukkan cara menggunakan lightAutoml untuk tugas pemodelan pengangkatan.Tutorial_6_custom_pipeline.ipynb - menunjukkan cara membuat pipa Anda sendiri dari blok yang ditentukan: pipa untuk pembuatan fitur dan pemilihan fitur, algoritma ML, optimasi hiperparameter dll.Tutorial_7_ICE_and_PDP_interpretation.ipynb - menunjukkan cara mendapatkan interpretasi lokal dan global hasil model menggunakan pendekatan ICE dan PDP.CATATAN 1 : Untuk produksi Anda tidak perlu menggunakan profiler (yang meningkatkan waktu kerja dan consomption memori), jadi tolong jangan menyalakannya - itu dalam keadaan di luar negeri secara default
Catatan 2 : Untuk melihat laporan ini setelah pelarian, silakan berkomentar baris terakhir demo dengan perintah penghapusan laporan.
Kursus Kecelakaan LightAutoml :
Panduan Video :
Makalah :
Artikel tentang LightAutoml :
Kembali ke atas
Jika Anda tertarik untuk berkontribusi pada LightAutoml, silakan baca panduan berkontribusi untuk memulai.
Kembali ke atas
Proyek ini dilisensikan di bawah lisensi Apache, versi 2.0. Lihat file lisensi untuk lebih jelasnya.
Kembali ke atas
Pertama -tama Anda perlu menginstal git dan puisi.
# 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 )Kembali ke atas
Cari saran cepat di Slack Community atau Telegram Group.
Buka Laporan Bug dan Permintaan Fitur tentang Masalah GitHub.