R Random Forest Tutorial koos näitega

Mis on R-is Random Forest?

Juhuslikud metsad põhinevad lihtsal ideel: "rahvahulga tarkus". Mitme ennustaja tulemuste koondamine annab parema prognoosi kui parim individuaalne ennustaja. Ennustajate rühma nimetatakse an ansambel. Seega nimetatakse seda tehnikat Ansambliõpe.

Varasemas õpetuses õppisite kasutama Otsustuspuud binaarse ennustuse tegemiseks. Oma tehnika täiustamiseks saame treenida rühma Otsustuspuu klassifikaatorid, igaüks rongikomplekti erineval juhuslikul alamhulgal. Ennustamiseks hankime lihtsalt kõigi üksikpuude ennustused, seejärel ennustame klassi, kes saab enim hääli. Seda tehnikat nimetatakse Juhuslik mets.

Step 1) Importige andmed

Veendumaks, et teil on sama andmestik, mis õpetuses otsustuspuud, rongikatsetus ja katsekomplekt on salvestatud Internetti. Saate need importida ilma muudatusi tegemata.

library(dplyr)
data_train <- read.csv("https://raw.githubusercontent.com/guru99-edu/R-Programming/master/train.csv")
glimpse(data_train)
data_test <- read.csv("https://raw.githubusercontent.com/guru99-edu/R-Programming/master/test.csv") 
glimpse(data_test)

2. samm) Treenige modelli

Üks võimalus mudeli toimivuse hindamiseks on treenida seda mitmel erineval väiksemal andmekogumil ja hinnata neid võrreldes teise väiksema testimiskomplektiga. Seda nimetatakse F-kordne ristvalideerimine funktsioon. R on funktsioon peaaegu sama suurusega andmekogumite juhuslikuks jagamiseks. Näiteks kui k = 9, hinnatakse mudelit üheksa kausta üle ja testitakse ülejäänud testikomplektiga. Seda protsessi korratakse, kuni kõik alamhulgad on hinnatud. Seda tehnikat kasutatakse laialdaselt mudeli valimisel, eriti kui mudelil on häälestatavad parameetrid.

Nüüd, kui meil on võimalus oma mudelit hinnata, peame välja mõtlema, kuidas valida parameetrid, mis üldistasid andmeid kõige paremini.

Juhuslik mets valib objektide juhusliku alamhulga ja loob palju otsustuspuid. Mudel keskmistab kõik otsuste puude prognoosid.

Juhuslikul metsal on mõned parameetrid, mida saab ennustuse üldistamise parandamiseks muuta. Mudeli koolitamiseks kasutate funktsiooni RandomForest().

Randon Foresti süntaks on

RandomForest(formula, ntree=n, mtry=FALSE, maxnodes = NULL)
Arguments:
- Formula: Formula of the fitted model
- ntree: number of trees in the forest
- mtry: Number of candidates draw to feed the algorithm. By default, it is the square of the number of columns.
- maxnodes: Set the maximum amount of terminal nodes in the forest
- importance=TRUE: Whether independent variables importance in the random forest be assessed

märkused: Juhuslikku metsa saab treenida rohkemate parameetrite järgi. Võite viidata vinjet et näha erinevaid parameetreid.

Modelli tuunimine on väga tüütu töö. Parameetrite vahel on palju kombinatsioone. Teil ei pruugi olla aega neid kõiki proovida. Hea alternatiiv on lasta masinal leida endale parim kombinatsioon. Saadaval on kaks meetodit:

  • Juhuslik otsing
  • Võrguotsing

Defineerime mõlemad meetodid, kuid õpetuse käigus treenime mudelit ruudustikuotsingu abil

Ruudustikuotsingu määratlus

Ruudustikuotsingu meetod on lihtne, mudelit hinnatakse ristvalideerimise abil kogu funktsioonis edastatud kombinatsiooni kohta.

