Lightautoml (Lama) เป็นกรอบอัตโนมัติโดย Sber Ai Lab
ให้การสร้างโมเดลอัตโนมัติสำหรับงานต่อไปนี้:
เวอร์ชันปัจจุบันของแพ็คเกจจัดการชุดข้อมูลที่มีตัวอย่างอิสระในแต่ละแถว IE แต่ละแถวเป็นวัตถุที่มีคุณสมบัติและเป้าหมายเฉพาะ ชุดข้อมูลและลำดับที่หลากหลายเป็นงานที่กำลังดำเนินการ :)
หมายเหตุ : เราใช้ไลบรารี AutoWoE เพื่อสร้างโมเดลที่ตีความได้โดยอัตโนมัติ
ผู้เขียน : Alexander Ryzhkov, Anton Vakhrushev, Dmitry Simakov, Vasilii Bunakov, Rinchin Damdinov, Pavel Shvets, Alexander Kirilin
เอกสาร ของ 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 ที่ได้รับความนิยมด้านล่าง มีสองวิธีหลักในการแก้ปัญหาการเรียนรู้ของเครื่องโดยใช้ 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 แทน CSVTutorial_4_NLP_Interpretation.ipynb - ตัวอย่างของการใช้ tabularnlpautoml ที่ตั้งไว้ล่วงหน้า, limetextexplainerTutorial_5_uplift.ipynb - แสดงวิธีใช้ Lightautoml สำหรับงานสร้างแบบยกระดับTutorial_6_custom_pipeline.ipynb - แสดงวิธีการสร้างไปป์ไลน์ของคุณเองจากบล็อกที่ระบุ: ท่อสำหรับการสร้างคุณสมบัติและการเลือกคุณสมบัติอัลกอริทึม ML, การเพิ่มประสิทธิภาพพารามิเตอร์ hyperparameter ฯลฯTutorial_7_ICE_and_PDP_interpretation.ipynb - แสดงวิธีการตีความผลลัพธ์ของแบบจำลองในท้องถิ่นและระดับโลกโดยใช้วิธีน้ำแข็งและ 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