【问题标题】:Xgboost with vaexXgboost 与 vaex
【发布时间】:2021-03-15 18:25:27
【问题描述】:

我想澄清一下:vaex.ml.sklearn 是否允许执行核外 ML? 我尝试使用文档中的示例,并查看如果我在 xgboosting 过程中使用 hdf5 文件中的数据集(评估的数据集消耗 ~3 Gb 的 RAM),则 RAM 使用量约为 ~7-8 Gb。天真地,我假设核外不消耗这么多内存。我哪里错了?

我的代码是

import vaex.ml.sklearn
xgb_model = xgboost.sklearn.XGBRegressor(max_depth=4,
                                          learning_rate=0.1,
                                          n_estimators=100,
                                          subsample=0.75,
                                          random_state=42,
                                         )
vaex_xgb_model = vaex.ml.sklearn.Predictor(features=features,
                                           target='target',
                                           model=xgb_model,
                                           prediction_name='prediction_xgb')
vaex_xgb_model.fit(df_train)
df_train = vaex_xgb_model.transform(df_train)

features 是大约 40 个项目的列表。

【问题讨论】:

    标签: python xgboost vaex


    【解决方案1】:

    您使用的不是由 vaex(或 vaex-ml)提供的外部模型是“原样”。在 vaex-ml 中使用它们时,您只需获得一种方便的方法即可将它们添加到 vaex 计算图中、序列化、延迟评估等。模型本身未修改(我相信这在 docstrings 中有说明)。所以它们并没有脱离核心。

    我认为 vaex-ml 有例如一个在 vaex 中实现的 K-means 模型,因此它会超出核心(即不会使用太多内存)。

    在 vaex-ml 中可用的 StandardScaler、FrequencyEncoder 等预处理转换是使用 vaex 实现的,因此这些也是核外的。

    【讨论】:

      猜你喜欢
      • 2021-01-26
      • 2020-06-10
      • 2021-07-07
      • 2019-12-01
      • 2016-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-06
      相关资源
      最近更新 更多