Näiteks soovite proovida mudelit 10, 20, 30 puudega ja iga puud testitakse mitme mtry arvuga, mis võrdub 1, 2, 3, 4, 5. Seejärel testib masin 15 erinevat mudelit:

    .mtry ntrees
 1      1     10
 2      2     10
 3      3     10
 4      4     10
 5      5     10
 6      1     20
 7      2     20
 8      3     20
 9      4     20
 10     5     20
 11     1     30
 12     2     30
 13     3     30
 14     4     30
 15     5     30	

Algoritm hindab:

RandomForest(formula, ntree=10, mtry=1)
RandomForest(formula, ntree=10, mtry=2)
RandomForest(formula, ntree=10, mtry=3)
RandomForest(formula, ntree=20, mtry=2)
...

Iga kord katsetab juhuslik mets ristvalideerimisega. Võrgustikuotsingu üks puudus on eksperimentide arv. See võib muutuda väga kergesti plahvatusohtlikuks, kui kombinatsioonide arv on suur. Selle probleemi lahendamiseks võite kasutada juhuslikku otsingut

Juhusliku otsingu määratlus

Suur erinevus juhusliku otsingu ja ruudustikuotsingu vahel on see, et juhuslik otsing ei hinda kõiki hüperparameetrite kombinatsioone otsinguruumis. Selle asemel valib see iga iteratsiooni korral juhuslikult kombinatsiooni. Eeliseks on see, et see vähendab arvutuskulusid.

Määrake juhtimisparameeter

Mudeli koostamiseks ja hindamiseks toimige järgmiselt.

  • Hinnake mudelit vaikesätetega
  • Leidke parim mtry arv
  • Leidke parim arv maxnode
  • Leidke parim arv puid
  • Hinnake katseandmestiku mudelit

Enne parameetrite uurimisega alustamist peate installima kaks teeki.

  • caret: R masinõppe raamatukogu. Kui teil on installige R koos r-essential. See on juba raamatukogus
  • e1071: R masinõppe raamatukogu.

Saate neid importida koos RandomForestiga

library(randomForest)
library(caret)
library(e1071)

Vaikeseade

K-kordset ristvalideerimist juhib funktsioon trainControl().

trainControl(method = "cv", number = n, search ="grid")
arguments
- method = "cv": The method used to resample the dataset. 
- number = n: Number of folders to create
- search = "grid": Use the search grid method. For randomized method, use "grid"
Note: You can refer to the vignette to see the other arguments of the function.

Võite proovida mudelit käivitada vaikeparameetritega ja vaadata täpsusskoori.

märkused: kasutate kogu õpetuse ajal samu juhtnuppe.

# Define the control
trControl <- trainControl(method = "cv",
    number = 10,
    search = "grid")

Kasutate oma mudeli hindamiseks caret raamatukogu. Teegil on üks funktsioon nimega train(), et hinnata peaaegu kõiki masinõpe algoritm. Teisiti öeldes saate seda funktsiooni kasutada teiste algoritmide treenimiseks.

Põhiline süntaks on:

train(formula, df, method = "rf", metric= "Accuracy", trControl = trainControl(), tuneGrid = NULL)
argument
- `formula`: Define the formula of the algorithm
- `method`: Define which model to train. Note, at the end of the tutorial, there is a list of all the models that can be trained
- `metric` = "Accuracy": Define how to select the optimal model
- `trControl = trainControl()`: Define the control parameters
- `tuneGrid = NULL`: Return a data frame with all the possible combination

Proovime luua mudeli vaikeväärtustega.

set.seed(1234)
# Run the model
rf_default <- train(survived~.,
    data = data_train,
    method = "rf",
    metric = "Accuracy",
    trControl = trControl)
# Print the results
print(rf_default)

Koodi selgitus

  • trainControl(method=”cv”, number=10, search=”grid”): hinnake mudelit ruudustikuotsinguga 10 kaustast
  • rong(…): Treeni juhuslikku metsamudelit. Parim mudel valitakse täpsusmõõduga.

Väljund:

