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

时间:2016-09-27 10:27:28

标签: python pandas numpy artificial-intelligence

我正在建立一个认知矿工AI Bot。我的机器人有两个任务,一个是火车,另一个是预测。我使用一些/几个ML功能。所以我在这里有很多文件(~200,000个文档),我都在训练。然后在预测查询时,我按照一些步骤从培训中找到最准确的匹配文档(通过查看得分,对每个文档的置信度)。以及一些已知的函数,我们使用的查找类似于查询中可用的每个令牌的TF-IDF,n-gram,余弦相似性。为此,我使用核心python,python第三方库,NoSQL数据库来保存训练数据。

注意:尽可能使用core python来提高所有性能。 (请不要建议使用弹性搜索或python嗖嗖,因为我只想用我的傻代码再过十年。:))

我面临性能问题。喜欢做得分需要2-3秒的时间。这不好。我希望结果应该在几毫秒内完成。

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

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

1 个答案:

答案 0 :(得分:2)

在性能方面,它可能不会产生太大的影响。

Pandas非常有效地加载数据并对其进行修改(以不同方式对其进行分组,旋转,从现有列创建新列等等)。

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

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

如果你的表现在这一点上并不令人满意,那么解决方案就在别处。