2017-02-20 14 views
3

Я новичок в R, и я пытаюсь решить, почему мой прогноз - вне пределов. вопрос должен быть простым решением, поскольку это скорее введение.R naiveBayes классификатор прогнозирует «индекс за пределами границ»

установить мой классификатор с данными поезда

sms_classifier <- naiveBayes(sms_train, sms_train_labels) 

но ошибка возникает, когда я пытаюсь сделать предсказать FUNTION

sms_test_pred <- predict(sms_classifier, sms_test) 

ошибка определяется Ошибка в

`[.default`(object$tables[[v]], , nd + islogical[attribs[v]]) : subscript out of bounds 

ответ

1

Предполагая, что вы пытаясь построить классификатор спама, который требует DocumentTerm-матрицы, этот happe когда у вас есть больше факторов (ака терминов) в наборе тестовых данных, которые отсутствуют в наборе данных поезда. Таким образом, чтобы избавиться от этих очень редких терминов, используя приведенный ниже код -

freq_terms = findFreqTerms(dtm.train, 5) 
reduced_dtm.train = DocumentTermMatrix(corpus.train, list(dictionary=freq_terms)) 
reduced_dtm.test = DocumentTermMatrix(corpus.test, list(dictionary=freq_terms)) 

Приведенный выше код будет избавиться от любых менее частых терминов (во всяком случае, они бесполезны) и уровни в тестовом наборе данных будет соответствовать уровню в набор данных для поездов. Тогда функция прогнозирования не должна вызывать никаких ошибок.