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

プレミアムありがとうございます。ほんとうにありがとう。私は他の株式データセットでそれを試してみて、結果を出しています。 –

+0

助けてくれてうれしい! – Prem

関連する問題