### R code from vignette source 'Details.Rnw' ################################################### ### code chunk number 1: preliminaries ################################################### op <- par(no.readonly = TRUE) old <- options() options(prompt = "R> ", continue = "+ ", width = 70, useFancyQuotes = FALSE) library("knitr") ################################################### ### code chunk number 2: methods ################################################### names(caret::getModelInfo())[sapply(caret::getModelInfo(), function(x) { "Classification" %in% x$type })] ################################################### ### code chunk number 3: visualization-tree1 ################################################### library("DataSimilarity") set.seed(5202) X1 <- data.frame(X1 = runif(100), X2 = runif(100)) X1$y <- as.factor(ifelse(X1$X1 < 0.5 & X1$X2 > 0.3, 0, 1)) X2 <- data.frame(X1 = runif(100), X2 = runif(100)) X2$y <- as.factor(ifelse((X2$X1 < 0.5 & X2$X2 > 0.3) | (X2$X2 < 0.3 & X2$X1 > 0.2 ), 0, 1)) library("rpart") library("rpart.plot") tree1 <- rpart(y ~ ., data = X1) tree2 <- rpart(y ~ ., data = X2) parti1 <- DataSimilarity:::findPartition(tree1, X1, X2) parti2 <- DataSimilarity:::findPartition(tree2, X1, X2) intersec.parti <- DataSimilarity:::intersectPartitions(parti1, parti2) par(xpd = TRUE) prp(tree1, digits = 2, type = 5, tweak = 1.5) par(op) ################################################### ### code chunk number 4: visualization-tree2 ################################################### par(xpd = TRUE) prp(tree2, digits = 2, type = 5, tweak = 1.5) par(op) ################################################### ### code chunk number 5: visualization-parti1 ################################################### plotParti <- function(parti) { plot(NA, xlim = 0:1, ylim = 0:1, xlab = "X1", ylab = "X2", main = "", las = 1, cex.axis = 1.5, cex.lab = 1.5) for(i in seq_along(parti)){ segments(x0 = round(parti[[i]][1, 2], 2), x1 = round(parti[[i]][1, 3], 2), y0 = round(parti[[i]][2, 2], 2), y1 = round(parti[[i]][2, 2], 2)) segments(x0 = round(parti[[i]][1, 2], 2), x1 = round(parti[[i]][1, 3], 2), y0 = round(parti[[i]][2, 3], 2), y1 = round(parti[[i]][2, 3], 2)) segments(x0 = round(parti[[i]][1, 3], 2), x1 = round(parti[[i]][1, 3], 2), y0 = round(parti[[i]][2, 2], 2), y1 = round(parti[[i]][2, 3], 2)) segments(x0 = round(parti[[i]][1, 2], 2), x1 = round(parti[[i]][1, 2], 2), y0 = round(parti[[i]][2, 2], 2), y1 = round(parti[[i]][2, 3], 2)) } } par(mar = c(4.1, 4.1, 1.1, 2.1)) plotParti(parti1) par(op) ################################################### ### code chunk number 6: visualization-NKT-parti2 ################################################### par(mar = c(4.1, 4.1, 1.1, 2.1)) plotParti(parti2) par(op) ################################################### ### code chunk number 7: visualization-intersect ################################################### par(mar = c(4.1, 4.1, 1.1, 2.1)) plotParti(intersec.parti$parti) par(op) ################################################### ### code chunk number 8: reset ################################################### options(old) par(op)