dbayes(WMDB)
dbayes()所属R语言包:WMDB
Using bias method to distinguish classes
使用偏置的方法来区分类
译者:生物统计家园网 机器人LoveR
描述----------Description----------
using bias method to distinguish classes
使用偏置的方法来区分类
用法----------Usage----------
dbayes(TrnX, TrnG, p = rep(1, length(levels(TrnG))), TstX = NULL, var.equal = FALSE)
参数----------Arguments----------
参数:TrnX
matrix or data frame of training set cases.
矩阵或数据框的训练集的情况下。
参数:TrnG
vector of factors of the samples
向量的样品的因素
参数:p
vector of prior probability of samples
先验概率的样本中的矢量的
参数:TstX
matrix or data frame of test set cases. A vector will be interpreted as a row vector for a single case.
矩阵或数据框的测试集的情况下。一种向量,将被解释为一个单一的情况下作为一个行向量。
参数:var.equal
whether class have the same covariance or not
是否类具有相同的协方差或不
Details
详细信息----------Details----------
the distribution of samples shuold be normal distribution
样本分布shuold正态分布
值----------Value----------
result of classifications of test set will be returned. (When TstX is NULL, the function will automatically consider the user is trying to test the Discriminant Analysis Methods by weight Mahalanobis distance. Hence, a test result table and accuracy report will be shown on the R-console.)
测试集的分类结果将被返回。 (当TstX是NULL,该函数会自动考虑用户正试图测试重量马氏距离判别分析方法,因此,测试结果表,准确度报告将显示在R-控制台)。
(作者)----------Author(s)----------
Bingpei Wu
参考文献----------References----------
实例----------Examples----------
##---- Should be DIRECTLY executable !! ----[#----应该是直接的可执行文件! ----]
##-- ==> Define data, use random,[ - ==>定义数据,使用随机的,]
##-- or do help(data=index) for the standard data sets.[# - 帮助(数据=索引)的标准数据集。]
X<-iris[,1:4]
G<-gl(3,50)
dbayes(X,G)
## The function is currently defined as[#功能目前被定义为]
function (TrnX, TrnG, p = rep(1, length(levels(TrnG))), TstX = NULL,
var.equal = FALSE)
{
if (is.factor(TrnG) == FALSE) {
mx <- nrow(TrnX)
mg <- nrow(TrnG)
TrnX <- rbind(TrnX, TrnG)
TrnG <- factor(rep(1:2, c(mx, mg)))
}
if (is.null(TstX) == TRUE)
TstX <- TrnX
if (is.vector(TstX) == TRUE)
TstX <- t(as.matrix(TstX))
else if (is.matrix(TstX) != TRUE)
TstX <- as.matrix(TstX)
if (is.matrix(TrnX) != TRUE)
TrnX <- as.matrix(TrnX)
nx <- nrow(TstX)
blong <- matrix(rep(0, nx), nrow = 1, dimnames = list("blong",
1:nx))
g <- length(levels(TrnG))
mu <- matrix(0, nrow = g, ncol = ncol(TrnX))
for (i in 1:g) mu[i, ] <- colMeans(TrnX[TrnG == i, ])
D <- matrix(0, nrow = g, ncol = nx)
if (var.equal == TRUE || var.equal == T) {
for (i in 1:g) {
d2 <- mahalanobis(TstX, mu[i, ], var(TrnX))
D[i, ] <- d2 - 2 * log(p[i])
}
}
else {
for (i in 1:g) {
S <- var(TrnX[TrnG == i, ])
d2 <- mahalanobis(TstX, mu[i, ], S)
D[i, ] <- d2 - 2 * log(p[i]) - log(det(S))
}
}
for (j in 1:nx) {
dmin <- Inf
for (i in 1:g) if (D[i, j] < dmin) {
dmin <- D[i, j]
blong[j] <- i
}
}
print(blong)
print("num of wrong judgement")
print(which(blong != TrnG))
print("samples divided to")
print(blong[which(blong != TrnG)])
print("samples actually belongs to")
print(TrnG[which(blong != TrnG)])
print("percent of right judgement")
print(1 - length(which(blong != TrnG))/length(blong))
}
转载请注明:出自 生物统计家园网(http://www.biostatistic.net)。
注:
注1:为了方便大家学习,本文档为生物统计家园网机器人LoveR翻译而成,仅供个人R语言学习参考使用,生物统计家园保留版权。
注2:由于是机器人自动翻译,难免有不准确之处,使用时仔细对照中、英文内容进行反复理解,可以帮助R语言的学习。
注3:如遇到不准确之处,请在本贴的后面进行回帖,我们会逐渐进行修订。
|