三、外存计算
对于
external-memory
和in-memory
计算,二者几乎没有区别。除了在文件名上有所不同。in-memory
的文件名为:filename
external-memory
的文件名为:filename#cacheprefix
。其中:filename
:是你想加载的数据集 (libsvm
文件 ) 的路径名当前只支持导入
libsvm
格式的文件cacheprefix
: 指定的cache
文件的路径名。xgboost
将使用它来做external memory cache
。
如:
dtrain = xgb.DMatrix('../data/my_data.txt.train#train_cache.cache')
此时你会发现在
my_data.txt
所在的位置会由xgboost
创建一个my_cache.cache
文件。
推荐将
nthread
设置为真实CPU
的数量。- 现代的
CPU
都支持超线程,如4核8线程
。此时nthread
设置为4
而不是8
- 现代的
对于分布式计算,外存计算时文件名的设定方法也相同:
data = "hdfs:///path-to-data/my_data.txt.train#train_cache.cache"