我想要聚集150万种化合物。这意味着具有1.5 x 1.5百万的距离矩阵...
我想我可以使用pyTables生成这么大的表但是现在 - 有这样一个表我将如何聚类呢?
我想我不能只将pyTables对象传递给scikit学习聚类方法之一......
是否有任何基于python的框架可以占用我庞大的表并用它做一些有用的事情(谎言聚类)?也许是以分布式的方式?
答案 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/一起使用 - 但现在它不是生产版