'keys' are a set of column(s) which identify a group of rules in a rulelist. Methods like predict, augment produce output per key combination.

set_keys(x, keys, reset = FALSE)

Arguments

x

A rulelist

keys

(character vector or NULL)

reset

(flag) Whether to reset the keys to sequential numbers starting with 1 when keys is set to NULL

Value

A rulelist object

Details

A new rulelist is returned with attr keys is modified. The input rulelist object is unaltered.

See also

rulelist, tidy, augment, predict, calculate, prune, reorder

Other Core Rulelist Utility: set_validation_data()

Examples

model_c5 = C50::C5.0(Attrition ~., data = modeldata::attrition, rules = TRUE)
tidy_c5 = tidy(model_c5)
tidy_c5 # keys are: "trial_nbr"
#> ---- Rulelist --------------------------------
#> ▶ Keys: trial_nbr
#> ▶ Number of distinct keys: 1
#> ▶ Number of rules: 24
#> ▶ Model type: C5
#> ▶ Estimation type: classification
#> ▶ Is validation data set: FALSE
#> 
#> 
#>    rule_nbr trial_nbr LHS                         RHS   support confidence  lift
#>       <int>     <int> <chr>                       <fct>   <int>      <dbl> <dbl>
#>  1        1         1 ( JobLevel <= 1 ) & ( Mont… Yes        16      0.944   5.9
#>  2        2         1 ( EnvironmentSatisfaction … No        521      0.941   1.1
#>  3        3         1 ( DailyRate <= 722 ) & ( J… Yes        13      0.933   5.8
#>  4        4         1 ( JobRole == 'Research_Sci… No        195      0.924   1.1
#>  5        5         1 ( EnvironmentSatisfaction … Yes         9      0.909   5.6
#>  6        6         1 ( EnvironmentSatisfaction … Yes         9      0.909   5.6
#>  7        7         1 ( JobRole %in% c('Laborato… Yes        14      0.875   5.4
#>  8        8         1 ( JobRole == 'Laboratory_T… Yes         6      0.875   5.4
#>  9        9         1 ( Department == 'Sales' ) … Yes        13      0.867   5.4
#> 10       10         1 ( TotalWorkingYears > 2 )   No       1347      0.864   1  
#> # ℹ 14 more rows
#> ----------------------------------------------

tidy_c5[["rule_nbr"]] = 1:nrow(tidy_c5)
new_tidy_c5 = set_keys(tidy_c5, NULL) # remove all keys
new_tidy_c5
#> ---- Rulelist --------------------------------
#> ▶ Keys: NULL
#> ▶ Number of rules: 24
#> ▶ Model type: C5
#> ▶ Estimation type: classification
#> ▶ Is validation data set: FALSE
#> 
#> 
#>    rule_nbr trial_nbr LHS                         RHS   support confidence  lift
#>       <int>     <int> <chr>                       <fct>   <int>      <dbl> <dbl>
#>  1        1         1 ( JobLevel <= 1 ) & ( Mont… Yes        16      0.944   5.9
#>  2        2         1 ( EnvironmentSatisfaction … No        521      0.941   1.1
#>  3        3         1 ( DailyRate <= 722 ) & ( J… Yes        13      0.933   5.8
#>  4        4         1 ( JobRole == 'Research_Sci… No        195      0.924   1.1
#>  5        5         1 ( EnvironmentSatisfaction … Yes         9      0.909   5.6
#>  6        6         1 ( EnvironmentSatisfaction … Yes         9      0.909   5.6
#>  7        7         1 ( JobRole %in% c('Laborato… Yes        14      0.875   5.4
#>  8        8         1 ( JobRole == 'Laboratory_T… Yes         6      0.875   5.4
#>  9        9         1 ( Department == 'Sales' ) … Yes        13      0.867   5.4
#> 10       10         1 ( TotalWorkingYears > 2 )   No       1347      0.864   1  
#> # ℹ 14 more rows
#> ----------------------------------------------

