2017-09-11 7 views
0

y (출력) 변수에 대한 데이터 및 자리 표시자를 함수에 제공하는 프로그램을 작성하려고합니다. 함수는 데이터 세트 및 테스트 데이터에 대한 혼동 행렬을 생성합니다. 이것은 사실이 기능의 제 5 번째 시도입니다.이 기능의 대부분은 데이터 세트로 홍채 데이터를 사용하는 설명서에서 나온 것이지만 기능에 대한 y.vec 입력에 의존하는 것 같습니다. 함수에 y 변수를 올바르게 삽입하는 방법은 무엇입니까?분류에 svm을 사용하여 혼란 행렬을 찾는 함수에 R 함수를 작성하려고합니다.

도움을 주시면 감사하겠습니다. 미리 감사드립니다.

여기 내 기능입니다.

기능 (데이터, y.vec)

{
라이브러리 (e1071) 라이브러리 (rpart) 데이터 = 데이터

index <- 1:nrow(data) 
testindex <- sample(index, trunc(length(index)/3)) 
testset <- data[testindex,] 
trainset <- data[-testindex,] 

svm.model <- svm(as.factor(data[y.vec]) ~ ., data = trainset, cost = 100, gamma = 1) 
svm.pred <- predict(svm.model, testset[,-y.vec]) 

table(pred = svm.pred, true = testset[,y.vec])  

}이 도움이

답변

0

희망!

myFunc <- function(df, y.vec) 
    { 
    library(e1071) 

    df[,y.vec] <- as.factor(df[,y.vec]) 

    set.seed(1) 
    index <- 1:nrow(df) 
    testindex <- sample(index, trunc(length(index)/3)) 
    testset <- df[testindex,] 
    trainset <- df[-testindex,] 

    svm.model <- svm(as.formula(paste(y.vec, "~ .")), data = trainset, cost = 100, gamma = 1) 
    svm.pred <- predict(svm.model, testset[,!(names(testset) %in% y.vec)]) 

    return(table(pred = svm.pred, true = testset[,y.vec])) 
    } 

myFunc(iris, "Species") 
+0

감사합니다. Prem. 정말 감사. 다른 주식 데이터 세트에서 시도해 보았는데 결과가 나왔습니다. –

+0

도움이 된 것을 기쁘게 생각합니다! – Prem