AutoGluon

参考:AutoGluon背后的技术
10行代码战胜90%数据科学家

自动对数据抽取特征并进行模型训练,

大部分automl框架是基于超参数搜索计算,Autogluon依赖于融合多个无需超参数搜索的模型

融合计算
stacking在同一个训练集训练出多个模型,这些模型输出进入线性模型对输出做加权和做最终输出

k则交叉bagging
训练同一个模型,使用不同的初始权重或者数据块,模型输出取平均降低方差

多层stacking
将模型输出跟数据合并起来,再做stacking,训练多个模型,再用线性模型得到输出

与其他模型比较
在这里插入图片描述

在这里插入图片描述
实践

from autogluon.tabular import TabularDataset, TabularPredictor
import pandas as pd
import numpy as np
from sklearn.metrics import explained_variance_score, mean_absolute_error, mean_squared_error, r2_score

train_data = TabularDataset('train.csv')
id, label = 'id', 'activity_avg_day_sale'
predictor = TabularPredictor(label=label).fit(
train_data.drop(columns=[id]))
test_data = TabularDataset('test.csv')
y_true=test_data[label]
y_pred = predictor.predict(test_data.drop(columns=[id, label] ))

submission = pd.concat([test_data ,pd.DataFrame({'predict_activity_avg_day_sale':y_pred})],axis=1)
submission.loc[submission['predict_activity_avg_day_sale']<1,'predict_activity_avg_day_sale'] = 1
y_pred = submission['predict_activity_avg_day_sale']
submission.to_csv('test_result.csv', index=False)
print('rmse:', np.sqrt(mean_squared_error(y_true, y_pred)))  # 计算均方差根判断效果
print('r2:', r2_score(y_true, y_pred))  # 计算均方误差回归损失,越接近于1拟合效果越好
print('平均绝对值误差:',
          mean_absolute_error(y_true, y_pred))  # 为每个数据点计算残差,取所有这些残差的平均值
print('可解释性方差', explained_variance_score(y_true, y_pred))
print('平均准确度误差:', np.mean(abs(y_true - y_pred) / y_true))

加载模型

 predictor = TabularPredictor.load("AutogluonModels/ag-20211120_071953/")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值