## Random Forest 
## 
## 836 samples
##   7 predictor
##   2 classes: 'No', 'Yes' 
## 
## No pre-processing
## Resampling: Cross-Validated (10 fold) 
## Summary of sample sizes: 753, 752, 753, 752, 752, 752, ... 
## Resampling results across tuning parameters:
## 
##   mtry  Accuracy   Kappa    
##    2    0.7919248  0.5536486
##    6    0.7811245  0.5391611
##   10    0.7572002  0.4939620
## 
## Accuracy was used to select the optimal model using  the largest value.
## The final value used for the model was mtry = 2.

Algoritm kasutab 500 puud ja testis kolme erinevat mtry väärtust: 2, 6, 10.

Mudeli jaoks kasutatud lõplik väärtus oli mtry = 2 täpsusega 0.78. Proovime saada kõrgemat punktisummat.

2. samm) Otsige parimat mtry

Saate testida mudelit mtry väärtustega vahemikus 1 kuni 10

set.seed(1234)
tuneGrid <- expand.grid(.mtry = c(1: 10))
rf_mtry <- train(survived~.,
    data = data_train,
    method = "rf",
    metric = "Accuracy",
    tuneGrid = tuneGrid,
    trControl = trControl,
    importance = TRUE,
    nodesize = 14,
    ntree = 300)
print(rf_mtry)

Koodi selgitus

  • tuneGrid <- expand.grid(.mtry=c(3:10)): konstrueerida vektor väärtusega alates 3:10

Mudeli jaoks kasutatud lõplik väärtus oli mtry = 4.

Väljund:

## Random Forest 
## 
## 836 samples
##   7 predictor
##   2 classes: 'No', 'Yes' 
## 
## No pre-processing
## Resampling: Cross-Validated (10 fold) 
## Summary of sample sizes: 753, 752, 753, 752, 752, 752, ... 
## Resampling results across tuning parameters:
## 
##   mtry  Accuracy   Kappa    
##    1    0.7572576  0.4647368
##    2    0.7979346  0.5662364
##    3    0.8075158  0.5884815
##    4    0.8110729  0.5970664
##    5    0.8074727  0.5900030
##    6    0.8099111  0.5949342
##    7    0.8050918  0.5866415
##    8    0.8050918  0.5855399
##    9    0.8050631  0.5855035
##   10    0.7978916  0.5707336
## 
## Accuracy was used to select the optimal model using  the largest value.
## The final value used for the model was mtry = 4.

Mtry parim väärtus on salvestatud:

rf_mtry$bestTune$mtry

Saate seda salvestada ja kasutada, kui peate teisi parameetreid häälestama.

max(rf_mtry$results$Accuracy)

Väljund:

## [1] 0.8110729
best_mtry <- rf_mtry$bestTune$mtry 
best_mtry

Väljund:

## [1] 4

Samm 3) Otsige parimaid max sõlme

Peate looma tsükli, et hinnata maxnodede erinevaid väärtusi. Järgmises koodis saate:

  • Looge loend
  • Loo muutuja parameetri mtry parima väärtusega; Kohustuslik
  • Loo silmus
  • Salvestage maxnode praegune väärtus
  • Tehke tulemused kokku
store_maxnode <- list()
tuneGrid <- expand.grid(.mtry = best_mtry)
for (maxnodes in c(5: 15)) {
    set.seed(1234)
    rf_maxnode <- train(survived~.,
        data = data_train,
        method = "rf",
        metric = "Accuracy",
        tuneGrid = tuneGrid,
        trControl = trControl,
        importance = TRUE,
        nodesize = 14,
        maxnodes = maxnodes,
        ntree = 300)
    current_iteration <- toString(maxnodes)
    store_maxnode[[current_iteration]] <- rf_maxnode
}
results_mtry <- resamples(store_maxnode)
summary(results_mtry)

