如何查看训练有素的机器学习模型中使用了哪些功能?

时间:2019-10-23 13:35:46

标签: h2o feature-extraction automl

使用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是否正在提取和添加新功能。

我已经按照another question中的说明使用了my_training_frame = your_model.actual_params['training_frame'],但是它给出了错误消息:“ TypeError:'property'对象没有属性'getitem'”。

1 个答案:

答案 0 :(得分:0)

快速笔记H2O.ai有一些产品。开源平台称为H2O-3,它包含AutoML算法。 AutoML当前不为您执行功能工程。如果要进行自动功能工程设计,则可能会想到H2O的产品Driverless-AI

对于您所看到的错误,这是一个错误,您可以跟踪修复程序here

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