- 编写一个R函数来执行矩阵补全,。在每次迭代中,该函数应跟踪相对误差以及迭代计数。迭代应继续,直到相对误差足够小或达到某个最大迭代次数(为此最大数设置一个默认值)。此外,应该有一个选项在每次迭代中打印出进度。
在波士顿数据上测试的函数。首先,使用scale()
函数标准化特征,使其均值为零,标准差为一。运行一个实验,在其中您随机遗漏从5%到30%的观测值,步长为5%。使用M = 1,2,…,8应用算法12.1。显示近似误差作为遗漏观测值的比例,以及M的值,重复实验10次后取平均值。
Matrix Completion Algorithm:
matrix_completion <- function(data, missing_fraction, M, max_iterations = 100, print_progress = FALSE) {
# Standardize the features
data <- scale(data)
# Determine the number of observations to leave out
num_obs <- floor(nrow(data) * missing_fraction)
# Initia