【发布时间】:2016-02-01 21:57:21
【问题描述】:
我在 Python 中创建了一个 xgboost 分类器:
train 是一个 pandas 数据框,有 100k 行和 50 个特征作为列。 目标是熊猫系列
xgb_classifier = xgb.XGBClassifier(nthread=-1, max_depth=3, silent=0,
objective='reg:linear', n_estimators=100)
xgb_classifier = xgb_classifier.fit(train, target)
predictions = xgb_classifier.predict(test)
但是,在训练之后,当我使用这个分类器来预测值时,整个结果数组是相同的数字。知道为什么会这样吗?
数据说明: ~50 个带有数字目标的数字特征
我也用相同的数据尝试过来自 sklearn 的RandomForestRegressor,它确实给出了现实的预测。可能是 xgboost 实现中的一个合法错误?
【问题讨论】:
-
您的数据是什么样的?模型返回的“相同数字”是多少?
-
类似-0.1236788。它在预期结果的范围内,但不同的行应该有不同的预测值,这个数字填满了整个预测数组 ~ 1000 行
-
你能分享一下你如何调用训练函数以及如何填充训练矩阵的代码吗?训练集中有正面和负面的例子吗?
-
我已经添加了代码。是的,训练集中既有正值也有负值。
标签: python machine-learning xgboost