Используя библиотеку Caret , вы можете легко выполнить эту задачу.
Сначала объявите импорт и определите ваш набор данных.
library(caret)
library(dplyr)
dfexample <- data.frame(
subject = c('English', 'English', 'Math', 'Science'),
enrollment = c(100,200,50,70),
white = c(0.5,0.5,0.6,0.7),
black = c(0.25,0.20, 0.10, 0.25),
hispanic = c(0.25, 0.30, 0.30, 0.05),
classid = c('1a','3f','4d','5a')
);
# replicating data frame rows to make our example works
dfexample = dfexample[rep(seq_len(nrow(dfexample)), each = 20), ]
Затем определите поезд и набор тестов:
trainIndex <- createDataPartition(dfexample$classid, p = .6,
list = FALSE,
times = 1)
dataTrain <- dfexample[ trainIndex,]
dataTest <- dfexample[-trainIndex,]
После этого запустите вашу модель. Если вам нужно протестировать другие модели, взгляните на эту ссылку и проверьте доступные методы модели. Затем измените свойство метода, как показано в приведенном ниже коде.
modelFit <- train(classid ~ subject + enrollment + white + black + hispanic, data = dataTrain,
method = "LogitBoost",
#method = "gbm",
verbose = FALSE
)
print(modelFit)
Наконец, сгенерируйте матрицу путаницы и проанализируйте прогнозы:
predictions <- predict(modelFit, newdata = dataTest)
cm = confusionMatrix(predictions, dataTest$classid)
print(cm)
Надеюсь, это поможет вам.