Koodi selgitus:

  • store_maxnode <- list(): Mudeli tulemused salvestatakse sellesse loendisse
  • expand.grid(.mtry=best_mtry): kasutage mtry parimat väärtust
  • for (maxnodes in c(15:25)) { … }: arvutage mudel maksimaalsete sõlmede väärtustega alates 15 kuni 25.
  • maxnodes=maxnodes: iga iteratsiooni puhul on maxnodes võrdne maxnode praeguse väärtusega. st 15, 16, 17, …
  • võti <- toString(maxnodes): salvestab stringi muutujana maxnode väärtuse.
  • store_maxnode[[võti]] <- rf_maxnode: salvesta mudeli tulemus loendisse.
  • resamples(store_maxnode): korraldage mudeli tulemused
  • summary(results_mtry): printige kogu kombinatsiooni kokkuvõte.

Väljund:

## 
## Call:
## summary.resamples(object = results_mtry)
## 
## Models: 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 
## Number of resamples: 10 
## 
## Accuracy 
##         Min.   1st Qu.    Median      Mean   3rd Qu.      Max. NA's
## 5  0.6785714 0.7529762 0.7903758 0.7799771 0.8168388 0.8433735    0
## 6  0.6904762 0.7648810 0.7784710 0.7811962 0.8125000 0.8313253    0
## 7  0.6904762 0.7619048 0.7738095 0.7788009 0.8102410 0.8333333    0
## 8  0.6904762 0.7627295 0.7844234 0.7847820 0.8184524 0.8433735    0
## 9  0.7261905 0.7747418 0.8083764 0.7955250 0.8258749 0.8333333    0
## 10 0.6904762 0.7837780 0.7904475 0.7895869 0.8214286 0.8433735    0
## 11 0.7023810 0.7791523 0.8024240 0.7943775 0.8184524 0.8433735    0
## 12 0.7380952 0.7910929 0.8144005 0.8051205 0.8288511 0.8452381    0
## 13 0.7142857 0.8005952 0.8192771 0.8075158 0.8403614 0.8452381    0
## 14 0.7380952 0.7941050 0.8203528 0.8098967 0.8403614 0.8452381    0
## 15 0.7142857 0.8000215 0.8203528 0.8075301 0.8378873 0.8554217    0
## 
## Kappa 
##         Min.   1st Qu.    Median      Mean   3rd Qu.      Max. NA's
## 5  0.3297872 0.4640436 0.5459706 0.5270773 0.6068751 0.6717371    0
## 6  0.3576471 0.4981484 0.5248805 0.5366310 0.6031287 0.6480921    0
## 7  0.3576471 0.4927448 0.5192771 0.5297159 0.5996437 0.6508314    0
## 8  0.3576471 0.4848320 0.5408159 0.5427127 0.6200253 0.6717371    0
## 9  0.4236277 0.5074421 0.5859472 0.5601687 0.6228626 0.6480921    0
## 10 0.3576471 0.5255698 0.5527057 0.5497490 0.6204819 0.6717371    0
## 11 0.3794326 0.5235007 0.5783191 0.5600467 0.6126720 0.6717371    0
## 12 0.4460432 0.5480930 0.5999072 0.5808134 0.6296780 0.6717371    0
## 13 0.4014252 0.5725752 0.6087279 0.5875305 0.6576219 0.6678832    0
## 14 0.4460432 0.5585005 0.6117973 0.5911995 0.6590982 0.6717371    0
## 15 0.4014252 0.5689401 0.6117973 0.5867010 0.6507194 0.6955990    0

Suurima täpsusega on maxnode viimane väärtus. Võite proovida kõrgemate väärtustega, et näha, kas saate kõrgema skoori.

store_maxnode <- list()
tuneGrid <- expand.grid(.mtry = best_mtry)
for (maxnodes in c(20: 30)) {
    set.seed(1234)
    rf_maxnode <- train(survived~.,
        data = data_train,
        method = "rf",
        metric = "Accuracy",
        tuneGrid = tuneGrid,
        trControl = trControl,
        importance = TRUE,
        nodesize = 14,
        maxnodes = maxnodes,
        ntree = 300)
    key <- toString(maxnodes)
    store_maxnode[[key]] <- rf_maxnode
}
results_node <- resamples(store_maxnode)
summary(results_node)

