Я довольно плохо знаком с R и застрял с довольно тупой проблемой.
Я калибрую дерево регрессии, используя пакет rpart , чтобы выполнить некоторую классификациюи некоторые прогнозы.
Благодаря R элемент калибровки легко выполнить и легко контролировать.
#the package rpart is needed
library(rpart)
# Loading of a big data file used for calibration
my_data <- read.csv("my_file.csv", sep=",", header=TRUE)
# Regression tree calibration
tree <- rpart(Ratio ~ Attribute1 + Attribute2 + Attribute3 +
Attribute4 + Attribute5,
method="anova", data=my_data,
control=rpart.control(minsplit=100, cp=0.0001))
После калибровки большого дерева решений, я хочу, для данной выборки данныхнайти соответствующий кластер некоторых новых данных (и, следовательно, прогнозируемое значение).
Функция predict
, кажется, идеально подходит для этой необходимости.
# read validation data
validationData <-read.csv("my_sample.csv", sep=",", header=TRUE)
# search for the probability in the tree
predict <- predict(tree, newdata=validationData, class="prob")
# dump them in a file
write.table(predict, file="dump.txt")
Однако с predict
методом Iпросто получите прогнозируемое соотношение моих новых элементов, и я не могу найти способ получить лист дерева решений , где мои новые элементы принадлежат.
Я думаю, что это должно быть довольно легко получитьпоскольку метод прогнозирования должен найти этот лист для возврата отношения.
Существует несколько параметров, которые могут быть переданы методу прогнозирования через аргумент class=
, но длярегрессия TreКажется, все они возвращают одно и то же (значение целевого атрибута дерева решений)
Кто-нибудь знает, как получить соответствующий узел в дереве решений?
Анализируя узелс помощью метода path.rpart
это помогло бы мне понять результаты.