如何使用xgBoost进行插补?

问题描述 投票:0回答:1

我知道我的问题对于这个社区来说可能听起来太天真,但我自己无法弄清楚,需要更有经验的人提供一些见解。因此,我试图解决的问题与我应该使用

xgboost
包来插补 data.frame 中缺失值的方式有关。

换句话说,我的任务是以某种方式生成一个脚本,利用 xgboost 库来估算数据集中缺失的(也称为 NA)值。我想我知道如何让 xgboost 使用完整的数据集进行数据预测,但我不太明白设置它来填充 NA 的正确方法。

我将非常感谢有关此事的任何帮助/见解。首先,很高兴知道社区对逻辑/算法的看法,然后我就可以对其进行编码。

下面是我作为 xgboost 输入的 300 行文件的摘录。我的任务是使用其他 4 个变量(年、月、国家/地区、Var_2)的信息来估算

Var_1
变量中的 NA。事实上,Var_1 取决于数据集中的另一个变量。

     Year Month Country    Var_1     Var_2
    <dbl> <dbl>   <dbl>    <dbl>     <dbl>
  2021     1      36     599     16022.
  2021     1      56   99224    612030.
  2021     1     124    1159     33535.
  2021     1     156      28     16119.
  2021     1     208     215     68027.
  2021     1     251   84898   1479103.
  2021     1     276  142545    634540.
  2021     1     344      14      1397.
  2021     1     372 1893654   6993299.
  2021     1     380     176      2483.
  2021     1     392      58     22968.
  2021     1     484   61028     74968.
  2021     1     528    7742    125132.
  2021     1     616     313      4877.
  2021     1     703      55       510.
  2021     1     724  364573   2829297.
  2021     1     826      NA   1622357.
  2021     1     842  575020   3536907.
  2021     2      36      45      3604.
  2021     2      56   46395    278347.
  2021     2     124   11760     90933.
  2021     2     208   29768    393233.
  2021     2     251   31397    177593.
  2021     2     276    4316     23745.
  2021     2     320    3926     25794.
  2021     2     344   13859     93853.
  2021     2     372 1233218   4527629.
  2021     2     380     209      5354.
  2021     2     392      NA    230771.
  2021     2     528   16891    164109.
  2021     2     591       2      3443.
  2021     2     699    5505     91394.
  2021     2     703     144       995.
  2021     2     710    6464      5112.
  2021     2     724  122337   1037545.
  2021     2     752     433      4598.
  2021     2     757      23      1672.
  2021     2     784     671     21453.
  2021     2     826      NA    703348.
  2021     2     842  906031.  5314218.
  2021     3      56  655375   4037557.
  2021     3     124   25789    200786.
  2021     3     156      65     60928.
  2021     3     170       5      1391.
  2021     3     208   21383    489739.
  2021     3     251  105713    416264.
  2021     3     276   63063    438859.
  2021     3     344       9     18422.
  2021     3     372 1192275   5794848.
  2021     3     376     972     22502.
  2021     3     392   11910    327853.
  2021     3     528   11472     59048.
  2021     3     554      23      1473.
  2021     3     702    9058     86097.
  2021     3     703      14       309.
  2021     3     710    2369     38682.
  2021     3     724   67483    534919.
  2021     3     752    4222     31359.
  2021     3     757     145     13019.
  2021     3     764   13133     72650.
  2021     3     826      NA   1114520.
  2021     3     842 1029945   6163697.

我在谷歌上搜索并阅读了很多论文,声称 xgboost 是一个用于估算缺失值的出色工具,但我无法找到有人用来实际执行估算的任何代码示例。我在 link 阅读了手册,其中没有提到如何使用算法进行估算。最后,我发现了

mixgb
包,它是执行此过程的一个很好的工具。

我在研究中尝试并使用该库以及

mice
missForest
Amelia
tidymodels
和其他一些软件包。

r xgboost imputation
1个回答
0
投票

假设您想在列

c_i
上估算值。
您可以将所有其他列
c_j
用作
j != i
并使用它们。
非缺失值用于训练,缺失值用于测试。

如果

c_i
是离散的,就用分类,如果是连续的就用回归。

© www.soinside.com 2019 - 2024. All rights reserved.