【发布时间】:2016-11-25 13:53:23
【问题描述】:
Phi <- as.matrix(cbind(1, train.data)) # add a column of 1 as phi_0
train.len <- 75
eta <- 0.01 # Learning rate
epsilon <- 0.001 #
tau.max <- 75 # Maximum number of iterations
T <- ifelse(train.label == c0, eval(parse(text=c0)),eval(parse(text=c1))) labels
W <- matrix(,nrow=tau.max, ncol=ncol(Phi)) # Empty Weight vector
W[1,] <- runif(ncol(Phi)) # Random initial values for weight vector
error.trace <- matrix(0,nrow=tau.max, ncol=1) # Placeholder for errors
error.trace[1] <- sum((Phi%*%W[1,])*T<0)/train.len*100
train.data 看起来像:
x1 x2 x3 x4 y
5.1 3.5 1.4 0.2 C1
4.7 3.2 1.3 0.2 C1
35.0 3.6 1.4 0.2 C1
问题发生在最后一行。我查看了其他一些帖子 (Matrix expression causes error "requires numeric/complex matrix/vector arguments"?)。他们说要确保数据是矩阵格式,我还检查了它们都是数字(Phi 和 W)。
我得到的错误是
Phi %*% W[1, ] 中的错误: 需要数值/复数矩阵/向量参数
【问题讨论】:
-
您希望在矩阵乘法期间
train.data中的y列会发生什么?