# Draw some data
X1 <- matrix(rnorm(1000), ncol = 10)
X2 <- matrix(rnorm(1000, mean = 0.5), ncol = 10)
y1 <- rbinom(100, 1, 1 / (1 + exp(1 - X1 %*% rep(0.5, 10))))
y2 <- rbinom(100, 1, 1 / (1 + exp(1 - X2 %*% rep(0.7, 10))))
X1 <- data.frame(X = X1, y = y1)
X2 <- data.frame(X = X2, y = y2)
# Calculate OTDD
# \donttest{
if(requireNamespace("approxOT", quietly = TRUE) &
requireNamespace("expm", quietly = TRUE)) {
OTDD(X1, X2)
OTDD(X1, X2, sinkhorn = TRUE, inner.ot.sinkhorn = TRUE)
OTDD(X1, X2, method = "augmentation")
OTDD(X1, X2, inner.ot.method = "gaussian.approx")
OTDD(X1, X2, inner.ot.method = "means.only")
OTDD(X1, X2, inner.ot.method = "naive.upperbound")
}
# }
# For categorical data
X1cat <- matrix(sample(LETTERS[1:4], 300, replace = TRUE), ncol = 3)
X2cat <- matrix(sample(LETTERS[1:4], 300, replace = TRUE, prob = 1:4), ncol = 3)
y1 <- sample(0:1, 300, TRUE)
y2 <- sample(0:1, 300, TRUE)
X1 <- data.frame(X = X1cat, y = y1)
X2 <- data.frame(X = X2cat, y = y2)
# \donttest{
if(requireNamespace("approxOT", quietly = TRUE) &
requireNamespace("expm", quietly = TRUE)) {
OTDD(X1, X2, feature.cost = hammingDist)
OTDD(X1, X2, sinkhorn = TRUE, inner.ot.sinkhorn = TRUE, feature.cost = hammingDist)
}
# }
Run the code above in your browser using DataLab