Skip to contents

Shrinkage Discriminant Analysis for classification. Calls sda::sda() from sda.

Dictionary

This Learner can be instantiated via lrn():

lrn("classif.sda")

Meta Information

  • Task type: “classif”

  • Predict Types: “response”, “prob”

  • Feature Types: “integer”, “numeric”

  • Required Packages: mlr3, sda

Parameters

IdTypeDefaultLevelsRange
lambdanumeric-\([0, 1]\)
lambda.varnumeric-\([0, 1]\)
lambda.freqsnumeric-\([0, 1]\)
diagonallogicalFALSETRUE, FALSE-
verboselogicalFALSETRUE, FALSE-

References

Ahdesmaeki, Miika, Strimmer, Korbinian (2010). “Feature selection in omics prediction problems using cat scores and false nondiscovery rate control.” The Annals of Applied Statistics, 4(1). ISSN 1932-6157. doi:10.1214/09-aoas277 . http://dx.doi.org/10.1214/09-AOAS277.

See also

Author

annanzrv

Super classes

mlr3::Learner -> mlr3::LearnerClassif -> LearnerClassifSda

Methods

Inherited methods


LearnerClassifSda$new()

Creates a new instance of this R6 class.

Usage


LearnerClassifSda$clone()

The objects of this class are cloneable with this method.

Usage

LearnerClassifSda$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

# Define the Learner
learner = lrn("classif.sda")
print(learner)
#> 
#> ── <LearnerClassifSda> (classif.sda): Shrinkage Discriminant Analysis ──────────
#> • Model: -
#> • Parameters: list()
#> • Packages: mlr3 and sda
#> • Predict Types: [response] and prob
#> • Feature Types: integer and numeric
#> • Encapsulation: none (fallback: -)
#> • Properties: multiclass and twoclass
#> • Other settings: use_weights = 'error', predict_raw = 'FALSE'

# Define a Task
task = tsk("sonar")

# Create train and test set
ids = partition(task)

# Train the learner on the training ids
learner$train(task, row_ids = ids$train)
#> Number of variables: 60 
#> Number of observations: 139 
#> Number of classes: 2 
#> 
#> Estimating optimal shrinkage intensity lambda.freq (frequencies): 1 
#> Estimating variances (pooled across classes)
#> Estimating optimal shrinkage intensity lambda.var (variance vector): 0.0221 
#> 
#> 
#> Computing inverse correlation matrix (pooled across classes)
#> Estimating optimal shrinkage intensity lambda (correlation matrix): 0.1046 

print(learner$model)
#> $regularization
#>       lambda   lambda.var lambda.freqs 
#>   0.10464677   0.02211251   1.00000000 
#> 
#> $freqs
#>   M   R 
#> 0.5 0.5 
#> 
#> $alpha
#>         M         R 
#> -4.187154  1.657444 
#> 
#> $beta
#>          V1       V10       V11       V12        V13        V14        V15
#> M  4.196722 -1.364452  1.133058  2.312081  0.8927551 -0.3381538 -0.4183684
#> R -4.196722  1.364452 -1.133058 -2.312081 -0.8927551  0.3381538  0.4183684
#>         V16       V17        V18        V19        V2       V20        V21
#> M -1.147161 -1.069451  0.6038924  0.8114669  6.655782  0.742001  0.2335348
#> R  1.147161  1.069451 -0.6038924 -0.8114669 -6.655782 -0.742001 -0.2335348
#>           V22        V23       V24        V25       V26       V27       V28
#> M  0.08272372  0.8316922  0.625732 -0.7962018 -0.347092  0.732707  1.307197
#> R -0.08272372 -0.8316922 -0.625732  0.7962018  0.347092 -0.732707 -1.307197
#>          V29        V3        V30       V31       V32         V33        V34
#> M -0.2879656 -11.15073  0.7314362 -1.940352  1.299641 -0.00773957 -0.8228778
#> R  0.2879656  11.15073 -0.7314362  1.940352 -1.299641  0.00773957  0.8228778
#>          V35       V36      V37       V38        V39        V4       V40
#> M  0.2909642 -0.908809 -1.79983  1.001614  0.8122069  11.43918 -1.722032
#> R -0.2909642  0.908809  1.79983 -1.001614 -0.8122069 -11.43918  1.722032
#>          V41        V42       V43       V44        V45       V46       V47
#> M -0.6775415 -0.1499473  1.203774  1.005686 -0.2400979  1.647211  1.175521
#> R  0.6775415  0.1499473 -1.203774 -1.005686  0.2400979 -1.647211 -1.175521
#>         V48       V49        V5       V50       V51       V52       V53
#> M  8.128684  9.425362  2.211107 -10.07256 -7.221703  3.200064 -1.189822
#> R -8.128684 -9.425362 -2.211107  10.07256  7.221703 -3.200064  1.189822
#>        V54       V55        V56       V57       V58       V59        V6
#> M  5.74372 -9.022419 -0.5764064  5.946361  3.183604  7.091454 -1.585953
#> R -5.74372  9.022419  0.5764064 -5.946361 -3.183604 -7.091454  1.585953
#>          V60        V7        V8        V9
#> M  0.2464231 -3.515127 -3.852563  3.006333
#> R -0.2464231  3.515127  3.852563 -3.006333
#> attr(,"class")
#> [1] "shrinkage"
#> 
#> attr(,"class")
#> [1] "sda"


# Make predictions for the test rows
predictions = learner$predict(task, row_ids = ids$test)
#> Prediction uses 60 features.

# Score the predictions
predictions$score()
#> classif.ce 
#>  0.2608696