2017-04-03 11 views
0

リニアSVMモデルとRBFカーネルモデルを使用してデータをテストし、Fスコアを使用して2つのスコアのどちらが良いかを調べることで、データが線形に分離可能かどうかをテストしようとしています。キャレットとRStudioの致命的なエラー

私はキャレットパッケージを使用していますが、は 'rbf'メソッドを使用し、fit.SVMLは 'svmLinear'を使用しています。

私はスクリプトの全長をリニアモデルまで実行できますが、これは問題なく実行されますが、カーネルモデルを実行するとすぐに致命的なエラーメッセージが表示され、セッションを再開する必要があります以下の添付画像。

私はコードのカーネルセクションを実行するたびにRがクラッシュする理由について誰でも提案できますか?

私のdataと私のcodeの再現可能なバージョンは、2つの冗談を与える人のためのものです!

:私は(training.data.rawの$のオーバーシュート)に分類しようとしている結果変数の型が要因である

> sessionInfo() 
R version 3.3.2 (2016-10-31) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 
Running under: Windows >= 8 x64 (build 9200) 

locale: 
[1] LC_COLLATE=English_Ireland.1252 LC_CTYPE=English_Ireland.1252 LC_MONETARY=English_Ireland.1252 LC_NUMERIC=C      
[5] LC_TIME=English_Ireland.1252  

attached base packages: 
[1] parallel stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] kernlab_0.9-25 doMC_1.3.4  iterators_1.0.8 foreach_1.4.3 Amelia_1.7.4 Rcpp_0.12.9  dplyr_0.5.0  pROC_1.9.1  klaR_0.6-12  
[10] MASS_7.3-45  caret_6.0-73 ggplot2_2.2.1 lattice_0.20-34 

loaded via a namespace (and not attached): 
[1] compiler_3.3.2  nloptr_1.0.4  plyr_1.8.4   class_7.3-14  tools_3.3.2  digest_0.6.12  lme4_1.1-12  tibble_1.2   
[9] nlme_3.1-128  gtable_0.2.0  mgcv_1.8-15  Matrix_1.2-7.1  DBI_0.5-1   SparseM_1.74  e1071_1.6-8  stringr_1.2.0  
[17] MatrixModels_0.4-1 stats4_3.3.2  combinat_0.0-8  grid_3.3.2   nnet_7.3-12  R6_2.2.0   foreign_0.8-67  minqa_1.2.4  
[25] reshape2_1.4.2  car_2.1-4   magrittr_1.5  scales_0.4.1  codetools_0.2-15 ModelMetrics_1.1.0 splines_3.3.2  assertthat_0.1  
[33] pbkrtest_0.4-6  colorspace_1.3-2 labeling_0.3  quantreg_5.29  stringi_1.1.2  lazyeval_0.2.0  munsell_0.4.3 

下記のとおり、私はキャレットパッケージをロードした

enter image description here

以下は

> str(training.data.raw) 
'data.frame': 2846 obs. of 19 variables: 
$ Total.Tx.Height : num 31.2 31.2 31.2 31.2 31.2 ... 
$ Antenna.Tilt  : int 0 0 0 0 0 0 4 4 2 2 ... 
$ Antenna.Gain  : num 15.9 15.9 15.9 18.2 18.2 18.2 15.9 15.9 18.8 18.8 ... 
$ Ant.Vert.Beamwidth: num 10 10 10 4.4 4.4 4.4 9.6 9.6 4.3 4.3 ... 
$ RTWP    : num -106 -104 -105 -105 -105 ... 
$ Voice.Drops  : int 1 12 1 0 1 5 1 18 4 3 ... 
$ Range    : num 11.33 5.14 5.14 11.33 3.88 ... 
$ Max.Distance  : num 12.43 6.24 6.24 12.43 4.98 ... 
$ Environment  : Factor w/ 3 levels "Rural","Suburban",..: 1 1 1 1 1 1 1 1 1 1 ... 
$ Rural    : Factor w/ 2 levels "0","1": 2 2 2 2 2 2 2 2 2 2 ... 
$ Suburban   : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ... 
$ Urban    : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ... 
$ Overshooting  : Factor w/ 2 levels "0","1": 1 1 2 2 2 2 2 2 2 1 ... 
$ OShooting   : Factor w/ 2 levels "Not.Overshooting",..: 1 1 2 2 2 2 2 2 2 1 ... 
$ HSUPA.Throughput : num 164 223 232 241 264 ... 
$ Max.HSDPA.Users : int 10 16 9 5 8 7 14 31 8 12 ... 
$ HS.DSCH.throughput: num 1975 2346 2995 3696 3894 ... 
$ Max.HSUPA.Users : int 13 25 11 5 13 9 15 33 8 13 ... 
$ Avg.CQI   : num 16.2 18 19.4 19.7 21.8 ... 

私は両方のモデルのトレーニング制御のために使用していますコードです:

ここでは
metric <- "Accuracy" 
train_Control <- trainControl(method = "repeatedCV", 
            number = 10, 
            repeats = 3), 
            classProbs = T) 

私はfit.SVMKernelfit.SVMLinear

set.seed(123) 
fit.SVML <- train(Overshooting ~ Total.Tx.Height + 
        Antenna.Tilt + 
        Antenna.Gain + 
        Ant.Vert.Beamwidth + 
        RTWP + 
        Voice.Drops + 
        Range + 
        Max.Distance + 
        Rural + 
        Suburban + 
        Urban + 
        HSUPA.Throughput + 
        Max.HSDPA.Users + 
        HS.DSCH.throughput + 
        Max.HSUPA.Users + 
        Avg.CQI, 
       data = training.data.raw, 
       method = 'svmLinear', 
       preProcess = c('center','scale'), 
       trControl=train_Control, 
       tuneLength=5, 
       metric = metric) 

set.seed(123) 
fit.SVMKernel <- train(Overshooting ~ Total.Tx.Height + 
        Antenna.Tilt + 
        Antenna.Gain + 
        Ant.Vert.Beamwidth + 
        RTWP + 
        Voice.Drops + 
        Range + 
        Max.Distance + 
        Rural + 
        Suburban + 
        Urban + 
        HSUPA.Throughput + 
        Max.HSDPA.Users + 
        HS.DSCH.throughput + 
        Max.HSUPA.Users + 
        Avg.CQI, 
        data = training.data.raw, 
        method = 'rbf', 
        preProcess = c('center','scale'), 
        trControl=train_Control, 
        tuneLength=5, 
        metric = metric)#, 
        #summaryFunction=twoClassSummary) 

答えて

0

を作成している2つのモデルが、私は電車の中でモデルを呼びかけた方法が有効なモデル名ではありませんでしたが判明しています。私はこれを私が仕事に戻ったことを知っていたことを知っていたものに変更しました。