我在尝试使用libSVM(R语言中的e1071包)获取概率输出,但我的数据集的输出结果只有TRUE或FALSE。
以下是我的代码:
dadosBrutos<-read.csv("Dataset/circle.data",header = FALSE)svm.modelo <- svm(V3 ~ ., data=conjuntoTreinamento, type='C-classification', probability=TRUE) #cost=c, #type='C-classification', #kernel='linear', #scale=FALSE, #verbose=FALSE svm.predict <- predict(svm.modelo, subset(conjuntoTreinamento, select = -V3), probability=TRUE)posterior <- as.matrix(svm.predict)
但是,当我使用Iris数据集时,概率输出是百分比,而不是类别的名称。
library(e1071)model <- svm(Species ~ ., data = iris, probability=TRUE)pred <- predict(model, iris, probability=TRUE)head(attr(pred, "probabilities"))# setosa versicolor virginica# 1 0.9803339 0.01129740 0.008368729# 2 0.9729193 0.01807053 0.009010195# 3 0.9790435 0.01192820 0.009028276# 4 0.9750030 0.01531171 0.009685342# 5 0.9795183 0.01164689 0.008834838# 6 0.9740730 0.01679643 0.009130620
有人能帮我理解这是怎么回事吗?
回答:
你需要从属性中提取它:
attr(svm.predict, “probabilities”)
参考:https://stat.ethz.ch/pipermail/r-help/2006-February/088476.html