在R中进行矩阵乘法时的非整合数组

Doe*_*Noe 2 r matrix

我正在尝试在R中实现内核岭回归。

公式为:

alpha <- ((lambda.I + K)^(-1)) * y
Run Code Online (Sandbox Code Playgroud)

Lambda = 0.1。I =与K大小相同的单位矩阵。y是特征向量,具有与K相同的行数。

所以我在R中尝试了这个:

I <- diag(nrow(df_matrix)
lambda <- 0.1
alpha <- (lambda * I + df_matrix) ^ (-1) * df_vector
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

Error in (0.1 * I + df_matrix)^(-1) * df_vector : non-conformable arrays
Run Code Online (Sandbox Code Playgroud)

这是我的数据集上的一些信息

> nrow(df_matrix)
[1] 8222
> ncol(df_matrix)
[1] 8222
> nrow(df_vector)
[1] 8222
> nrow(I)
[1] 8222
> ncol(I)
[1] 8222
> class(df_matrix)
[1] "matrix"
> class(df_vector)
[1] "matrix"
Run Code Online (Sandbox Code Playgroud)

Iar*_*min 5

我敢打赌,您想在这里进行矩阵求逆,而solve(m)不是逐个元素(m^(-1))。另外,矩阵乘法(%*%)代替逐元素(*)。所以,总共是

alpha <- solve(lambda * I + df_matrix) %*% df_vector
Run Code Online (Sandbox Code Playgroud)

  • 当然,“ solve(lambda * I + df_matrix,df_vector)”会更明智/更有效。 (2认同)