在 pandas 数据框上应用 ML 库是个好主意吗?

Is it a good idea to apply ML libraries on pandas data frame?

我正在构建一个认知矿工 AI Bot。我的机器人有两个任务,一个是训练,另一个是 predict.i' 使用 some/few 机器学习功能。所以这里我有很多我正在训练的文档(~200,000 个文档)。然后在预测查询时,我按照一些步骤从训练中找到最准确的匹配文档(通过查看分数,对每个文档的置信度)。以及我正在使用的一些已知函数,例如 TF-IDF、n-gram、询问查询中可用的每个标记的余弦相似度。为此,我使用核心 python , python 第三方库,NoSQL 数据库来保存训练数据。

注意:所有性能改进都尽可能使用核心 python。 (请不要提出使用 Elastic Search 或 python 的建议,因为我只想再用我愚蠢的代码十年。:))

我遇到了性能问题。喜欢做得分需要 2-3 秒的时间。这不是 good.i 希望结果应该在几毫秒内出现。

所以我的问题是,如果我使用 pandas 并尝试将上述所有功能应用于它,它会提供更好的性能吗?还是 numpy 矩阵计算会提供更好的性能?

所以我认为不需要粘贴代码。我只需要有经验的人对我的问题的看法。当然要记住解决方案应该是可扩展的。

就性能而言,这两种方式可能不会产生太大差异。

Pandas 对于加载数据和修改数据(以不同方式分组、旋转、从现有列创建新列等)非常有效。

一旦您的数据准备好传递给机器学习算法(例如,在 sklearn 中),那么基本上,pd.DataFrame.as_matrix() 可以将其转换为 numpy 数组,而不会从根本上影响整体性能.很难想象任何 sklearn prediction/classification 成本不占主导地位的阶段。

sklearn-pandas package 进一步促进了这一点。

如果此时您的表现不令人满意,解决方案就在别处。