AutoML简单介绍
human expert负责:
problem definition 和 data
AutoML负责:
Feature Model Optimization Evaluation Deployment
优点:
减少专家知识依赖
缩短AI应用投产时间
标准化建模流程,模块化发展业务
适应业务发展
流程:
按模型类型划分, AutoML可以被分为传统机器学习和针对深度学习的NAS(neural architecture search)。传统机器学习模型的自动化学习包含基础特征工程,算法选择以及机器学习pipeline等合成。针对深度学习的NAS,被视作一种自动设计神经网络的技术。通过NAS,根据样本集设计出高性能兼具准确率的网络结构。在某些特定任务上,可以媲美人类专家水平,甚至是发现未曾提出的网络架构。
流行AutoML框架
- AutoGluon:AWS开发,文本图像和表格数据
- TPOP:基于树的管道优化工具,遗传编程探索管道,不执行预处理,不适用于NLP
- H2OAutoML:传统神经网络和机器学习模型,预训练模型选择和超参数调整,需要java环境
- Autosklearn:基于贝叶斯优化,元学习和集成构建,仅支持基于sklearn的模型,不适用于图形模型和序列预测问题
- MLBox
- AutoWEKA
- AutoPytorch
- AutoKeras
- MLJAR
Autogluon的内部模型和缩写
autogluon加入的稳定模型:
‘GBM’ (LightGBM)
‘CAT’ (CatBoost)
‘XGB’ (XGBoost)
‘RF’ (random forest)
‘XT’ (extremely randomized trees)
‘KNN’ (k-nearest neighbors)
‘LR’ (linear regression)
‘NN_MXNET’ (neural network implemented in MXNet)
‘NN_TORCH’ (neural network implemented in Pytorch)
‘FASTAI’ (neural network with FastAI backend)
初级代码(表格在这里插入代码片
多分类任务)
从磁盘读入数据
from autogluon.tabular import TabularDataset, TabularPredictor
data_root1 = 'H:/'
train_data1 = TabularDataset(data_root1 + 'train.csv')#含有label
test_data1 = TabularDataset(data_root1 + 'test.csv')#不含label
分割训练集与测试集
from sklearn.model_selection import train_test_split
x_train,x_test=train_test_split(train_data1,train_size=0.8,stratify=train_data1["label"])
训练分类器模型
save_path="agmodel-opti"
predictor1 = TabularPredictor(label='label',path=save_path,eval_metric="accuracy").fit(x_train, time_limit=120,presets='best_quality') # Fit models for 120s
eval_metric是内部使用的评价指标是accuracy,还可以用roc
presets='best_quality’会用到stack和bag优化
直接导入分类器模型
predictor1 = TabularPredictor.load("agmodel-opti-accu")
测试集输出内部模型效果
leaderboard1 = predictor1.leaderboard(x_test)
print(learderboard1)
输出不带label测试集的结果
y_pred = predictor1.predict(test_data1)