AutoGluon学习笔记

捡起记Blog的习惯

学习视频链接跟李沐学AI

1. AutoGluon技术原理

Automl:自动对数据抽取特征并进行模型训练。大部分automl框架是基于超参数搜索技术。Autogluon则依赖于融合多个无需超参数搜索的模型。

AutoGluon技术:

  1. stacking:在同一个数据上独立训练出不同的模型,然后对这些模型通过线性模型如进行加权求和得到最终输出
  2. k-则交叉bagging:fit(..., num_bag_folds=3)指3则交叉bagging
  3. 多层stacking:将数据输出与原始数据整合再进行多次模型训练。fit(..., num_stack_levels=1, num_bag_folds=3)表示额外使用一层bagging,同时每个模型使用三则交叉bagging。

2. 安装、测试使用

在已有conda环境基础下terminal直接运行pip install autogluon
在这里插入图片描述
在这里插入图片描述

使用官网实例在jupyter上测试:
在这里插入图片描述

3. Kaggle Titanic实例

数据集获取(或者直接从官网下载)

# 安装数据集所需的包
pip install kaggle
# 下载数据集
kaggle c download titanic
unzip -o titanic.zip

首次使用需要配置kaggle秘钥配置方式

from autogluon.tabular import TabularDataset, TabularPredictor
# 训练
train_data = TabularDataset('train.csv')
id, label = 'PassengerId', 'Survived'
predictor = TabularPredictor(label=label).fit(train_data.drop(columns=[id]))

import pandas as pd
# 预测
test_data = TabularDataset('test.csv')
preds = predictor.predict(test_data.drop(columns=[id]))
submission = pd.DataFrame({id: test_data[id], label: preds})
submission.to_csv('submission.csv', index=False)

# 排名第5 cpu需训练2h
from autogluon.tabular import TabularDataset, TabularPredictor
import numpy as np
train_data = TabularDataset('train.csv')
id, label = 'Id', 'Sold Price'
# 数据预处理
large_val_cols = ['Lot', 'Total interior livable area', 'Tax assedssed value', 
                 'Annual tax amount', 'Listed Price', 'Last Sold Price']
for c in large_val_cols + [label]:
    train_data[c] = np.log(train_data[c] + 1)
    
predictor = TabularPredictor(label=label).fit(train_data.drop(columns=[id]))

# 排名第1 需要gpu训练
predictor = TabularPredictor(label=label).fit(
    train_data.drop(columns=[id]),
    hyperparameters='multimodal',
    num_stack_levels=1, num_bag_folds=5
)

4. 总结

  1. Autogluon在合理的计算开销下得到模型效果还不错
  2. 虽然可以做特征自动抽取,但是加入一些人工数据预处理可以提升效果
  3. 比较大的数据集需要使用gpu或者多台机器进行分布式训练
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值