Случайные леса могут давать ошибочные результаты, которые могут нарушать основные реальности.Есть ли способ сгладить выходные данные модели случайного леса, чтобы обеспечить монотонное уменьшение / увеличение по сравнению с некоторыми IV?Я знаю о некоторых ANN и даже случайных лесных пакетах (например, RBorist ), которые пытаются обеспечить монотонность.Однако они либо не масштабируются и / или не обеспечивают монотонность на глобальном уровне (например, RBorist ).
Мне интересно, есть ли какая-нибудь умная постобработка / моделирование поверх выходовРФ можно было бы применить?Это попытка создать реплицируемый пример:
haves <- data.frame(
x1 = c(1,1,1,1,1,2,2,2,2,2)
,x2 = c(1,2,3,4,5,1,2,3,4,5)
,y = c(10,9,8,9,7,11,10,9,10,8)
)
Здесь y должно монотонно увеличиваться с увеличением x1 и монотонно уменьшаться с x2.Возможный пример «хочет»:
wants <- data.frame(
x1 = c(1,1,1,1,1,2,2,2,2,2)
,x2 = c(1,2,3,4,5,1,2,3,4,5)
,y = c(10,9,8,7.5,7,11,10,9,8.5,8)
)
Я полагаю, что линейная регрессия (возможно, с использованием лог-модели) является примитивной опцией:
haves$x1 <- as.factor(haves$x1)
ggplot(haves, aes(x=x2, y=y, group=x1, col=x1)) +
geom_point() +
stat_smooth(method = "lm")
Линейная регрессия может слишком сильно сгладить итаким образом теряют много информации.Можно ли обеспечить монотонность города алгоритмически?