Skip to main content

用于自动 ML 模型创建 (AutoML) 的快速且可定制的框架

项目描述

LightAutoML - 自动模型创建框架

电报 PyPI - 下载 阅读文档 黑色的

LightAutoML (LAMA) 是一个 AutoML 框架,它为以下任务提供自动模型创建:

  • 二元分类
  • 多类分类
  • 回归

当前版本的包处理每行中具有独立样本的数据集。即每一行都是一个具有其特定特征和目标的对象。多表数据集和序列正在进行中:)

注意:我们使用AutoWoE库来自动创建可解释的模型。

作者Alexander Ryzhkov 、Anton VakhrushevDmitry Simakov、Vasilii Bunakov、Rinchin Damdinov、Alexander Kirilin、Pavel Shvets。

LightAutoML 的文档可在此处获得,您也可以生成它。

(新功能)GPU 和 Spark 管道

LightAutoML 的完整 GPU 和 Spark 管道目前可供开发人员测试(仍在进行中)。代码和教程:

目录

安装

要从 PyPI 在您的机器上安装 LAMA 框架,请执行以下命令:

# 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)

LightAutoML 框架有很多现成的部件和广泛的自定义选项,要了解更多信息,请查看资源部分。

回到顶部

资源

LightAutoML 使用的 Kaggle 内核示例:

Google Colab 教程和其他示例

注意 1:对于生产,您不需要使用分析器(这会增加工作时间和内存消耗),所以请不要打开它 - 默认情况下处于关闭状态

注意2:运行后查看该报告,请使用报告删除命令注释demo的最后一行。

课程、视频和论文

回到顶部

为 LightAutoML 做贡献

如果您有兴趣为 LightAutoML 做出贡献,请阅读贡献指南以开始。

回到顶部

执照

该项目根据 Apache 许可证 2.0 版获得许可。有关详细信息,请参阅许可证文件。

回到顶部

对于开发人员

从源代码安装

首先你需要安装git诗歌

# Load LAMA source code
git clone https://github.com/AILab-MLTools/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)

回到顶部

支持和功能请求

在电报群寻求及时的建议。

打开关于 GitHub问题的错误报告和功能请求。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

LightAutoML-0.3.7.1.tar.gz (243.2 kB 查看哈希

已上传 source

内置分布

lightautoml-0.3.7.1-py3-none-any.whl (319.3 kB 查看哈希

已上传 py3