使用H2O GBM训练泰坦尼克数据集时遇H2OTypeError报错求助
解决H2O GBM训练时的H2OTypeError问题
报错根源:
train()方法的第一个参数(对应x,即特征列)要求传入列名列表/单个列名/列索引,你传入的是H2OFrame对象,不符合参数类型要求。修复步骤:
- 生成特征列名列表(排除目标列):
# 从train_data中提取除"Survived"外的所有列名作为特征列 predictors = [col for col in train_data.columns if col != "Survived"] - 目标变量直接传入列名字符串(可提前将目标列转为因子,也可由H2O自动处理):
# 可选:提前将目标列转为分类因子 train_data["Survived"] = train_data["Survived"].asfactor() target = "Survived" - 重新调用训练方法:
classifier.train(x=predictors, y=target, training_frame=train_data)
- 生成特征列名列表(排除目标列):
注意事项:
不要将predictors赋值为H2OFrame(比如predictors = train_data.drop("Survived", axis=1)),必须是列名的集合/列表/单个名称。
内容的提问来源于stack exchange,提问作者Stanislav Jirák
相关产品推荐
相关产品推荐

