我想知道scipy是否提供了一种实现epsilon邻域搜索的原始但对内存友好的方法:
为我的数据计算两两相似性,但将所有小于阈值epsilon
的相似性设置为零,然后将结果直接输出为稀疏矩阵。你知道吗
例如scipy.spatial.distance.pdist()
确实很快,但是与我的时间限制相比,内存限制很早就达到了,至少如果我使用squareform()
。你知道吗
我知道在这种情况下有O(n*log(n))个解,但是现在如果结果是稀疏的就足够了。很明显,我不得不用相似性来代替距离,但这不应该是个大问题,不是吗。你知道吗
Tags:
只要你能用距离度量(比如1减去相似度)来重铸你的相似度度量,那么最有效的解决方案就是使用sklearn的BallTree。你知道吗
否则你可以自己造一个scipy.sparse.csr\u矩阵通过将每个点与其他$i-1$点进行比较,并丢弃所有小于阈值的值来创建矩阵。你知道吗
在不知道具体相似性度量的情况下,此代码应该大致完成以下操作:
相关问题 更多 >
编程相关推荐