2014-12-19 5 views
1

Я новичок в R, поэтому помогите мне, пожалуйста, понять, что не так. Я пытаюсь предсказать некоторые данные, но объект, возвращающий функцию функции (это странный класс (фактор)), содержит низкие данные. Размер тестового набора составляет 5886 об. из 160 переменных, когда длина объекта прогноза равна 110 ... Я ожидал вектор прогнозируемых классов или кадров данных назад. Что я понимаю неправильно?R SVM Prediction

library(MASS) 
library(e1071) 
set.seed(333) 

data <- read.csv(file="D:\\MaсhLearningAssign\\pml-training.csv", head=TRUE, sep=",") 

index <- 1:nrow(data) 
testindex <- sample(index, trunc(length(index)*30/100)) 
train <- data[-testindex, ] 
test <- data[testindex, ] 

model <- svm(classe~., data = train, kernel="radial", gamma=0.001, cost=10) 
prediction <- predict(model, test) 
summary(prediction) 



Output: 
    A B C D E 
    28 24 25 12 22 

Dataset here

+0

[Как сделать отличный R воспроизводимый пример?] (Http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) – zero323

+0

Я добавил набор данных – UndeadDragon

ответ

3

svm не обрабатывает отсутствуют наблюдения и набор данных полон ВПЛ:

> dim(data[complete.cases(data), ]) 
[1] 406 160 

Вы можете попытаться удалить столбцы с НСБУ и затем обучать SVM

> data <- data[, which(colSums(apply(data, 2, is.na)) == 0)] 
> dim(data) 
[1] 19622 93 

Теперь вы можете попробовать разделить свои данные и поместить svm. Однако я был бы осторожен. Он все еще довольно большой набор данных, и svm скорее ресурс, голодный.

Подсказка: я просмотрел ваши данные, и если это то, что я думаю, пожалуйста, будьте уверены, внимательно прочитайте описание набора данных. У вас есть два, совершенно разных типа строк. Он должен объяснить не только обилие НС, но и дать идею, которая будет полезна для предсказания с учетом вашего тестового набора.

+0

Спасибо u ! Что я могу использовать вместо SVM? – UndeadDragon

+0

И как я могу построить ROC с этим объектом предсказания? – UndeadDragon

+0

Первый вопрос довольно широк. В значительной степени каждый метод, который вы будете использовать, потребует некоторого способа обработки отсутствующих наблюдений, и это нелегкая тема сама по себе. Даже если вы проигнорируете эту часть, выбор метода действительно зависит от ваших целей, и это действительно не проблема программирования. Что касается ROC, вы можете попробовать https://rocr.bioinf.mpi-sb.mpg.de/, но быстрый поиск в Google поможет найти другие варианты. – zero323