三、外存计算

  1. 对于external-memoryin-memory 计算,二者几乎没有区别。除了在文件名上有所不同。

    • in-memory 的文件名为:filename

    • external-memory 的文件名为:filename#cacheprefix。其中:

      • filename:是你想加载的数据集 ( libsvm 文件 ) 的路径名

        当前只支持导入libsvm 格式的文件

      • cacheprefix: 指定的cache 文件的路径名。xgboost 将使用它来做external memory cache

      如:

      1. dtrain = xgb.DMatrix('../data/my_data.txt.train#train_cache.cache')

      此时你会发现在my_data.txt 所在的位置会由xgboost 创建一个my_cache.cache 文件。

  2. 推荐将nthread 设置为真实CPU 的数量。

    • 现代的CPU都支持超线程,如 4核8线程。此时nthread 设置为 4 而不是 8
  3. 对于分布式计算,外存计算时文件名的设定方法也相同:

    1. data = "hdfs:///path-to-data/my_data.txt.train#train_cache.cache"