python - 计算大熊猫数据帧的距离矩阵 (1664599, 3935)
问题描述
我有一个形状为的熊猫数据框:
df.shape
(1664599, 3935)
基本上看起来像:
rws = ["user1","user2","user3","user4","user5","user6","user7","user8"]
cols = ["prod1","prod2","prod3","prod4","prod5"]
np.random.seed(0)
df = pd.DataFrame(np.random.binomial(1, 0.3, size=(len(rws), len(cols))), columns=cols, index=rws)
prod1 prod2 prod3 prod4 prod5
user1 0 1 0 0 0
user2 0 0 1 1 0
user3 1 0 0 1 0
user4 0 0 1 1 1
user5 1 1 0 1 0
user6 0 0 1 0 0
user7 0 1 0 0 0
user8 0 0 0 1 0
对于每个用户,我想用 jaccard 度量计算 k 个最近的邻居。
我试图通过以下方法来实现这一点:
from sklearn.neighbors import BallTree
ballt = BallTree(df, leaf_size = 30, metric = 'jaccard')
distances, neighbors = ballt.query(df, k=10)
但是我的 60 GB 内存还不够,我的 python 内核最终崩溃了。
如何执行此计算?
解决方案
推荐阅读
- vb6 - Visual Basic 6 vbp 文件随机损坏
- google-apps-script - 使用谷歌脚本在登录时抓取数据
- spring-boot - Spring Cloud Stream 与 RabbitMQ binder 和 Transactional consumer/producer 与 DB 操作
- reactjs - 我应该如何在我的反应新闻应用程序上实施身份验证?
- javascript - firebase httpsCallable 没有被调用/没有响应
- sql - 在存储过程中没有得到预期的结果
- javascript - 如何检测 div 文本的变化?
- node.js - 在“npx create-react-app”“npm start”失败并出现以下错误后:TypeError: Cannot read property 'split' of undefined
- c# - 不可调用的成员“Vector3”不能像方法一样使用。Wander Ai 脚本出错
- reactjs - 如何使axios在具有启动和限制参数的react.js中动态获取请求?