如何解决为什么我的 xgboost 模型看起来只有 1 个节点?
我正在使用这段代码训练一个 XGBoost 模型(为了清楚起见,我省略了一堆支持函数)。代码由 AWS SageMaker 生成,然后经过调整以在我的笔记本电脑上运行:
X,y = read_csv_data(source=csvFile,target_column_index=dpp.HEADER.target_column_index,output_dtype='O')
print('Training Set [%s] Shape = [%s]' %(csvFile,str(X.shape)))
self.model = trainer.train(X,y,dpp.HEADER,dpp.build_feature_transform(),dpp.build_label_transform())
d=self.model.transform(X)
filter_arr=[False]
for row in y[1:]:
filter_arr.append(len(row)>0)
print('Filtered array len = ',len(filter_arr))
dtrain = xgb.DMatrix(d[filter_arr],label=y[filter_arr])
param = {'max_depth':2,'eta':1,"objective":"reg:squarederror"}
self.bst = xgb.train(param,dtrain)
pickle.dump(self.bst,open('model.pickle.dat','wb'))
我有大约 3,800 行数据和大约 250 列。我期待一个相当复杂的模型。
但是当我使用带有此代码的 graphviz 设法将其可视化时:
from xgboost import plot_tree
import matplotlib.pyplot as plt
import pickle
model = pickle.load(open("model.pickle.dat","rb"))
plot_tree(model)
plt.show()
我实际上就是这样:
这显然不正确。我在这里错过了什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。