用XGboost运行泰坦尼克数据,对max_depth进行调优报错,请大家解答一下

#用XGboost运行泰坦尼克数据,对max_depth进行调优报错 Check failed: param_.max_depth > 0 (0 vs. 0) : exact tree method doesn't support unlimited depth.

#对max_depth进行调优
depth_range = range(10)
score = []

for i in depth_range:
    xg = XGBClassifier(eta=1, gamma=0, max_depth=i)
    xg.fit(x_train, y_train)
    
    s = xg.score(x_test, y_test)
    
    print(s)
    score.append(s)

img

img

问题解决了,range函数从0开始,深度至少为1,把range(10)改为range(1,10)就可以了,不知道教学视频里他range(10)怎么运行成功的

  • 这篇博客: 【机器学习算法】XGBoost中的 3、max_depth[默认6] 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 和GBM中的参数相同,这个值为树的最大深度。
    • 这个值也是用来避免过拟合的。max_depth越大,模型会学到更具体更局部的样本。
    • 需要使用CV函数来进行调优。
    • 典型值:3-10