Я работаю над набором данных netflix и пытаюсь использовать пакет nmslibR для выполнения некоторой работы типа KNN над разреженной матрицей, которая получается из набора данных netflix. Этот пакет принимает только скудно разреженные матрицы в качестве входных данных, поэтому мне нужно преобразовать мою R разреженную матрицу в этот формат. Когда я пытаюсь это сделать, я получаю следующую ошибку. dfm2 - это dgCMatrix объемом 1,1 Гб, я также пытался выполнить его на dgRMatrix с точно такой же ошибкой.
dfm3<-TO_scipy_sparse(dfm2)
Error in TO_scipy_sparse(dfm2) : attempt to apply non-function
Я не знаю, как предоставить хороший примерный набор данных для моей проблемы, разреженная матрица, с которой я работаю, составляет 1,1 ГБ, поэтому, если у кого-то есть предложение, как я могу облегчить мне задачу, пожалуйста, дайте мне знать. Я также был бы открыт для прослушивания других пакетов, которые будут выполнять функции типа KNN / KNN в r для разреженных матриц.
Edit:
Я использую следующий код для генерации образца разреженной матрицы в формате dgCMatrix и пытаюсь преобразовать ее в точную разреженную матрицу и получаю следующую ошибку.
library(Matrix)
library(nmslibR)
sparse<-Matrix(sample(c(1,2,3,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),10000,
replace=T),
ncol=50,
byrow=T)
dfm3 <- TO_scipy_sparse(sparse)
Error in TO_scipy_sparse(sparse) : attempt to apply non-function
Чтобы ответить на вопрос о том, является ли разреженным dgCMatrix:
str(sparse)
Formal class 'dgCMatrix' [package "Matrix"] with 6 slots
..@ i : int [1:2414] 0 6 9 10 13 20 22 23 25 49 ...
..@ p : int [1:51] 0 45 92 146 185 227 277 330 383 435 ...
..@ Dim : int [1:2] 200 50
..@ Dimnames:List of 2
.. ..$ : NULL
.. ..$ : NULL
..@ x : num [1:2414] 4 1 1 2 5 3 2 5 3 5 ...
..@ factors : list()