autoAI

发布时间 2023-03-22 21:11:03作者: furiyo

导入训练和测试数据:

train_csv=pd.read_csv('../input/46464564/train.csv')  
test_csv=pd.read_csv('../input/46464564/test.csv')
train_csv.head(100)

训练AutoGluon模型:

train_data=TabularDataset(train_csv)  
predictor=TabularPredictor(label=label).fit(train_data.drop(columns=[id]),
                                           num_stack_levels=1,
                                            num_bag_folds=5)

对训练函数的几个参数说明:

#hyperparameters='multimodal',这个参数,multimodal表示多模态,还有toy等参数可以选择,沐神说文本可以用transformer来提取特征
#presets='best_quality,直接选择最好模型训练,时间成本上升
#num_stack_levels=1,表示使用了1层stack,一般取0-3
#num_bag_folds=10,表示使用了10折交叉验证
#time_limit,能接受的时间限制
#eval metric,选择的机器学习评价,默认二分类为accuracy

主要的参数就是以上的这些。

训练我们的数据:

preds=predictor.predict(test_csv.drop(columns=[id]))

将训练好的结果输出:

submission=pd.DataFrame({id:test_csv[id],label:preds})  
submission.to_csv('submission.csv',index=False)
print("输出完毕")

还可以查看一些模型训练的中间结果

#查看模型在测试集上的训练结果
predictor.leaderboard(train_csv,silent=True)

会有以下的表格展示它的训练误差,验证误差,训练时间

要使用autogluon输出特征重要性,您可以使用

TabularPredictor

类的feature_importance

方法。以下是一个示例:

from autogluon.tabular import TabularDataset, TabularPredictor

train_data = TabularDataset('train.csv')
label = 'class'
predictor = TabularPredictor(label=label).fit(train_data)

# 输出特征重要性
fi = predictor.feature_importance(train_data)
print(fi)

在此示例中,我们首先使用

TabularDataset

加载训练数据。然后,我们创建一个TabularPredictor

对象并将其拟合到训练数据。最后,我们调用TabularPredictor

对象的feature_importance

方法以输出特征重要性。feature_importance

方法以训练数据作为输入,并返回包含特征重要性分数的pandas DataFrame。

请注意,

TabularPredictor

类是autogluon.tabular

模块的一部分,因此您需要在代码中导入此模块。此外,请确保在运行此代码之前已安装autogluon

软件包。

拟合过程中发生了什么
results = predictor.fit_summary()

更高的输出精度
time_limit : 模型训练的最长等待时间,通常不设置
eval_metric: 评估指标,AUC还是精度等
presets: 默认为’medium_quality_faster_train’,损失了精度但是速度比较快。要是设置为“best_quality”,则会做做bagging和stacking以提高性能

输出预测概率
pred_probs = predictor.predict_proba(test_data_nolab)
pred_probs.head(5)

展示所有预训练模型在测试集的效能
predictor.leaderboard(test_data, silent=True)