【发布时间】:2018-01-13 04:23:33
【问题描述】:
我对这个主题很陌生。我目前正在开发一种潜在因子矩阵分解,它将作为神经网络的训练数据。
我有一个这样的 csv 表:
user_id song_id playcount
frank SOBYHAJ12A6701BF1D 23
john SODACBL12A8C13C273 1
john SODXRTY12AB0180F3B 3
mary SOFRQTD12A81C233C0 1
您可以将此表视为对矩阵的描述。我想建立一个矩阵:
rows=song_id, columns=user_id, value=playcount
我已将数据加载到 pandas 数据框中:
triplets_training_set = pd.read_csv(filepath)
现在我想用这些数据构建一个稀疏矩阵。
另一个问题:
我需要向量化这些值吗?即将 'b80344d063b5ccb3212f76538f3d9e43d87dca9e' 转换为整数 user_id? (相同的 带有 song_id)
我读过这样的问题,但我不知道如何回答最后一个问题
我想出的唯一解决方案是首先制作 2 个字典,例如:
{ frank: 1, john: 2, mary:3, ..}
{ SOBYHAJ12A6701BF1D:1 , SODACBL12A8C13C273:2. ..}
然后逐行遍历数据帧triplets_training_set,构建矩阵。但这是一个幼稚的解决方案。一定有更好的。
提前致谢!
【问题讨论】:
-
你可以使用
my_df.as_matrix(),你能告诉我你为什么要建立一个带有分类值的稀疏矩阵吗?你知道什么是稀疏矩阵吗? -
@francarranza 试试这个stackoverflow.com/questions/48133358/…
标签: python pandas matrix scikit-learn sparse-matrix