Väljund:

## 
## Call:
## summary.resamples(object = results_node)
## 
## Models: 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 
## Number of resamples: 10 
## 
## Accuracy 
##         Min.   1st Qu.    Median      Mean   3rd Qu.      Max. NA's
## 20 0.7142857 0.7821644 0.8144005 0.8075301 0.8447719 0.8571429    0
## 21 0.7142857 0.8000215 0.8144005 0.8075014 0.8403614 0.8571429    0
## 22 0.7023810 0.7941050 0.8263769 0.8099254 0.8328313 0.8690476    0
## 23 0.7023810 0.7941050 0.8263769 0.8111302 0.8447719 0.8571429    0
## 24 0.7142857 0.7946429 0.8313253 0.8135112 0.8417599 0.8690476    0
## 25 0.7142857 0.7916667 0.8313253 0.8099398 0.8408635 0.8690476    0
## 26 0.7142857 0.7941050 0.8203528 0.8123207 0.8528758 0.8571429    0
## 27 0.7023810 0.8060456 0.8313253 0.8135112 0.8333333 0.8690476    0
## 28 0.7261905 0.7941050 0.8203528 0.8111015 0.8328313 0.8690476    0
## 29 0.7142857 0.7910929 0.8313253 0.8087063 0.8333333 0.8571429    0
## 30 0.6785714 0.7910929 0.8263769 0.8063253 0.8403614 0.8690476    0
## 
## Kappa 
##         Min.   1st Qu.    Median      Mean   3rd Qu.      Max. NA's
## 20 0.3956835 0.5316120 0.5961830 0.5854366 0.6661120 0.6955990    0
## 21 0.3956835 0.5699332 0.5960343 0.5853247 0.6590982 0.6919315    0
## 22 0.3735084 0.5560661 0.6221836 0.5914492 0.6422128 0.7189781    0
## 23 0.3735084 0.5594228 0.6228827 0.5939786 0.6657372 0.6955990    0
## 24 0.3956835 0.5600352 0.6337821 0.5992188 0.6604703 0.7189781    0
## 25 0.3956835 0.5530760 0.6354875 0.5912239 0.6554912 0.7189781    0
## 26 0.3956835 0.5589331 0.6136074 0.5969142 0.6822128 0.6955990    0
## 27 0.3735084 0.5852459 0.6368425 0.5998148 0.6426088 0.7189781    0
## 28 0.4290780 0.5589331 0.6154905 0.5946859 0.6356141 0.7189781    0
## 29 0.4070588 0.5534173 0.6337821 0.5901173 0.6423101 0.6919315    0
## 30 0.3297872 0.5534173 0.6202632 0.5843432 0.6590982 0.7189781    0

Kõrgeim täpsusskoor saadakse maxnode väärtusega 22.

4. samm) Otsige parimaid puid

Nüüd, kui teil on mtry ja maxnode parim väärtus, saate puude arvu häälestada. Meetod on täpselt sama, mis maxnode.

store_maxtrees <- list()
for (ntree in c(250, 300, 350, 400, 450, 500, 550, 600, 800, 1000, 2000)) {
    set.seed(5678)
    rf_maxtrees <- train(survived~.,
        data = data_train,
        method = "rf",
        metric = "Accuracy",
        tuneGrid = tuneGrid,
        trControl = trControl,
        importance = TRUE,
        nodesize = 14,
        maxnodes = 24,
        ntree = ntree)
    key <- toString(ntree)
    store_maxtrees[[key]] <- rf_maxtrees
}
results_tree <- resamples(store_maxtrees)
summary(results_tree)

Väljund:

