У меня есть следующая функция:
cost<-function(alpha) {
ypred<-lda.pred$posterior[,2] # prob of Y=1
ypred[lda.pred$posterior[,2]>=alpha]=1
ypred[lda.pred$posterior[,2]<alpha]=0
y<-dataframe_testsample[,y]
df<-data.frame(y,ypred)
row.names(df) <- NULL
FN <- sum(df$y == '1' & df$ypred == '0')
FP <- sum(df$y == '0' & df$ypred == '1')
tot_costs<-FN*10+FP*8
return(tot_costs)
}
Это функция для расчета общих затрат на неправильную классификацию класса при использовании линейного дискриминантного анализа (команда lda в R). y
и ypred
- оба вектора 137x1. Функция рассчитывает количество ложных срабатываний (FP) и ложноотрицательных (FN), а также общую стоимость. Это работает flwaless. Тем не менее, при попытке построить его со следующим
alpha_grid<-seq(0,1,0.01)
plot(alpha_grid,cost(alpha_grid))
я получаю следующее сообщение об ошибке:
Error in xy.coords(x, y, xlabel, ylabel, log) :
'x' and 'y' lengths differ
Inoltre: Warning messages:
1: In lda.pred$posterior[, 2] >= alpha :
longer object length is not a multiple of shorter object length
2: In lda.pred$posterior[, 2] < alpha :
longer object length is not a multiple of shorter object length
Что здесь происходит?