• 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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    首次使用需要配置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
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    4. 总结

    1. Autogluon在合理的计算开销下得到模型效果还不错
    2. 虽然可以做特征自动抽取,但是加入一些人工数据预处理可以提升效果
    3. 比较大的数据集需要使用gpu或者多台机器进行分布式训练
  • 相关阅读:
    零基础html学习/刷题-第二期
    灰度发布专题---1、灰度发布的意义和方案
    jwt使用token传递前后端认证 实战项目演练
    MSP430F149用模拟SPI和FM25CL640通信
    Qt如何QProgressDialog如何屏蔽按键Esc及空格键
    python 创建虚拟环境
    供应YB5200原厂2A单节锂电充电IC 开关式2A内置MOS 单节锂电池充电IC
    PHP志愿者协会报名系统的设计与实现 毕业设计-附源码201524
    常用软件安装包
    Ipad2022可以用电容笔吗?双十一值得入手电容笔推荐
  • 原文地址:https://blog.csdn.net/keiven_/article/details/126482512