# Factorization Machines can fit XOR function!
x = rbind(
c(0, 0),
c(0, 1),
c(1, 0),
c(1, 1)
)
y = c(0, 1, 1, 0)
x = as(x, "RsparseMatrix")
fm = FactorizationMachine$new(learning_rate_w = 10, rank = 2, lambda_w = 0,
lambda_v = 0, family = 'binomial', intercept = TRUE)
res = fm$fit(x, y, n_iter = 100)
preds = fm$predict(x)
all(preds[c(1, 4)] < 0.01)
all(preds[c(2, 3)] > 0.99)
Run the code above in your browser using DataLab