Nothing
library(glmtree) data <- generateData(n = 1000, scenario = "no tree", visualize = TRUE) int_train <- sample.int(n = 1000, size = 0.2 * 1000) test <- data[-int_train, ] data <- data[int_train, ]
library(FactoMineR) mixed <- PCA(data[, c("x1", "x2")]) data$pca1 <- predict(mixed, data)$coord[, 1] data$pca2 <- predict(mixed, data)$coord[, 2] test$pca1 <- predict(mixed, test)$coord[, 1] test$pca2 <- predict(mixed, test)$coord[, 2] data$cluster <- ifelse(data$pca1 > 1, 1, ifelse(data$pca1 > 0, 2, 3)) test$cluster <- ifelse(test$pca1 > 1, 1, ifelse(test$pca1 > 0, 2, 3)) pred <- matrix(0, nrow = 0.2 * 1000, ncol = 1) for (j in 1:3) { modele <- glm(y ~ x1 + x2, data = data[data$cluster == j, ], family = binomial(link = "logit")) pred[test$cluster == j] <- predict(modele, test[test$cluster == j, ], type = "response") } normalizedGini(test$y, pred) plot(mixed, choix = "ind", label = "none")
if (require(partykit, quietly = TRUE)) { mob_data <- partykit::glmtree(formula = y ~ x1 + x2 | x1 + x2, data = data, family = binomial) plot(mob_data) normalizedGini(test$y, predict(mob_data, test)) }
glmtree
approachtree <- glmtree::glmtree(x = data[, c("x1", "x2")], y = data$y) plot(unlist(tree@performance$criterionEvolution), type = "l") data$c_map <- factor(apply(predict(tree@best.tree$tree, data, type = "prob"), 1, function(p) names(which.max(p)))) test$c_map <- factor(apply(predict(tree@best.tree$tree, data, type = "prob"), 1, function(p) names(which.max(p)))) table(data$c_map) plot(data[, 1], data[, 2], pch = 2 + data[, 3], col = as.numeric(data$c_map), xlab = "First coordinate", ylab = "Second coordinate") plot(tree@best.tree$tree) pred <- matrix(0, nrow = 0.2 * 1000, ncol = 1) for (j in levels(data$c_map)) { modele <- glm(y ~ x1 + x2, data = data[data$c_map == j, ], family = binomial(link = "logit")) pred[test$c_map == j] <- predict(modele, test[test$c_map == j, ], type = "response") } normalizedGini(test$y, pred)
data <- generateData(n = 1000, scenario = "tree", visualize = TRUE) int_train <- sample.int(n = 1000, size = 0.2 * 1000) test <- data[-int_train, ] data <- data[int_train, ]
mixed <- FAMD(data[, c("x1", "x2", "x3")]) dim_famd <- predict(mixed, test)$coord[, "Dim 1"] < 0 pred <- matrix(0, nrow = 0.2 * 1000, ncol = 1) for (j in c(TRUE, FALSE)) { modele <- glm(y ~ x1 + x2 + x3, data = data[dim_famd == j, ], family = binomial(link = "logit")) pred[dim_famd == j] <- predict(modele, test[dim_famd == j, ], type = "response") } normalizedGini(test$y, pred)
if (require(partykit, quietly = TRUE)) { mob_data <- partykit::glmtree(formula = y ~ x1 + x2 + x3 | x1 + x2 + x3, data = data, family = binomial) plot(mob_data) normalizedGini(test$y, predict(mob_data, test)) }
glmtree
approachtree <- glmtree::glmtree(x = data[, c("x1", "x2", "x3")], y = data$y) plot(unlist(tree@performance$criterionEvolution), type = "l") data$c_map <- factor(apply(predict(tree@best.tree$tree, data, type = "prob"), 1, function(p) names(which.max(p)))) test$c_map <- factor(apply(predict(tree@best.tree$tree, test, type = "prob"), 1, function(p) names(which.max(p)))) table(data$c, data$c_map) plot(data[, 1], data[, 2], pch = 2 + data[, 3], col = as.numeric(data$c_map), xlab = "First coordinate", ylab = "Second coordinate") plot(tree@best.tree$tree) pred <- matrix(0, nrow = 0.2 * 1000, ncol = 1) for (j in 1:nlevels(data$c_map)) { pred[test$c_map == levels(data$c_map)[j]] <- predict(tree@best.tree$glms[[j]], test[test$c_map == levels(data$c_map)[j], ], type = "response") } normalizedGini(test$y, pred)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.