Last updated: 2018-01-04
Code version: 09f5c3d
OCV_index=function(Y,k_fold = 5){
N = dim(Y)[1]
P = dim(Y)[2]
colindex = matrix(sample(P,P),ncol = k_fold)
rowindex = matrix(sample(N,N),ncol = k_fold)
foldindex = array(0,dim = c(k_fold,k_fold,2))
for(i in 1:k_fold){
for(j in 1:k_fold){
foldindex[i,j,1] = i
foldindex[i,j,2] = (i+j) %% k_fold
}
}
foldindex[which(foldindex == 0)] = k_fold
return(list(foldindex = foldindex, rowindex = rowindex, colindex = colindex))
}
# OCVindex = OCV_index(Y,k_fold = 5)
OCV_data = function(Y,OCVindex,k_fold = 5){
N = dim(Y)[1]
P = dim(Y)[2]
colindex = OCVindex$colindex
rowindex = OCVindex$rowindex
foldindex = OCVindex$foldindex
missing= array(0,dim = c(k_fold,N,P))
for(i in 1:k_fold){
missing[i, , ] = Y
for(j in 1:k_fold){
missing[i,rowindex[,foldindex[j,i,1]],colindex[,foldindex[j,i,2]]] = NA
}
}
return(missing)
}
# OCVdata = OCV_data(Y,OCVindex,k_fold = 5)
OCV_SSE = function(Y,OCVindex,OCVdata,k_fold = 5,method = "flash",Kmax = 50){
colindex = OCVindex$colindex
rowindex = OCVindex$rowindex
foldindex = OCVindex$foldindex
missing = OCVdata
SSE = rep(0,k_fold)
for(i in 1:k_fold){
miss_hat = call_method(missing[i,,], method = method, Kmax = Kmax)
for(j in 1:k_fold){
SSE[i] = SSE[i] + sum((Y[rowindex[,foldindex[j,i,1]],colindex[,foldindex[j,i,2]]] -
miss_hat[rowindex[,foldindex[j,i,1]],colindex[,foldindex[j,i,2]]])^2)
}
}
RMSE = sqrt(sum(SSE)/(dim(Y)[1] * dim(Y)[2]))
return(RMSE)
}
call_method = function(Y_data,method,Kmax = 50){
if(method == "ebnm_pn"){
data = flashr2::flash_set_data(Y_data)
f_greedy = flashr2::flash_add_greedy(data,Kmax=Kmax,ebnm_fn = ebnm_pn,verbose = F)
Y_hat = f_greedy$EL %*% t(f_greedy$EF)
}else if(method == "ebnm_ash"){
data = flashr2::flash_set_data(Y_data)
f_greedy = flashr2::flash_add_greedy(data,Kmax=Kmax,ebnm_fn = ebnm_ash,verbose = F)
Y_hat = f_greedy$EL %*% t(f_greedy$EF)
}else{
stop("the method is not implemented yet, please check it out")
}
return(Y_hat)
}
set.seed(99)
library(denoiseR)
data(tumors)
Y = tumors[, -ncol(tumors)]
Y = as.matrix(Y)
N = dim(Y)[1]
P = dim(Y)[2]
OCVindex = OCV_index(Y,k_fold = 5)
Warning in matrix(sample(P, P), ncol = k_fold): data length [356] is not a
sub-multiple or multiple of the number of rows [72]
Warning in matrix(sample(N, N), ncol = k_fold): data length [43] is not a
sub-multiple or multiple of the number of rows [9]
OCVdata = OCV_data(Y,OCVindex,k_fold = 5)
f_pn = OCV_SSE(Y,OCVindex,OCVdata,k_fold = 5,method = "ebnm_pn",Kmax = 20)
fitting factor/loading 1
fitting factor/loading 2
fitting factor/loading 3
fitting factor/loading 4
fitting factor/loading 5
fitting factor/loading 6
fitting factor/loading 7
fitting factor/loading 8
fitting factor/loading 9
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 1
fitting factor/loading 2
fitting factor/loading 3
fitting factor/loading 4
fitting factor/loading 5
fitting factor/loading 6
fitting factor/loading 7
fitting factor/loading 8
fitting factor/loading 9
fitting factor/loading 1
fitting factor/loading 2
fitting factor/loading 3
fitting factor/loading 4
fitting factor/loading 5
fitting factor/loading 6
fitting factor/loading 7
fitting factor/loading 8
fitting factor/loading 9
fitting factor/loading 1
fitting factor/loading 2
fitting factor/loading 3
fitting factor/loading 4
fitting factor/loading 5
fitting factor/loading 6
fitting factor/loading 7
fitting factor/loading 8
fitting factor/loading 9
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 1
fitting factor/loading 2
fitting factor/loading 3
fitting factor/loading 4
fitting factor/loading 5
fitting factor/loading 6
fitting factor/loading 7
# flashG_rmse = OCV_SSE(Y,OCVindex,OCVdata,k_fold = 5,method = "flash",Kmax = 50)
f_ash = OCV_SSE(Y,OCVindex,OCVdata,k_fold = 5,method = "ebnm_ash",Kmax = 20)
fitting factor/loading 1
Warning in REBayes::KWDual(A, rep(1, k), normalize(w), control = control): estimated mixing distribution has some negative values:
consider reducing rtol
Warning in mixIP(matrix_lik = structure(c(4.97635434328429e-137,
1.70948435290957e-121, : Optimization step yields mixture weights that are
either too small, or negative; weights have been corrected and renormalized
after the optimization.
fitting factor/loading 2
fitting factor/loading 3
fitting factor/loading 4
fitting factor/loading 5
fitting factor/loading 6
fitting factor/loading 7
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 8
fitting factor/loading 9
fitting factor/loading 1
Warning in REBayes::KWDual(A, rep(1, k), normalize(w), control = control): estimated mixing distribution has some negative values:
consider reducing rtol
Warning in mixIP(matrix_lik = structure(c(1.04399379175721e-127,
2.07275611114578e-148, : Optimization step yields mixture weights that are
either too small, or negative; weights have been corrected and renormalized
after the optimization.
Warning in REBayes::KWDual(A, rep(1, k), normalize(w), control = control): estimated mixing distribution has some negative values:
consider reducing rtol
Warning in mixIP(matrix_lik = structure(c(1.11428383481036e-135,
1.59200429543298e-185, : Optimization step yields mixture weights that are
either too small, or negative; weights have been corrected and renormalized
after the optimization.
fitting factor/loading 2
fitting factor/loading 3
fitting factor/loading 4
fitting factor/loading 5
fitting factor/loading 6
fitting factor/loading 7
fitting factor/loading 8
fitting factor/loading 1
Warning in REBayes::KWDual(A, rep(1, k), normalize(w), control = control): estimated mixing distribution has some negative values:
consider reducing rtol
Warning in mixIP(matrix_lik = structure(c(1.6959492596122e-141,
5.15430970830144e-137, : Optimization step yields mixture weights that are
either too small, or negative; weights have been corrected and renormalized
after the optimization.
fitting factor/loading 2
fitting factor/loading 3
fitting factor/loading 4
fitting factor/loading 5
fitting factor/loading 6
fitting factor/loading 7
fitting factor/loading 8
fitting factor/loading 9
fitting factor/loading 1
Warning in REBayes::KWDual(A, rep(1, k), normalize(w), control = control): estimated mixing distribution has some negative values:
consider reducing rtol
Warning in mixIP(matrix_lik = structure(c(1.28880789963641e-143,
1.40058355210077e-144, : Optimization step yields mixture weights that are
either too small, or negative; weights have been corrected and renormalized
after the optimization.
fitting factor/loading 2
fitting factor/loading 3
fitting factor/loading 4
fitting factor/loading 5
fitting factor/loading 6
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 7
fitting factor/loading 8
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 9
fitting factor/loading 1
Warning in REBayes::KWDual(A, rep(1, k), normalize(w), control = control): estimated mixing distribution has some negative values:
consider reducing rtol
Warning in mixIP(matrix_lik = structure(c(3.7327648797833e-164,
9.03510800611549e-133, : Optimization step yields mixture weights that are
either too small, or negative; weights have been corrected and renormalized
after the optimization.
fitting factor/loading 2
fitting factor/loading 3
fitting factor/loading 4
fitting factor/loading 5
fitting factor/loading 6
fitting factor/loading 7
fitting factor/loading 8
Check the RMSE for the missing value
c(f_ash,f_pn)
[1] 0.7565503 0.7588753
set.seed(99)
library(R.matlab)
## run the code
Y_centered = readMat("../../ash-sfa/Rcode/postmean/flash_simulation/missingvalue/Breastcancer/example.mat")
Y = Y_centered$Y
# in the matlab package of NSF, the use the centered data by rows
N = dim(Y)[1]
P = dim(Y)[2]
Y = Y - rowMeans(Y) %*% t(rep(1,P))
OCVindex = OCV_index(Y,k_fold = 5)
Warning in matrix(sample(P, P), ncol = k_fold): data length [251] is not a
sub-multiple or multiple of the number of rows [51]
Warning in matrix(sample(N, N), ncol = k_fold): data length [226] is not a
sub-multiple or multiple of the number of rows [46]
OCVdata = OCV_data(Y,OCVindex,k_fold = 5)
f_pn = OCV_SSE(Y,OCVindex,OCVdata,k_fold = 5,method = "ebnm_pn",Kmax = 50)
fitting factor/loading 1
fitting factor/loading 2
fitting factor/loading 3
fitting factor/loading 4
fitting factor/loading 5
fitting factor/loading 6
fitting factor/loading 7
fitting factor/loading 8
fitting factor/loading 9
fitting factor/loading 10
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 11
fitting factor/loading 12
fitting factor/loading 13
fitting factor/loading 14
fitting factor/loading 15
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 16
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 17
fitting factor/loading 18
fitting factor/loading 19
fitting factor/loading 20
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 21
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 22
fitting factor/loading 23
fitting factor/loading 24
fitting factor/loading 25
fitting factor/loading 26
fitting factor/loading 27
fitting factor/loading 1
fitting factor/loading 2
fitting factor/loading 3
fitting factor/loading 4
fitting factor/loading 5
fitting factor/loading 6
fitting factor/loading 7
fitting factor/loading 8
fitting factor/loading 9
fitting factor/loading 10
fitting factor/loading 11
fitting factor/loading 12
fitting factor/loading 13
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 14
fitting factor/loading 15
fitting factor/loading 16
fitting factor/loading 17
fitting factor/loading 18
fitting factor/loading 19
fitting factor/loading 20
fitting factor/loading 21
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 22
fitting factor/loading 23
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 24
fitting factor/loading 25
fitting factor/loading 26
fitting factor/loading 27
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 28
fitting factor/loading 29
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 30
fitting factor/loading 1
fitting factor/loading 2
fitting factor/loading 3
fitting factor/loading 4
fitting factor/loading 5
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 6
fitting factor/loading 7
fitting factor/loading 8
fitting factor/loading 9
fitting factor/loading 10
fitting factor/loading 11
fitting factor/loading 12
fitting factor/loading 13
fitting factor/loading 14
fitting factor/loading 15
fitting factor/loading 16
fitting factor/loading 17
fitting factor/loading 18
fitting factor/loading 19
fitting factor/loading 20
fitting factor/loading 21
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 22
fitting factor/loading 23
fitting factor/loading 24
fitting factor/loading 25
fitting factor/loading 26
fitting factor/loading 27
fitting factor/loading 28
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 29
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 30
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 1
fitting factor/loading 2
fitting factor/loading 3
fitting factor/loading 4
fitting factor/loading 5
fitting factor/loading 6
fitting factor/loading 7
fitting factor/loading 8
fitting factor/loading 9
fitting factor/loading 10
fitting factor/loading 11
fitting factor/loading 12
fitting factor/loading 13
fitting factor/loading 14
fitting factor/loading 15
fitting factor/loading 16
fitting factor/loading 17
fitting factor/loading 18
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 19
fitting factor/loading 20
fitting factor/loading 21
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 22
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 23
fitting factor/loading 24
fitting factor/loading 25
fitting factor/loading 26
fitting factor/loading 27
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 28
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 29
fitting factor/loading 30
fitting factor/loading 31
fitting factor/loading 32
fitting factor/loading 1
fitting factor/loading 2
fitting factor/loading 3
fitting factor/loading 4
fitting factor/loading 5
fitting factor/loading 6
fitting factor/loading 7
fitting factor/loading 8
fitting factor/loading 9
fitting factor/loading 10
fitting factor/loading 11
fitting factor/loading 12
fitting factor/loading 13
fitting factor/loading 14
fitting factor/loading 15
fitting factor/loading 16
fitting factor/loading 17
fitting factor/loading 18
fitting factor/loading 19
fitting factor/loading 20
fitting factor/loading 21
fitting factor/loading 22
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 23
fitting factor/loading 24
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 25
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 26
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 27
fitting factor/loading 28
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 29
# flashG_rmse = OCV_SSE(Y,OCVindex,OCVdata,k_fold = 5,method = "flash",Kmax = 50)
f_ash = OCV_SSE(Y,OCVindex,OCVdata,k_fold = 5,method = "ebnm_ash",Kmax = 50)
fitting factor/loading 1
fitting factor/loading 2
fitting factor/loading 3
fitting factor/loading 4
fitting factor/loading 5
fitting factor/loading 6
fitting factor/loading 7
fitting factor/loading 8
fitting factor/loading 9
fitting factor/loading 10
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 11
fitting factor/loading 12
fitting factor/loading 13
fitting factor/loading 14
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 15
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 16
fitting factor/loading 17
fitting factor/loading 18
fitting factor/loading 19
fitting factor/loading 20
fitting factor/loading 21
fitting factor/loading 22
fitting factor/loading 23
fitting factor/loading 24
fitting factor/loading 25
fitting factor/loading 26
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 27
fitting factor/loading 28
fitting factor/loading 29
fitting factor/loading 30
fitting factor/loading 31
fitting factor/loading 32
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 1
fitting factor/loading 2
fitting factor/loading 3
fitting factor/loading 4
fitting factor/loading 5
fitting factor/loading 6
fitting factor/loading 7
fitting factor/loading 8
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 9
fitting factor/loading 10
fitting factor/loading 11
fitting factor/loading 12
fitting factor/loading 13
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 14
fitting factor/loading 15
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 16
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 17
fitting factor/loading 18
fitting factor/loading 19
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 20
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 21
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 22
fitting factor/loading 23
fitting factor/loading 24
fitting factor/loading 25
fitting factor/loading 26
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 27
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 28
fitting factor/loading 29
fitting factor/loading 1
fitting factor/loading 2
fitting factor/loading 3
fitting factor/loading 4
fitting factor/loading 5
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 6
fitting factor/loading 7
fitting factor/loading 8
fitting factor/loading 9
fitting factor/loading 10
fitting factor/loading 11
fitting factor/loading 12
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 13
fitting factor/loading 14
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 15
fitting factor/loading 16
fitting factor/loading 17
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 18
fitting factor/loading 19
fitting factor/loading 20
fitting factor/loading 21
fitting factor/loading 22
fitting factor/loading 23
fitting factor/loading 24
fitting factor/loading 25
fitting factor/loading 26
fitting factor/loading 27
fitting factor/loading 1
fitting factor/loading 2
fitting factor/loading 3
fitting factor/loading 4
fitting factor/loading 5
fitting factor/loading 6
fitting factor/loading 7
fitting factor/loading 8
fitting factor/loading 9
fitting factor/loading 10
fitting factor/loading 11
fitting factor/loading 12
fitting factor/loading 13
fitting factor/loading 14
fitting factor/loading 15
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 16
fitting factor/loading 17
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 18
fitting factor/loading 19
fitting factor/loading 20
fitting factor/loading 21
fitting factor/loading 22
fitting factor/loading 23
fitting factor/loading 24
fitting factor/loading 25
fitting factor/loading 26
fitting factor/loading 27
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 28
fitting factor/loading 29
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 1
fitting factor/loading 2
fitting factor/loading 3
fitting factor/loading 4
fitting factor/loading 5
fitting factor/loading 6
fitting factor/loading 7
fitting factor/loading 8
fitting factor/loading 9
fitting factor/loading 10
fitting factor/loading 11
fitting factor/loading 12
fitting factor/loading 13
fitting factor/loading 14
fitting factor/loading 15
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 16
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 17
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 18
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 19
fitting factor/loading 20
fitting factor/loading 21
fitting factor/loading 22
fitting factor/loading 23
fitting factor/loading 24
fitting factor/loading 25
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
fitting factor/loading 26
fitting factor/loading 27
fitting factor/loading 28
Warning in simpute.als(x, J, thresh, lambda, maxit, trace.it, warm.start, :
Convergence not achieved by 100 iterations
Check the RMSE for the missing value
c(f_ash,f_pn)
[1] 0.5185763 0.5188361
set.seed(11)
library(Matrix)
ml100K_data = readRDS("../../ash-sfa/Rcode/postmean/flash_simulation/missingvalue/ML100K/biscale_data.rds")
MLMatrix <- sparseMatrix(i = ml100K_data[,1],
j = ml100K_data[,2],
x = ml100K_data[,3],dims = c(943,1682))
# turn this sparse matrix into matrix in r
Y = as.matrix(MLMatrix)
Y[which(Y == 0)] = NA
OCVindex = OCV_index(Y,k_fold = 10)
OCVdata = OCV_data(Y,OCVindex,k_fold = 10)
f_pn = OCV_SSE(Y,OCVindex,OCVdata,k_fold = 10,method = "ebnm_pn",Kmax = 10)
# flashG_rmse = OCV_SSE(Y,OCVindex,OCVdata,k_fold = 5,method = "flash",Kmax = 50)
f_ash = OCV_SSE(Y,OCVindex,OCVdata,k_fold = 10,method = "ebnm_ash",Kmax = 10)
sessionInfo()
R version 3.3.0 (2016-05-03)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.13.2 (unknown)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] denoiseR_1.0 Matrix_1.2-11 R.matlab_3.6.1 cowplot_0.8.0
[5] ggplot2_2.2.1 flashr2_0.3-3 ashr_2.2-3 ebnm_0.1-7
[9] MASS_7.3-47 workflowr_0.4.0 rmarkdown_1.6
loaded via a namespace (and not attached):
[1] softImpute_1.4 PMA_1.0.9 lattice_0.20-35
[4] Rmosek_7.1.2 colorspace_1.3-2 htmltools_0.3.6
[7] yaml_2.1.14 rlang_0.1.2 R.oo_1.21.0
[10] withr_2.0.0 R.utils_2.5.0 REBayes_0.85
[13] foreach_1.4.4 plyr_1.8.4 stringr_1.2.0
[16] munsell_0.4.3 gtable_0.2.0 R.methodsS3_1.7.1
[19] devtools_1.13.3 codetools_0.2-15 leaps_3.0
[22] memoise_1.1.0 evaluate_0.10.1 knitr_1.17
[25] pscl_1.5.2 doParallel_1.0.11 irlba_2.2.1
[28] parallel_3.3.0 curl_2.8.1 Rcpp_0.12.14
[31] flashClust_1.01-2 scales_0.4.1 backports_1.1.0
[34] scatterplot3d_0.3-40 truncnorm_1.0-7 digest_0.6.12
[37] stringi_1.1.5 grid_3.3.0 rprojroot_1.2
[40] tools_3.3.0 magrittr_1.5 lazyeval_0.2.0
[43] tibble_1.3.3 cluster_2.0.6 FactoMineR_1.36
[46] SQUAREM_2017.10-1 assertthat_0.2.0 httr_1.3.0
[49] rstudioapi_0.6 iterators_1.0.9 R6_2.2.2
[52] git2r_0.19.0
This R Markdown site was created with workflowr