В начале моего прогноза у меня было 5 переменных (предиктор = числовой тип данных) и одна целевая переменная (Philips с 6 уровнями = коэффициент типа данных). Прогноз сработал нормально, и размер дерева был около 35, но результаты (точность) были недостаточно хорошими. Поэтому я попытался уменьшить 6 уровней цели до 2 уровней (верхняя скобка = 1, нижняя скобка = 2). Но когда я пытаюсь предсказать эти 2, C5.0 не предсказывает вообще, а размер дерева равен 1. Как будто он игнорирует 5 переменных предиктора. Я сделал прогноз следующим образом.
1. Changing the 6 levels to 2 (orignal dataframe):
cdf$Philips[cdf$Philips == 2] <- 1
cdf$Philips[cdf$Philips == 3] <- 1
cdf$Philips[cdf$Philips == 4] <- 6
cdf$Philips[cdf$Philips == 5] <- 6
Есть ли ошибка в процессе сокращения до двух уровней?
На следующем шаге я создал новый фрейм данных обучения (frame) с кадрами данных, содержащий только 5 переменных-предикторов и целевую переменную (Philips). Я проверил также его структуру, чтобы убедиться, что каждый столбец имеет правильный тип данных.
data.frame': 139 obs. of 6 variables:
BFI_Extraversion : num 1.38 2.25 4.12 3.5 4.12 ...
BFI_Agreeableness : num 3.78 3.89 4.33 3.33 4.22 ...
BFI_Conscientiousness: num 4.11 4.22 4.56 3.67 4.22 ...
BFI_Neuroticism : num 2.57 2.71 2.14 2.86 1.57 ...
BFI_Openness : num 1.89 3.67 3.89 3.56 4.11 ...
Philips : Factor w/ 2 levels "1","6": 1 1 2 2 2 2 1 1 2 2 ...
И на последнем шаге я построил модель прогнозирования, подобную этой, и взглянул на сводку модели:
C50ModelPhilips <- C5.0(train[,1:5], train$Philips)
summary(C50ModelPhilips)
Резюме:
Decision Tree
----------------
Size Errors
1 65(46.8%) <<
(a) (b) <-classified as
---- ----
65 (a): class 1
74 (b): class 6
Спасибо за помощь!