Я пытаюсь сделать прогноз на неизвестный классифицированный кортеж, используя SVM в R. Мой файл CSV, содержащий данные обучения:
age,income,student,credit_rating,buys_computer
youth,high,no,fair,no
youth,high,no,excellent,no
middle_aged,high,no,fair,yes
senior,medium,no,fair,yes
senior,low,yes,fair,yes
senior,low,yes,excellent,no
middle_aged,low,yes,excellent,yes
youth,medium,no,fair,no
youth,low,yes,fair,yes
senior,medium,yes,fair,yes
youth,medium,yes,excellent,yes
middle_aged,medium,no,excellent,yes
middle_aged,high,yes,fair,yes
senior,medium,no,excellent,no
а тестовый CSV, содержащий только один кортеж:
age,income,student,credit_rating
youth,medium,yes,fair
Мой код R:
library(RWeka)
library(e1071)
data <- read.csv('./Datasets/training-data-14-tuples.csv')
test <- read.csv('./Datasets/unknown-classed-tuple.csv')
classification <- svm(buys_computer~., data = data, kernel="linear")
prediction <- predict(classification, test) # <--- Error in this line
prediction
Но показывает ошибку:
Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) :
contrasts can be applied only to factors with 2 or more levels
Я искал, чтобы исправить проблему, но везде я обнаружил, что они используют тестовые данные, которые являются частью обучающих данных (которые сами содержат значение класса), но класс моих тестовых данных (предоставленных моим учителем) неизвестен.
Это одно из моих лабораторных заданий, но я не могу решить проблему.