【发布时间】:2019-12-10 21:30:00
【问题描述】:
嗨,我有一个以这种方式构建的稀疏 csr 矩阵:
userid = list(np.sort(matrix.USERID.unique())) # Get our unique customers
artid = list(matrix.ARTID.unique()) # Get our unique products that were purchased
click = list(matrix.TOTALCLICK)
rows = pd.Categorical(matrix.USERID, categories=userid).codes
# Get the associated row indices
cols = pd.Categorical(matrix.ARTID, categories=artid).codes
# Get the associated column indices
item_sparse = sparse.csr_matrix((click, (rows, cols)), shape=(len(userid), len(artid)))
原始的matrix 包含用户与网站上产品的交互。
我最终得到了这种格式的稀疏矩阵
(0, 4136) 1
(0, 5553) 1
(0, 9089) 1
(0, 24104) 3
(0, 28061) 2
(1, 0) 2
(1, 224) 1
(1, 226) 1
(1, 324) 2
(1, 341) 1
(1, 530) 1
(1, 642) 1
(1, 658) 1
如何按第一个索引(用户)对这个稀疏矩阵进行分组,然后将前 80% 的行用于训练集,将另外 20% 的行用于测试集。我应该以两个矩阵结束
训练:
(0, 4136) 1
(0, 5553) 1
(0, 9089) 1
(1, 0) 2
(1, 224) 1
(1, 226) 1
(1, 324) 2
(1, 341) 1
(1, 530) 1
测试:
(0, 24104) 3
(0, 28061) 2
(1, 642) 1
(1, 658) 1
【问题讨论】:
标签: python sparse-matrix