Разделите разреженную матрицу на поезд и проверьте - PullRequest
0 голосов
/ 07 марта 2019

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