贝叶斯判别程序

时间:2016-06-06 07:29:00
【文件属性】:
文件名称:贝叶斯判别程序
文件大小:1006B
文件格式:R
更新时间:2016-06-06 07:29:00
bayes 数学判别 discriminiant.bayes<-function (TrnX1, TrnX2, rate=1, TstX = NULL, var.equal = FALSE){ if (is.null(TstX) == TRUE) TstX<-rbind(TrnX1,TrnX2) if (is.vector(TstX) == TRUE) TstX<-t(as.matrix(TstX)) else if (is.matrix(TstX) != TRUE) TstX<-as.matrix(TstX) if (is.matrix(TrnX1) != TRUE) TrnX1<-as.matrix(TrnX1) if (is.matrix(TrnX2) != TRUE) TrnX2<-as.matrix(TrnX2) nx<-nrow(TstX) blong<-matrix(rep(0, nx), nrow=1, byrow=TRUE, dimnames=list("blong", 1:nx)) mu1<-colMeans(TrnX1); mu2<-colMeans(TrnX2) if (var.equal == TRUE || var.equal == T){ S<-var(rbind(TrnX1,TrnX2)); beta<-2*log(rate) w<-mahalanobis(TstX, mu2, S)-mahalanobis(TstX, mu1, S) } else{ S1<-var(TrnX1); S2<-var(TrnX2) beta<-2*log(rate)+log(det(S1)/det(S2)) w<-mahalanobis(TstX, mu2, S2)-mahalanobis(TstX, mu1, S1) } for (i in 1:nx){ if (w[i]>beta) blong[i]<-1 else blong[i]<-2 } blong }

网友评论