为什么xgboost的Dmatrix会如此快速地加载svm轻文本文件

2024-04-23 09:53:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用svm光文件作为稀疏矩阵的存储。在

测试表明,对于包含570601944个条目的31700108x54070矩阵

import xgboost as xgb
dtrain = xgb.DMatrix(train_file)

用了21秒,比

^{pr2}$

用了7分钟。在

在破解密码之前,有人能帮我回答这个问题吗?在

你有什么建议来增强load_svmlight_file函数吗?在

非常感谢!在


Tags: 文件import目的密码astrain矩阵建议
1条回答
网友
1楼 · 发布于 2024-04-23 09:53:17

Xgboost是用c++编写的,并使用ctypes将其包装在python包中。load_svmlight_file的实现是用cython编写的,cython接受python代码并将其转换为c。理想情况下,cython可以生成完美的c代码,但是有时它会生成比c程序员更糟糕的代码。在

scikit人员自己也承认load_svmlight_file没有它可能的高效,并指出了另一个用c++编写的库。在

This implementation is written in Cython and is reasonably fast. However, a faster API-compatible loader is also available at: https://github.com/mblondel/svmlight-loader

相关问题 更多 >