неизвестная ошибка в R во время команд классификации - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть данные letterdata.csv, и я хотел бы применить к этим данным задачу классификации, для этого я прочитал файл в R

letters <- read.csv("letterdata.csv")

, после этого я создал тестовые и обучающие данные

> letters_train <- letters[1:16000, ]
> letters_test <- letters[16001:20000, ]

и затем примените функцию классификации ядра

> letter_classifier <- ksvm(letter ~ ., data = letters_train,
+                           kernel = "vanilladot")

, но это дает мне следующую ошибку

Error in eval(predvars, data, env) : object 'letter' not found

Я использую книгу, и эта команда была в книге, поэтому ярешил, что вместо буквы должны быть буквы, чтобы я применил следующую команду

> letter_classifier <- ksvm(letters ~ ., data = letters_train,
+                           kernel = "vanilladot")

, но это дает мне еще одну ошибку

Error in model.frame.default(data = ..1, formula = x) : 
  invalid type (list) for variable 'letters'
> 

, так что я могу сделать?

РЕДАКТИРОВАТЬ: структура набора данных

> str(letters)
'data.frame':   400375 obs. of  1 variable:
 $ X..DOCTYPE.html.: Factor w/ 40331 levels "  ","    ","      ",..: 40294 40203 40171 40212 40207 40208 40209 40210 40211 40213 ...

и о библиотеке я использую пакет Kernlab

1 Ответ

0 голосов
/ 27 февраля 2019

R автоматически сохраняет ваши данные в виде списка, вам нужно преобразовать все ваши данные в фрейм данных.

df <- as.data.frame(letters)
df_train <- as.data.frame(letters_train) -- this is where the error must be coming from

Затем просто используйте вместо него df:

letter_classifier <- ksvm(df ~ ., data = df_train,
+                           kernel = "vanilladot")
...