## 
## Call:
## summary.resamples(object = results_tree)
## 
## Models: 250, 300, 350, 400, 450, 500, 550, 600, 800, 1000, 2000 
## Number of resamples: 10 
## 
## Accuracy 
##           Min.   1st Qu.    Median      Mean   3rd Qu.      Max. NA's
## 250  0.7380952 0.7976190 0.8083764 0.8087010 0.8292683 0.8674699    0
## 300  0.7500000 0.7886905 0.8024240 0.8027199 0.8203397 0.8452381    0
## 350  0.7500000 0.7886905 0.8024240 0.8027056 0.8277623 0.8452381    0
## 400  0.7500000 0.7886905 0.8083764 0.8051009 0.8292683 0.8452381    0
## 450  0.7500000 0.7886905 0.8024240 0.8039104 0.8292683 0.8452381    0
## 500  0.7619048 0.7886905 0.8024240 0.8062914 0.8292683 0.8571429    0
## 550  0.7619048 0.7886905 0.8083764 0.8099062 0.8323171 0.8571429    0
## 600  0.7619048 0.7886905 0.8083764 0.8099205 0.8323171 0.8674699    0
## 800  0.7619048 0.7976190 0.8083764 0.8110820 0.8292683 0.8674699    0
## 1000 0.7619048 0.7976190 0.8121510 0.8086723 0.8303571 0.8452381    0
## 2000 0.7619048 0.7886905 0.8121510 0.8086723 0.8333333 0.8452381    0
## 
## Kappa 
##           Min.   1st Qu.    Median      Mean   3rd Qu.      Max. NA's
## 250  0.4061697 0.5667400 0.5836013 0.5856103 0.6335363 0.7196807    0
## 300  0.4302326 0.5449376 0.5780349 0.5723307 0.6130767 0.6710843    0
## 350  0.4302326 0.5449376 0.5780349 0.5723185 0.6291592 0.6710843    0
## 400  0.4302326 0.5482030 0.5836013 0.5774782 0.6335363 0.6710843    0
## 450  0.4302326 0.5449376 0.5780349 0.5750587 0.6335363 0.6710843    0
## 500  0.4601542 0.5449376 0.5780349 0.5804340 0.6335363 0.6949153    0
## 550  0.4601542 0.5482030 0.5857118 0.5884507 0.6396872 0.6949153    0
## 600  0.4601542 0.5482030 0.5857118 0.5884374 0.6396872 0.7196807    0
## 800  0.4601542 0.5667400 0.5836013 0.5910088 0.6335363 0.7196807    0
## 1000 0.4601542 0.5667400 0.5961590 0.5857446 0.6343666 0.6678832    0
## 2000 0.4601542 0.5482030 0.5961590 0.5862151 0.6440678 0.6656337    0

Teil on lõplik mudel. Juhuslikku metsa saate treenida järgmiste parameetritega:

  • ntree =800: koolitatakse 800 puud
  • mtry=4: iga iteratsiooni jaoks valitakse 4 funktsiooni
  • maxnodes = 24: maksimaalselt 24 sõlme terminali sõlmedes (lehed)
fit_rf <- train(survived~.,
    data_train,
    method = "rf",
    metric = "Accuracy",
    tuneGrid = tuneGrid,
    trControl = trControl,
    importance = TRUE,
    nodesize = 14,
    ntree = 800,
    maxnodes = 24)

5. samm) hinnake mudelit

Raamatukoguhoidjal on funktsioon ennustada.

predict(model, newdata= df)
argument
- `model`: Define the model evaluated before. 
- `newdata`: Define the dataset to make prediction
prediction <-predict(fit_rf, data_test)

Saate kasutada ennustust segadusmaatriksi arvutamiseks ja täpsusskoori vaatamiseks

confusionMatrix(prediction, data_test$survived)

Väljund:

