2

~ 25kR x 10C のデータセットがあります。いくつかの列には、カテゴリ変数に多数のレベルが含まれています。RSofia パッケージを使用してデータ セットを SVM-Light 形式に変換しようとしていますが、次のエラーが発生します。

Error in model.matrix.default(formula, data) : 
  allocMatrix: too many elements specified

sparse.model.matrixパッケージを使用してデータセットをオブジェクトに正常に変換しましたが、オブジェクトMatrixから SVM-Light 形式のファイルを書き込めるかどうか知りたいですsparse.model.matrix

私のコードは以下の通りです:

library(RSofia)
library(Matrix)

n = 100000
df1 <- data.frame(id = 1:n, target = round(runif(n),0), col1 = factor(letters[sample(1:26,n,replace = T)])
        , col2 = factor(letters[sample(1:26,n,replace = T)])
        , col3 = round(runif(n)*1000,0)
        )
df1$col4 <- with(df1,factor(paste(col2, col3, sep = '')))
head(df1);length(unique(df1$col4))
str(df1)

varsToUse <- c('col1','col2','col3', 'col4')

smm1 <- sparse.model.matrix(df1$target ~ 0 +., data = df1[,varsToUse])

このコードを実行するとエラーが発生します。

x <- parse_formula(smm1$target ~ 0 +., data = smm1[,varsToUse])
x <- parse_formula(df1$target ~ 0 +., data = df1[,varsToUse])

tmp <- tempfile()
write.svmlight(x$labels, x$data, tmp);
readLines(tmp)

助言がありますか?

4

0 に答える 0