Вводятся новые данные относительно модели, но выдается ошибка: данные теста не соответствуют модели! », Как решить проблему? - PullRequest
0 голосов
/ 16 апреля 2020

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

"results2 = classify_models(container2, models)"

.. при подаче новых данных (matrixdata2) для модели выдается сообщение об ошибке

"Error in predict.svm(model, container@classification_matrix, prob = TRUE,  : 
  test data does not match model !"

Вы помогаете по этой проблеме?

Обновление (17/04/20):

Теперь я понимаю, что предложения набора поездов, использованные для создания модели, содержат специфику c слова, но новые данные, поданные против модели, включают новые слова, не распознаваемые в наборе поездов. Мне интересно, как преодолеть эту проблему. Вот несколько вариантов, о которых я думаю: -

  • Ограничить предложения новыми данными, включив в них только слова из набора поездов,

  • Или укажите ML, чтобы обратиться к словарям для поиска дополнительных слов

  • Или для процесса машинного обучения определить те, которые соответствуют, а те, которые не совпадают, просто скажите, что я не знать ответ от ОД.

Какой, по вашему мнению, лучший вариант для преодоления проблемы? Как это изменит код R ниже?

#Load Libraries
library(RTextTools) #RTextTools available for 3.4.1
library(e1071)
library(gmodels)

setwd(directory/path)
text= read.csv("matrixdata1.csv", header = FALSE)

# build dtm
matrix= create_matrix(text[,1:2])
mat = as.matrix(matrix)

# build the data to specify response variable, training set, testing set.
container = create_container(mat, as.numeric(as.factor(text[,3])),
                             trainSize=1:672, testSize=673:840,virgin=FALSE)

models = train_models(container, algorithms=c("MAXENT" , "SVM", "RF", "BAGGING", "TREE"), set_heldout = 168) 

#container1
results1 = classify_models(container, models)

text2 = read.csv("matrixdata2.csv", header = FALSE) 
matrix2= create_matrix(text2[,1:2])
mat2 = as.matrix(matrix2)

container2 = create_container(mat2, labels=NULL, trainSize=1:500,testSize=NULL, virgin=TRUE)

#Results from feeding in new data against the model
#When running this code below, it produces the error message outlined above in the description of the problem.
results2 = classify_models(container2, models)

Наборы данных, используемые в коде R

1 Ответ

1 голос
/ 16 апреля 2020

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

Если ваши данные не похожи, вы можете попытаться исправить это. Но если данные теста похожи на данные поезда, то я рекомендую разделить сами данные тренировки для получения данных теста. Это поможет вам устранить проблему и выяснить, в чем дело.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...