如何查看训练好的机器学习模型中使用了哪些特征?

How to see which features are used in the trained machine learning model?

使用 H2O 的 autoML 工具训练模型后,我可以看到 saved_model.varimp_plot() 的变量重要性。我很好奇 H2O 声称要做的特征工程部分。

我正在尝试 H2O 文档中的简单代码行。

import h2o
h2o.init()

train_data = h2o.import_file("../full_data.csv")
test_data = h2o.import_file("../201810_pca.csv")

from h2o.automl import H2OAutoML
y = "Label"
x = ['feature0','feature1','feature2','feature3','feature4','feature5','feature6','feature7','feature8','feature9','feature10',
'feature11','feature12','feature13','feature14','feature15','feature16','feature17','feature18','feature19','feature20',
'feature21','feature22','feature23','Amount','DateTime']


aml = H2OAutoML(max_models = 100, max_runtime_secs=100000, seed = 1)
aml.train(x = x, y = y, training_frame = train_data)

lb = aml.leaderboard
lb.head()
lb.head(rows=lb.nrows) # Entire leaderboard

preds = aml.predict(test_data)
h2o.save_model(aml.leader, path = "./Saved_Models")


saved_model = h2o.load_model("./Saved_Models/XGBoost_2_AutoML_20191018_174201")

training_frame = your_model.actual_params['training_frame'] #The part gives error
print(training_frame)

如何查看训练模型中使用了哪些特征?我想看看 H2O 是否正在提取和添加新功能。

我按照 中的说明使用了 my_training_frame = your_model.actual_params['training_frame'],但它给出了错误:"TypeError: 'property' object has no attribute 'getitem'"。

快速说明 H2O.ai 有一些产品。开源平台称为 H2O-3,它包含 AutoML 算法。 AutoML 目前不为您做特征工程。如果你想要自动特征工程,你可能会想到 H2O 的产品 Driverless-AI

至于您看到的错误,这是一个错误,您可以跟踪修复 here

根据您传递给 .train() 方法的内容,您可能会或可能不会遇到此错误。