【问题标题】:Why does xgboost produce the same predictions and nan values for features when using entire dataset?为什么 xgboost 在使用整个数据集时会为特征产生相同的预测和 nan 值?
【发布时间】:2019-09-29 10:22:55
【问题描述】:

总结

我正在使用 Python v3.7 和 xgboost v0.81。从 2015 年到 2019 年,我每周都有美国州级的连续数据(y)。我试图将以下特征回归到 y:年、月、周、地区(编码)。我将火车设置为 2018 年 8 月及之前,测试时间为 2018 年 9 月及之后。当我以这种方式训练模型时,会发生两件奇怪的事情:

  • feature_importances 都是 nan
  • 预测都是一样的 (0.5, 0.5....)

我尝试过的

将任何特征固定到单个变量上可以让模型进行适当的训练,并且之前遇到的两个奇怪问题都消失了。前任。年份==2017 或地区==28

代码

(我知道这是一个时间问题,但这种一般情况也显示出问题)

X = df[['year', 'month', 'week', 'region_encoded']]
display(X)
y = df.target
display(y)
X_train, X_test, y_train, y_test = train_test_split(X.values, y.values, test_size=0.1)

model = XGBRegressor(n_jobs=-1, n_estimators=1000).fit(X_train, y_train)

display(model.predict(X_test)[:20])

display(model.feature_importances_)

结果 - 一些预测和特征重要性

year    month   week    region_encoded
0   2015    10  40  0
1   2015    10  40  1
2   2015    10  40  2
3   2015    10  40  3
4   2015    10  40  4

0    272.0
1     10.0
2    290.0
3     46.0
4    558.0
Name: target, dtype: float64

array([0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5], dtype=float32)

array([nan, nan, nan, nan], dtype=float32)

【问题讨论】:

  • 欢迎您,@dnly15!您能否打印并更新您的问题以显示 y 和 X 分别为 df['target']df[[...]] 的样子,好吗?为了安全起见,您也可以将 df['target'].values 和 df[[...]].values 传递给 XGBoost。
  • 您也可以尝试使用标准缩放器缩放您的 X 数据吗?

标签: python-3.x xgboost boosting


【解决方案1】:

如果目标变量中包含NaN,即使只有一个,也足以让许多机器学习算法崩溃。这通常是因为在许多 ML 算法(例如计算导数)的更新步骤中,当目标变量中存在未处理的 NaN 时,NaN 会传播。虽然,我不能说太多 XGBoost 中的哪一步是这样做的。

例如线性回归的解析解。

import numpy as np
import numpy.linalg as la
from scipy import stats

y = np.array([0, 1, 2, 3, np.nan, 5, 6, 7, 8, 9])
x = stats.norm().rvs((len(y), 3))

# Main effects estimate
m_hat = la.inv(x.T @ x) @ x.T @ y
>>> [nan nan nan]

【讨论】:

  • 这正是我的问题,当我认为我已经删除了 NaNs 时,我的数据中有它们。简洁而有用的解释,感谢 SARose!
猜你喜欢
  • 1970-01-01
  • 2012-11-26
  • 2018-09-24
  • 2021-05-18
  • 1970-01-01
  • 1970-01-01
  • 2021-02-19
  • 2023-04-09
  • 1970-01-01
相关资源
最近更新 更多