У меня есть набор данных (~ 14410 строк) с наблюдениями, включая страну.Я делю этот набор на наборы train и test и обучаю мои данные, используя дерево решений с функцией rpart () .Когда дело доходит до прогнозирования, иногда я получаю сообщение об ошибке, что в наборе тестов есть страны, которые не находятся в наборе поездов.
Сначала я исключил / удалил страны, которые появились только один раз:
# Get orderland with frequency one
var.names <- names(table(mydata1$country))[table(mydata1$country) == 1]
loss <- match(var.names, mydata1$country)
names(which(table(mydata1$country) == 1))
mydata1 <- mydata1[-loss, ]
При повторном запуске моего кода я получаю ту же ошибку в той же строке кода, говоря, что у меня в тестировании новые страны, которые еще не запущены.Теперь я сделал подсчет, чтобы увидеть, как часто появляется страна.
count <- as.data.frame(count(mydata1, vars=mydata1$country))
count[rev(order(count$n)),]
vars n
3 Bundesrep. Deutschland 7616
9 Grossbritannien 1436
12 Italien 930
2 Belgien 731
22 Schweden 611
23 Schweiz 590
13 Japan 587
19 Oesterreich 449
17 Niederlande 354
8 Frankreich 276
18 Norwegen 238
7 Finnland 130
21 Portugal 105
5 Daenemark 65
26 Spanien 57
4 China 55
20 Polen 51
27 Taiwan 31
14 Korea Süd 30
11 Irland 26
29 Tschechien 13
16 Litauen 9
10 Hong Kong 7
30 <NA> 3
6 Estland 3
24 Serbien 2
1 Australien 2
28 Thailand 1
25 Singapur 1
15 Kroatien 1
Из этого я вижу, что в моих данных также есть NA.
Мой вопрос сейчас , как я могу решить эту проблему?Должен ли я исключить / удалить все страны с, например, наблюдениями <7, или я должен взять данные с наблюдениями <7 и воспроизвести / повторить эти данные два раза, чтобы моя функция прогнозирования () всегда работала, в том числе и для других наборов данных?Как-то не "шикарно" просто удалять строки ... есть ли другая возможность? </p>