在python中聚类庞大的数据矩阵?

时间:2014-01-15 12:06:00

标签: scikit-learn bigdata cluster-analysis data-mining pytables

我想要聚集150万种化合物。这意味着具有1.5 x 1.5百万的距离矩阵...

我想我可以使用pyTables生成这么大的表但是现在 - 有这样一个表我将如何聚类呢?

我想我不能只将pyTables对象传递给scikit学习聚类方法之一......

是否有任何基于python的框架可以占用我庞大的表并用它做一些有用的事情(谎言聚类)?也许是以分布式的方式?

2 个答案:

答案 0 :(得分:4)

也许您应该查看不需要全距离矩阵的算法

我知道将算法表示为矩阵运算很受欢迎,因为像R这样的工具在矩阵运算中相当快(而在其他事物上运行速度慢)。但是有很多方法都不需要O(n^2)记忆......

答案 1 :(得分:1)

我认为主要问题是记忆。 1,5×1,5百万×10B(1个元件尺寸)> 20TB 您可以使用bigdata数据库,如pyTables,Hadoop http://en.wikipedia.org/wiki/Apache_Hadoop和MapReduce算法。

这里有一些指南:http://strata.oreilly.com/2013/03/python-data-tools-just-keep-getting-better.html

或将Google App Engine数据存储与MapReduce https://developers.google.com/appengine/docs/python/dataprocessing/一起使用 - 但现在它不是生产版