Description Details Author(s) References See Also Examples
Implementation of three factorization-based machine learning approaches:
- Support Vector Machines (SVM.train
) with a linear kernel,
- second-order Factorization Machines [2] (FM.train
),
- and higher-order Factorization Machines [1] (HoFM.train
),
- and knowledge-extracting or adaptive-order Factorization Machines [3] (KnoFM.train
).
Further informations about Factorization Machines are provided by the papers in the references.
This package includes the following methods:
- SVM.train
: Method training a Support Vector Machine,
- FM.train
: Method training a second-order Factorization Machine,
- HoFM.train
: Method training a higher-order Factorization Machine,
- KnoFM.train
: Method training a knowledge-extracting or adaptive-order Factorization Machine,
- predict.FMmodel
: Predict Method for FMmodel Objects,
- summary.FMmodel
and print.FMmodel
: Summary and Print Method for FMmodel Objects.
Two learning methods are supported: coordinate descent (regularization suggested) and Markov Chain Monte Carlo (MCMC).
To date the task regression ("r"
) is supported, the task classifiction ("c"
) will be supported in the future.
Maintainer: Julian Knoll <julian.knoll@th-nuernberg.de>
[1] J. Knoll, Recommending with Higer-Order Factorization Machines, Research and Development in Intelligent Systems XXXIII, 2016.
[2] S. Rendle, Factorization Machines with libFM, ACM Transactions on Intelligent Systems and Technology, 3, 2012.
[3] J. Knoll , J. Stuebinger, and M. Grottke, Exploiting social media with higher-order Factorization Machines: Statistical arbitrage on high-frequency data of the S&P 500. FAU Discussion Papers in Economics, University of Erlangen-Nuernberg, 2017.
SVM.train
,
FM.train
,
HoFM.train
,
predict.FMmodel
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | ## Not run:
# Load libraries
library(FactoRizationMachines)
library(Matrix)
# Load MovieLens 100k data set
ml100k=as.matrix(read.table("http://files.grouplens.org/datasets/movielens/ml-100k/u.data"))
user=ml100k[,1]
items=ml100k[,2]+max(user)
wdays=(as.POSIXlt(ml100k[,4],origin="1970-01-01")$wday+1)+max(items)
# Transform MovieLens 100k to feature form
data=sparseMatrix(i=rep(1:nrow(ml100k),3),j=c(user,items,wdays),giveCsparse=F)
target=ml100k[,3]
# Subset data to training and test data
set.seed(123)
subset=sample.int(nrow(data),nrow(data)*.8)
data.train=data[subset,]
data.test=data[-subset,]
target.train=target[subset]
target.test=target[-subset]
# Predict ratings with Support Vector Machine with linear kernel
# using MCMC learning method
model=SVM.train(data.train,target.train)
# RMSE resulting from test data prediction
sqrt(mean((predict(model,data.test)-target.test)^2))
# Predict ratings with second-order Factorization Machine
# with second-order 10 factors (default)
# using coordinate descent learning method (regularization suggested)
model=FM.train(data.train,target.train,regular=0.1)
# RMSE resulting from test data prediction
sqrt(mean((predict(model,data.test)-target.test)^2))
# Predict ratings with second-order Factorization Machine
# with second-order 10 factors (default)
# using Markov Chain Monte Carlo learning method
model=FM.train(data.train,target.train)
# RMSE resulting from test data prediction
sqrt(mean((predict(model,data.test)-target.test)^2))
# Predict ratings with higher-order Factorization Machine
# with 3 second-order and 1 third-order factor and regularization
# using coordinate descent learning method (regularization suggested)
model=HoFM.train(data.train,target.train,c(1,3,1),regular=0.1)
# RMSE resulting from test data prediction
sqrt(mean((predict(model,data.test)-target.test)^2))
# Predict ratings with higher-order Factorization Machine
# with 3 second-order and 1 third-order factor and regularization
# using MCMC learning method
model=HoFM.train(data.train,target.train,c(1,3,1))
# RMSE resulting from test data prediction
sqrt(mean((predict(model,data.test)-target.test)^2))
# Predict ratings with adaptive-order Factorization Machine
model=KnoFM.train(data.train,target.train)
# RMSE resulting from test data prediction
sqrt(mean((predict(model,data.test)-target.test)^2))
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.