0
我試圖在我的火車和測試數據集上運行不同類型的SVM迴歸。我所有的代碼都在工作,但是我覺得我沒有正確地運行它,因爲在火車和測試中準確度都高於0.95,這個數字太高了。火車上的支持向量機和測試
以下是我如何運行迴歸的代碼。數據集太大而無法上傳(10000行等),但包含已縮放的所有數值變量。
我想我在自己的模型上而不是在火車模型上運行測試,但無法解決如何改變它。我想這是所有類型的SVM的同一個錯誤,所以我剛剛上傳了兩種方法,我正在做它的整潔。
我希望我解釋得很好,如果不能更改的話。
##non linear methods
set.seed(123)
poly.tune = tune.svm(default_flag~., data=train, kernel="polynomial",degree=c(3), coef0=c(0.1))
#summary(poly.tune)
#train
best.poly = poly.tune$best.model
poly.train = predict(best.poly, newdata=train)
svmnonlintrain<-table(poly.train, train$default_flag)
##accuracy from table
nonlineartrain<-(svmnonlintrain[1,1]+svmnonlintrain[2,2])/(svmnonlintrain[1,1]+svmnonlintrain[1,2]+svmnonlintrain[2,1]+svmnonlintrain[2,2])
#test
best.poly = poly.tune$best.model
poly.test = predict(best.poly, newdata=test)
svmnonlin<-table(poly.test, test$default_flag)
##accuracy from table
nonlineartest<-(svmnonlin[1,1]+svmnonlin[2,2])/(svmnonlin[1,1]+svmnonlin[1,2]+svmnonlin[2,1]+svmnonlin[2,2])
##radial basis function
set.seed(123)
rbf.tune = tune.svm(default_flag~., data=train, kernel="radial",gamma=c(0.1,0.5))
#summary(rbf.tune)
#train
best.rbf = rbf.tune$best.model
rbf.train = predict(best.rbf, newdata=train)
svmradialtrain <- table(rbf.train, train$default_flag)
radialtrain<-(svmradialtrain[1,1]+svmradialtrain[2,2])/(svmradialtrain[1,1]+svmradialtrain[1,2]+svmradialtrain[2,1]+svmradialtrain[2,2])
#test
best.rbf = rbf.tune$best.model
rbf.test = predict(best.rbf, newdata=test)
svmradial <- table(rbf.test, test$default_flag)
radialtest<-(svmradial[1,1]+svmradial[2,2])/(svmradial[1,1]+svmradial[1,2]+svmradial[2,1]+svmradial[2,2])