new_2_tidy_c5 = set_keys(new_tidy_c5, "trial_nbr") # set "trial_nbr" as key
new_2_tidy_c5
#> ---- Rulelist --------------------------------
#> ▶ Keys: trial_nbr
#> ▶ Number of distinct keys: 1
#> ▶ Number of rules: 24
#> ▶ Model type: C5
#> ▶ Estimation type: classification
#> ▶ Is validation data set: FALSE
#> 
#> 
#>    rule_nbr trial_nbr LHS                         RHS   support confidence  lift
#>       <int>     <int> <chr>                       <fct>   <int>      <dbl> <dbl>
#>  1        1         1 ( JobLevel <= 1 ) & ( Mont… Yes        16      0.944   5.9
#>  2        2         1 ( EnvironmentSatisfaction … No        521      0.941   1.1
#>  3        3         1 ( DailyRate <= 722 ) & ( J… Yes        13      0.933   5.8
#>  4        4         1 ( JobRole == 'Research_Sci… No        195      0.924   1.1
#>  5        5         1 ( EnvironmentSatisfaction … Yes         9      0.909   5.6
#>  6        6         1 ( EnvironmentSatisfaction … Yes         9      0.909   5.6
#>  7        7         1 ( JobRole %in% c('Laborato… Yes        14      0.875   5.4
#>  8        8         1 ( JobRole == 'Laboratory_T… Yes         6      0.875   5.4
#>  9        9         1 ( Department == 'Sales' ) … Yes        13      0.867   5.4
#> 10       10         1 ( TotalWorkingYears > 2 )   No       1347      0.864   1  
#> # ℹ 14 more rows
#> ----------------------------------------------

# Note that `tidy_c5` and `new_tidy_c5` are not altered.
tidy_c5
#> ---- Rulelist --------------------------------
#> ▶ Keys: trial_nbr
#> ▶ Number of distinct keys: 1
#> ▶ Number of rules: 24
#> ▶ Model type: C5
#> ▶ Estimation type: classification
#> ▶ Is validation data set: FALSE
#> 
#> 
#>    rule_nbr trial_nbr LHS                         RHS   support confidence  lift
#>       <int>     <int> <chr>                       <fct>   <int>      <dbl> <dbl>
#>  1        1         1 ( JobLevel <= 1 ) & ( Mont… Yes        16      0.944   5.9
#>  2        2         1 ( EnvironmentSatisfaction … No        521      0.941   1.1
#>  3        3         1 ( DailyRate <= 722 ) & ( J… Yes        13      0.933   5.8
#>  4        4         1 ( JobRole == 'Research_Sci… No        195      0.924   1.1
#>  5        5         1 ( EnvironmentSatisfaction … Yes         9      0.909   5.6
#>  6        6         1 ( EnvironmentSatisfaction … Yes         9      0.909   5.6
#>  7        7         1 ( JobRole %in% c('Laborato… Yes        14      0.875   5.4
#>  8        8         1 ( JobRole == 'Laboratory_T… Yes         6      0.875   5.4
#>  9        9         1 ( Department == 'Sales' ) … Yes        13      0.867   5.4
#> 10       10         1 ( TotalWorkingYears > 2 )   No       1347      0.864   1  
#> # ℹ 14 more rows
#> ----------------------------------------------
new_tidy_c5
#> ---- Rulelist --------------------------------
#> ▶ Keys: NULL
#> ▶ Number of rules: 24
#> ▶ Model type: C5
#> ▶ Estimation type: classification
#> ▶ Is validation data set: FALSE
#> 
#> 
#>    rule_nbr trial_nbr LHS                         RHS   support confidence  lift
#>       <int>     <int> <chr>                       <fct>   <int>      <dbl> <dbl>
#>  1        1         1 ( JobLevel <= 1 ) & ( Mont… Yes        16      0.944   5.9
#>  2        2         1 ( EnvironmentSatisfaction … No        521      0.941   1.1
#>  3        3         1 ( DailyRate <= 722 ) & ( J… Yes        13      0.933   5.8
#>  4        4         1 ( JobRole == 'Research_Sci… No        195      0.924   1.1
#>  5        5         1 ( EnvironmentSatisfaction … Yes         9      0.909   5.6
#>  6        6         1 ( EnvironmentSatisfaction … Yes         9      0.909   5.6
#>  7        7         1 ( JobRole %in% c('Laborato… Yes        14      0.875   5.4
#>  8        8         1 ( JobRole == 'Laboratory_T… Yes         6      0.875   5.4
#>  9        9         1 ( Department == 'Sales' ) … Yes        13      0.867   5.4
#> 10       10         1 ( TotalWorkingYears > 2 )   No       1347      0.864   1  
#> # ℹ 14 more rows
#> ----------------------------------------------