我正在尝试使用数值和分类数据创建一个稀疏矩阵,该矩阵将用作 cv.glmnet 的输入。当只涉及数值数据时,我可以使用以下语法创建一个 sparseMatrix
sparseMatrix(i=c(1,3,5,2), j=c(1,1,1,2), x=c(1,2,4,3), dims=c(5,2))
对于分类变量,以下方法似乎有效:
sparse.model.matrix(~-1+automobile, data.frame(automobile=c("sedan","suv","minivan","truck","sedan")))
我非常稀疏的实例有 1,000,000 个观察值和 10,000 个变量。我没有足够的内存来首先创建完整的矩阵。我能想到的创建 sparseMatrix 的唯一方法是通过创建列并将数据转换为 (i,j,x) 格式来手动处理分类变量。我希望有人可以提出更好的方法。