## Confusion Matrix and Statistics
## 
##           Reference
## Prediction  No Yes
##        No  110  32
##        Yes  11  56
##                                          
##                Accuracy : 0.7943         
##                  95% CI : (0.733, 0.8469)
##     No Information Rate : 0.5789         
##     P-Value [Acc > NIR] : 3.959e-11      
##                                          
##                   Kappa : 0.5638         
##  Mcnemar's Test P-Value : 0.002289       
##                                          
##             Sensitivity : 0.9091         
##             Specificity : 0.6364         
##          Pos Pred Value : 0.7746         
##          Neg Pred Value : 0.8358         
##              Prevalence : 0.5789         
##          Detection Rate : 0.5263         
##    Detection Prevalence : 0.6794         
##       Balanced Accuracy : 0.7727         
##                                          
##        'Positive' Class : No             
## 

Teie täpsus on 0.7943 protsenti, mis on suurem kui vaikeväärtus

6. samm) Visualiseerige tulemus

Lõpuks saate vaadata funktsiooni olulisust funktsiooniga varImp(). Tundub, et kõige olulisemad tunnused on sugu ja vanus. See pole üllatav, sest olulised tunnused ilmuvad tõenäoliselt puu juurtele lähemal, samas kui vähem olulised tunnused paistavad sageli lehtedele suletuna.

varImpPlot(fit_rf)

Väljund:

varImp(fit_rf)
## rf variable importance
## 
##              Importance
## sexmale         100.000
## age              28.014
## pclassMiddle     27.016
## fare             21.557
## pclassUpper      16.324
## sibsp            11.246
## parch             5.522
## embarkedC         4.908
## embarkedQ         1.420
## embarkedS         0.000		

kokkuvõte

Juhusliku metsa treenimise ja hindamise saame kokku võtta alloleva tabeliga:

Raamatukogu Eesmärk funktsioon Parameeter
juhuslik mets Loo juhuslik mets RandomForest() valem, ntree=n, mtry=FALSE, maxnodes = NULL
caret Loo K kausta ristvalideerimine trainControl() meetod = "cv", number = n, otsing = "ruudustik"
caret Treenige juhuslikku metsa rong () valem, df, meetod = "rf", metric = "täpsus", trControl = trainControl(), tuneGrid = NULL
caret Ennusta valimit välja ennustada mudel, uued andmed = df
caret Segadusmaatriks ja statistika confusionMatrix() mudel, y test
caret muutuv tähtsus cvarImp() mudel

Lisa

Caretis kasutatud mudelite loend

names>(getModelInfo())

Väljund:

