导入训练和测试数据:
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)