Tôi đang cố gắng thực hiện SVM một lớp trong R. Tôi đã cố gắng sử dụng gói kernlab e1071 / ksvm. Nhưng tôi không chắc là tôi đang làm đúng hay không.
Có ví dụ làm việc nào cho SVM một lớp trong R không?
Cũng thế,
- Tôi đang đưa ra một ma trận lớn của các yếu tố dự đoán là X. Vì nó được coi là một lớp, có phải là giả định rằng tất cả dữ liệu đào tạo tôi đã đưa ra lớp 'dương'? Nếu vậy, chúng ta không phải đưa ra nhãn 'Y'?
- Các nhãn dự đoán được đưa ra là đầu ra là Đúng / Sai. Vì vậy, tôi giả sử, True là lớp 'tích cực'.
Chỉnh sửa: Đính kèm mã mẫu. Ở đây tôi đã lấy mẫu 60% lớp 'TRUE' và tôi đã thử nghiệm trên bộ dữ liệu đầy đủ.
library(e1071)
library(caret)
data(iris)
iris$SpeciesClass[iris$Species=="versicolor"] <- "TRUE"
iris$SpeciesClass[iris$Species!="versicolor"] <- "FALSE"
trainPositive<-subset(iris,SpeciesClass=="TRUE")
inTrain<-createDataPartition(1:nrow(trainPositive),p=0.6,list=FALSE)
trainpredictors<-iris[inTrain,1:4]
testpredictors<-iris[,1:4]
testLabels<-iris[,6]
svm.model<-svm(trainpredictors,y=NULL,
type='one-classification',
nu=0.5,
scale=TRUE,
kernel="radial")
svm.pred<-predict(svm.model,testpredictors)
confusionMatrixTable<-table(Predicted=svm.pred,Reference=testLabels)
confusionMatrix(confusionMatrixTable,positive='TRUE')