##   [1] "ada"                 "AdaBag"              "AdaBoost.M1"        ##   [4] "adaboost"            "amdai"               "ANFIS"              ##   [7] "avNNet"              "awnb"                "awtan"              ##  [10] "bag"                 "bagEarth"            "bagEarthGCV"        ##  [13] "bagFDA"              "bagFDAGCV"           "bam"                ##  [16] "bartMachine"         "bayesglm"            "binda"              ##  [19] "blackboost"          "blasso"              "blassoAveraged"     ##  [22] "bridge"              "brnn"                "BstLm"              ##  [25] "bstSm"               "bstTree"             "C5.0"               ##  [28] "C5.0Cost"            "C5.0Rules"           "C5.0Tree"           ##  [31] "cforest"             "chaid"               "CSimca"             ##  [34] "ctree"               "ctree2"              "cubist"             ##  [37] "dda"                 "deepboost"           "DENFIS"             ##  [40] "dnn"                 "dwdLinear"           "dwdPoly"            ##  [43] "dwdRadial"           "earth"               "elm"                ##  [46] "enet"                "evtree"              "extraTrees"         ##  [49] "fda"                 "FH.GBML"             "FIR.DM"             ##  [52] "foba"                "FRBCS.CHI"           "FRBCS.W"            ##  [55] "FS.HGD"              "gam"                 "gamboost"           ##  [58] "gamLoess"            "gamSpline"           "gaussprLinear"      ##  [61] "gaussprPoly"         "gaussprRadial"       "gbm_h3o"            ##  [64] "gbm"                 "gcvEarth"            "GFS.FR.MOGUL"       ##  [67] "GFS.GCCL"            "GFS.LT.RS"           "GFS.THRIFT"         ##  [70] "glm.nb"              "glm"                 "glmboost"           ##  [73] "glmnet_h3o"          "glmnet"              "glmStepAIC"         ##  [76] "gpls"                "hda"                 "hdda"               ##  [79] "hdrda"               "HYFIS"               "icr"                ##  [82] "J48"                 "JRip"                "kernelpls"          ##  [85] "kknn"                "knn"                 "krlsPoly"           ##  [88] "krlsRadial"          "lars"                "lars2"              ##  [91] "lasso"               "lda"                 "lda2"               ##  [94] "leapBackward"        "leapForward"         "leapSeq"            ##  [97] "Linda"               "lm"                  "lmStepAIC"          ## [100] "LMT"                 "loclda"              "logicBag"           ## [103] "LogitBoost"          "logreg"              "lssvmLinear"        ## [106] "lssvmPoly"           "lssvmRadial"         "lvq"                ## [109] "M5"                  "M5Rules"             "manb"               ## [112] "mda"                 "Mlda"                "mlp"                ## [115] "mlpKerasDecay"       "mlpKerasDecayCost"   "mlpKerasDropout"    ## [118] "mlpKerasDropoutCost" "mlpML"               "mlpSGD"             ## [121] "mlpWeightDecay"      "mlpWeightDecayML"    "monmlp"             ## [124] "msaenet"             "multinom"            "mxnet"              ## [127] "mxnetAdam"           "naive_bayes"         "nb"                 ## [130] "nbDiscrete"          "nbSearch"            "neuralnet"          ## [133] "nnet"                "nnls"                "nodeHarvest"        ## [136] "null"                "OneR"                "ordinalNet"         ## [139] "ORFlog"              "ORFpls"              "ORFridge"           ## [142] "ORFsvm"              "ownn"                "pam"                ## [145] "parRF"               "PART"                "partDSA"            ## [148] "pcaNNet"             "pcr"                 "pda"                ## [151] "pda2"                "penalized"           "PenalizedLDA"       ## [154] "plr"                 "pls"                 "plsRglm"            ## [157] "polr"                "ppr"                 "PRIM"               ## [160] "protoclass"          "pythonKnnReg"        "qda"                ## [163] "QdaCov"              "qrf"                 "qrnn"               ## [166] "randomGLM"           "ranger"              "rbf"                ## [169] "rbfDDA"              "Rborist"             "rda"                ## [172] "regLogistic"         "relaxo"              "rf"                 ## [175] "rFerns"              "RFlda"               "rfRules"            ## [178] "ridge"               "rlda"                "rlm"                ## [181] "rmda"                "rocc"                "rotationForest"     ## [184] "rotationForestCp"    "rpart"               "rpart1SE"           ## [187] "rpart2"              "rpartCost"           "rpartScore"         ## [190] "rqlasso"             "rqnc"                "RRF"                ## [193] "RRFglobal"           "rrlda"               "RSimca"             ## [196] "rvmLinear"           "rvmPoly"             "rvmRadial"          ## [199] "SBC"                 "sda"                 "sdwd"               ## [202] "simpls"              "SLAVE"               "slda"               ## [205] "smda"                "snn"                 "sparseLDA"          ## [208] "spikeslab"           "spls"                "stepLDA"            ## [211] "stepQDA"             "superpc"             "svmBoundrangeString"## [214] "svmExpoString"       "svmLinear"           "svmLinear2"         ## [217] "svmLinear3"          "svmLinearWeights"    "svmLinearWeights2"  ## [220] "svmPoly"             "svmRadial"           "svmRadialCost"      ## [223] "svmRadialSigma"      "svmRadialWeights"    "svmSpectrumString"  ## [226] "tan"                 "tanSearch"           "treebag"            ## [229] "vbmpRadial"          "vglmAdjCat"          "vglmContRatio"      ## [232] "vglmCumulative"      "widekernelpls"       "WM"                 ## [235] "wsrf"                "xgbLinear"           "xgbTree"            ## [238] "xyf"