feature_combinations(
m,
exact = TRUE,
n_combinations = 200,
weight_zero_m = 10^6,
group_num = NULL
)

## Arguments

m

Positive integer. Total number of features.

exact

Logical. If TRUE all 2^m combinations are generated, otherwise a subsample of the combinations is used.

n_combinations

Positive integer. Note that if exact = TRUE, n_combinations is ignored. However, if m > 12 you'll need to add a positive integer value for n_combinations.

weight_zero_m

Numeric. The value to use as a replacement for infinite combination weights when doing numerical operations.

group_num

List. Contains vector of integers indicating the feature numbers for the different groups.

## Value

A data.table that contains the following columns:

id_combination

Positive integer. Represents a unique key for each combination. Note that the table is sorted by id_combination, so that is always equal to x[["id_combination"]] = 1:nrow(x).

features

List. Each item of the list is an integer vector where features[[i]] represents the indices of the features included in combination i. Note that all the items are sorted such that features[[i]] == sort(features[[i]]) is always true.

n_features

Vector of positive integers. n_features[i] equals the number of features in combination i, i.e. n_features[i] = length(features[[i]]).

.
N

Positive integer. The number of unique ways to sample n_features[i] features from m different features, without replacement.

## Author

Nikolai Sellereite, Martin Jullum

## Examples

# All combinations
x <- feature_combinations(m = 3)
nrow(x) # Equals 2^3 = 8
#> [1] 8

# Subsample of combinations
x <- feature_combinations(exact = FALSE, m = 10, n_combinations = 1e2)