如何使用 scikit-learn 的 XGBRegressor 缺少参数

How to use missing parameter of XGBRegressor of scikit-learn

我正在处理一个在某些列中包含缺失值的数据集。我正在尝试使用 XGBoost 的 Scikit-Learn 包装器接口的 XGBRegressor。它提供了一个名为 'missing' 的参数,您可以在其中输入浮点值,否则它会将 python 的 NaN 作为默认值。所以我需要帮助,例如如何使用此参数来填充数据集中列的缺失值。如果有人也能给我一个简单的例子,那将很有帮助。

我的理解是你搞混了。 缺少的参数仅替换某个值(或值列表)以表示缺少(又名 NaN)——默认值为 "np.nan"

如果您想用一些不同的值替换实际缺失值,可以说 "X" 您必须在应用模型之前对数据执行此操作。

如果你有一个数据框 "df" 你可以:

df.fillna(X)

如果你有 np.array "array" 你可以:

np.nan_to_num(array)

但上面的内容会将 np.nan 替换为零。

希望对您有所帮助,

缺失值参数的作用与您为 'missing' 参数提供的任何值一样,它会将其视为缺失值。例如,如果您提供 0.5 作为缺失值,那么无论它在您的数据中找到 0.5 的任何地方,它都会将其视为缺失值。默认值为 NaN。所以 XGBoost 所做的是基于它定义路径之一作为默认路径的数据。例如,根据一个参数,它可以向左或向右两个方向移动,因此其中一个将根据数据设为默认值。因此,每当缺失值之一作为参数的输入出现时,假设您将 0.5 定义为缺失值,那么只要 0.5 出现在数据中,它就会采用默认路径。最初我认为它归因于缺失值,但事实并非如此。它只是将其中一个路径定义为默认路径,每当出现任何缺失值时,它都会采用该默认路径。这是在论文中定义的 XGBoost: A Scalable Tree Boosting System