crassmat {crassmat} | R Documentation |
Conditional Random Sampling Sparse Matrices
Description
Conducts conditional random sampling on observed values in sparse matrices. Useful for training and test set splitting sparse matrices prior to model fitting in cross-validation procedures and estimating the predictive accuracy of data imputation methods, such as matrix factorization or singular value decomposition (SVD). Although designed for applications with sparse matrices, CRASSMAT can also be applied to complete matrices, as well as to those containing missing values.
Usage
crassmat(data, sample_thres, conditional)
Arguments
data |
a matrix (supports sparsity, missing values, and complete matrices) |
sample_thres |
a non-negative decimal specifying the percentage of observed values sampled out |
conditional |
a non-negative integer specifying the number of observed values to remain per row |
Details
Takes a matrix Aij and samples out a single jth value on the condition that the number of jth values within the ith observation is greater than the specified conditional (minimum number of values to remain per ith observation). This process repeats itself until the specified sampling threshold is met.
Value
Returns a matrix object with observed values removed according to the specified sample_thres
and conditional
.
Author(s)
Nick Kunz <nick.kunz@columbia.edu>
References
Kunz, N. (2019). Unsupervised Learning for Submarket Modeling: A Proxy for Neighborhood Change (Master's Thesis). Columbia University, New York, NY.
Examples
## test set
A_test <- A
## training set
A_train <- crassmat(data = A, # matrix
sample_thres = 0.20, # remove 20% of observed values
conditional = 1) # keep > 1 observed values per row