rsparseでFM

Package

library(rsparse); library(mlbench); library(caret); library(tidyverse)

Data load, Train/Test Split

data(BostonHousing)
trainIndex <- createDataPartition(BostonHousing$medv, 
                                  p = 0.7,          
                                  list = FALSE)

train_set <- BostonHousing[trainIndex,]
test_set  <- BostonHousing[-trainIndex,]

y_train <- train_set$medv
y_test <- test_set$medv

x_train <- as.matrix(train_set %>% select(-medv))
x_test <- as.matrix(test_set %>% select(-medv))

Model

FM <- FactorizationMachine$new(rank = 4, task = "regression", intercept = TRUE)
FM$fit(x_train, y_train)

Pred_plot

p1 <- FM$predict(x_train)
p2 <- FM$predict(x_test)
plot(p1, 
     y_train,
     pch = 16,          
     col = 6,             
     xlim = c(-220000000, 400000000), 
     ylim = c(0, 50), 
     ann = F)            

par(new = T)

plot(p2, 
     y_test,
     pch = 21,     
     col = 1,             
     xlim = c(-220000000, 400000000), 
     ylim = c(0, 50)
     )

予測値なんでこうなるんや。 これでいいのかわからんが今日はここまで。

Reference

rsparseでFM