9 votos

Ejemplos de Una clase de SVM en R

Estoy tratando de hacer una clase SVM en R. he estado tratando de utilizar e1071/ksvm kernlab paquete. Pero no estoy seguro de si lo estoy haciendo correctamente.

¿Hay algún ejemplo de trabajo para una clase de SVM en R?

También,

  • Estoy dando una gran matriz de predictores como X. Desde su supone que es una clase, es la suposición de que todos los datos de entrenamiento me dio formas "positiva" de la clase? Si es así, no tenemos que dar las etiquetas 'Y'?
  • La predicción de etiquetas da como salida son de tipo Verdadero/Falso. Así que estoy asumiendo, en Verdad es "positiva" de la clase.

Edit: instalación de código de ejemplo. Aquí probé el 60% de la 'VERDADERA' de la clase y he probado en el conjunto de datos completo.

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')

6voto

Vijay Puntos 21

El Capítulo 9 práctica de laboratorio de Introducción a la Estadística de Aprendizaje se proporciona un ejemplo del uso de un SVM para la clasificación binaria, y lo hace, de hecho, utilizar el e1071 de la biblioteca. Con el permiso de la editorial, una versión en PDF del libro está disponible para su descarga gratuita.

2voto

Chandan Gautam Puntos 1

Me estoy dando rectificado versión de código anterior. Su 'trainpredictors de selección" está mal porque u seleccionados de iris en lugar de 'trainPositive', pero el índice de u seleccionado de 'trainPositive'. Precisión: tren=78.125 prueba= 91.53

library(e1071)
library(caret)
library(NLP)
library(tm)

data(iris)

iris$SpeciesClass[iris$Species=="versicolor"] <- "TRUE"
iris$SpeciesClass[iris$Species!="versicolor"] <- "FALSE"
trainPositive<-subset(iris,SpeciesClass=="TRUE")
testnegative<-subset(iris,SpeciesClass=="FALSE")
inTrain<-createDataPartition(1:nrow(trainPositive),p=0.6,list=FALSE)

trainpredictors<-trainPositive[inTrain,1:4]
trainLabels<-trainPositive[inTrain,6]

testPositive<-trainPositive[-inTrain,]
testPosNeg<-rbind(testPositive,testnegative)

testpredictors<-testPosNeg[,1:4]
testLabels<-testPosNeg[,6]

svm.model<-svm(trainpredictors,y=NULL,
           type='one-classification',
           nu=0.10,
           scale=TRUE,
           kernel="radial")

svm.predtrain<-predict(svm.model,trainpredictors)
svm.predtest<-predict(svm.model,testpredictors)

confTrain<-table(Predicted=svm.predtrain,Reference=trainLabels)
confTest<-table(Predicted=svm.predtest,Reference=testLabels)

confusionMatrix(confTest,positive='TRUE')

print(confTrain)
print(confTest)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X