Привет, у меня есть разреженная матрица 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