回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>嗨,我有一个稀疏的csr矩阵是这样构建的:</p>
<pre><code>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)))
</code></pre>
<p>原始的<code>matrix</code>包含用户与网站上产品的交互</p>
<p>最后我得到了一个稀疏矩阵</p>
<pre><code> (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
</code></pre>
<p>我如何根据这个稀疏矩阵按第一个索引(用户)分组,并假设训练集的前80%行和测试集的其他20%。我应该得到两个矩阵</p>
<p>培训:</p>
<pre><code> (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
</code></pre>
<p>测试:</p>
<pre><code> (0, 24104) 3
(0, 28061) 2
(1, 642) 1
(1, 658) 1
</code></pre>