LightAutoml (Lama)은 SBER AI Lab의 Automl 프레임 워크입니다.
다음 작업에 대한 자동 모델 작성을 제공합니다.
패키지의 현재 버전은 각 행에 독립적 인 샘플이있는 데이터 세트를 처리합니다. 즉, 각 행은 특정 기능과 대상이있는 객체입니다 . 다중 정보 데이터 세트와 시퀀스는 진행중인 작업입니다. :)
참고 : AutoWoE 라이브러리를 사용하여 해석 가능한 모델을 자동으로 생성합니다.
저자 : Alexander Ryzhkov, Anton Vakhrushev, Dmitry Simakov, Vasilii Bunakov, Rinchin Damdinov, Pavel Shvets, Alexander Kirilin.
LightAutoml의 문서화는 여기에서 제공되며 생성 할 수도 있습니다.
현재 개발자 테스트에 사용할 수있는 LightAutoml 용 전체 GPU 파이프 라인 (아직 진행중인). 여기에서 사용할 수있는 코드 및 튜토리얼
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 타이타닉 경쟁을 해결해 봅시다. 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 프레임 워크에는 많은 즉시 사용 가능한 부품과 광범위한 사용자 정의 옵션이있어 리소스 섹션을 자세히 알아보십시오.
위로 돌아갑니다
Tutorial_1_basics.ipynb 테이블 데이터에서 lightautoml로 시작하십시오.Tutorial_2_WhiteBox_AutoWoE.ipynb 해석 가능한 모델 생성.Tutorial_3_sql_data_source.ipynb CSV 대신 SQL 데이터베이스의 테이블 데이터베이스에서 ML 작업을 해결하기 위해 LightAutoml 사전 설정 (독립형 및 시간 사용 변형)을 사용하는 방법을 보여줍니다.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 : 프로덕션의 경우 프로파일 러 (작업 시간 및 메모리 컨설팅을 증가시킬 필요가 없으므로 켜지 마십시오. 기본적으로 상태에 있습니다.
참고 2 : 실행 후이 보고서를 살펴 보려면 보고서 deletion 명령과 함께 마지막 데모를 주석하십시오.
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 문제에 대한 버그 보고서 및 기능 요청을 열어줍니다.