Autogluon的基本思想是多个模型的集成。Autogluon能够基于表格数据产生高精度的预测值,Autogluon能够通过表格数据去解决分类和回归任务,并且它的使用和Skearn一样较为简单。下面是一般使用的步骤:
from autogluon.tabular import TabularDataset, TabularPredictor
# 1.导入数据并将数据转化为TabularDataset
train_data = TabularDataset('https://autogluon.s3.amazonaws.com/datasets/Inc/train.csv')
subsample_size = 500
train_data = train_data.sample(n=subsample_size, random_state=0)
train_data.head()
# 2.确定预测标签列
label = 'class'
print("Summary of class variable: \n", train_data[label].describe())
# 3.进行模型训练同时保存模型
save_path = 'agModels-predictClass'
predictor = TabularPredictor(label=label, path=save_path).fit(train_data)
# 4.整理测试数据
test_data = TabularDataset('https://autogluon.s3.amazonaws.com/datasets/Inc/test.csv')
y_test = test_data[label]
test_data_nolab = test_data.drop(columns=[label])
test_data_nolab.head()
# 5.基于训练后的模型进行测试数据的预测及效果评估
predictor = TabularPredictor.load(save_path)
y_pred = predictor.predict(test_data_nolab)
print("Predictions: \n", y_pred)
perf = predictor.evaluate_predictions(y_true=y_test, y_pred=y_pred, auxiliary_metrics=True)
# 6.可以查看测试数据在Autogluon中用到的各个模型的表现
predictor.leaderboard(test_data, silent=True)
上面步骤可以完成数据模型的所有过程,从数据的训练、验证到测试。除此之外还有其他的一些功能。
# 基于分类任务,可以查看它属于哪类的概率
pred_probs = predictor.predict_proba(test_data_nolab)
pred_probs.head(5)
# 查看模型训练过程的详细数据,包括训练、测试花费时间等
results = predictor.fit_summary(show_plot=True)
# 查看模型对数据的预测类别
predictor.problem_type
# 查看模型对数据中特征的识别分类
predictor.feature_metadata
# 选择使用模型中的特定模型进行预测
predictor.predict(test_data, model='LightGBM')
在训练中为提高模型效果在fit()函数里的presets参数可以调整[‘best_quality’,‘high_quality’,‘good_quality’,‘medium_quality’]。