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.0219 
#> 
#> 
#> Computing inverse correlation matrix (pooled across classes)
#> Estimating optimal shrinkage intensity lambda (correlation matrix): 0.1108 

print(learner$model)
#> $regularization
#>       lambda   lambda.var lambda.freqs 
#>   0.11084606   0.02192686   1.00000000 
#> 
#> $freqs
#>   M   R 
#> 0.5 0.5 
#> 
#> $alpha
#>         M         R 
#> -4.034675  1.340818 
#> 
#> $beta
#>          V1        V10       V11       V12        V13        V14        V15
#> M -1.754027 -0.3591949  3.032847  3.939469  0.7789385  0.1088935 -0.6030771
#> R  1.754027  0.3591949 -3.032847 -3.939469 -0.7789385 -0.1088935  0.6030771
#>         V16       V17         V18        V19        V2        V20        V21
#> M -0.748748 -1.263031 -0.02259495  0.5240104  3.316156  0.5988967  0.2210652
#> R  0.748748  1.263031  0.02259495 -0.5240104 -3.316156 -0.5988967 -0.2210652
#>           V22        V23       V24        V25        V26        V27        V28
#> M  0.07612779  0.8353716  1.173987 -0.4874293 -0.6355241  0.6618477  0.6440299
#> R -0.07612779 -0.8353716 -1.173987  0.4874293  0.6355241 -0.6618477 -0.6440299
#>          V29        V3       V30       V31       V32        V33        V34
#> M -0.6023663 -7.731473  1.304188 -2.012064  0.319834 -0.9737512 -0.3952334
#> R  0.6023663  7.731473 -1.304188  2.012064 -0.319834  0.9737512  0.3952334
#>          V35       V36       V37       V38        V39        V4       V40
#> M  0.6295812 -1.632163 -1.884177  1.614412  0.6785798  8.540674 -1.697298
#> R -0.6295812  1.632163  1.884177 -1.614412 -0.6785798 -8.540674  1.697298
#>         V41        V42       V43       V44       V45       V46       V47
#> M  1.449703 -0.9381767  1.582661  0.677983  0.746259  2.534638  1.500812
#> R -1.449703  0.9381767 -1.582661 -0.677983 -0.746259 -2.534638 -1.500812
#>          V48       V49       V5       V50      V51       V52       V53
#> M  0.2041455  8.114402  2.88984 -7.707213 -7.09271 -1.399135  2.509437
#> R -0.2041455 -8.114402 -2.88984  7.707213  7.09271  1.399135 -2.509437
#>          V54       V55       V56       V57       V58      V59         V6
#> M -0.2859685 -10.52341 -2.986122  5.140818  6.552905  8.10875 -0.5400422
#> R  0.2859685  10.52341  2.986122 -5.140818 -6.552905 -8.10875  0.5400422
#>          V60        V7        V8        V9
#> M -0.1939671 -3.554899 -2.669917  2.770325
#> R  0.1939671  3.554899  2.669917 -2.770325
#> 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.2028986