# Hyperparameters While scikit_FIBERS has a number of available hyperparameters only a few are considered to be essential or useful to check or set. * Essential hyperparameters are given in the first table. * For survival data without covariate columns, the *fitness_metric* should be set to 'log_rank' and *covariates* should be set to None. * For survival data with covariate colums (that need to be adjusted for), the *fitness_metric* should be set to either 'residuals' or to 'log_rank_residuals' (otherwise referred to as the 'product' fitness metric), and *covariates* should be set to a list of all covariate column lables in the dataset. * For survival data without censoring, *censor_label* should be set to None, otherwise it should be set the censoring column lable. * While *outcome_type* is also an important hyperparameter to check, currently only the 'survival' option (for survial data analysis) has been fully implemented and tested. | Hyperparameter | Description | Type/Options | Default Value | | -------------- | ----------- | ------------- | ------------- | | *outcome_label* | Data column label for time-to-event (outcome) | str | 'Duration' | | *outcome_type* | Defines the type of outcome in the dataset | 'survival','class' | 'survival' | | *censor_label* | Data column label for censoring | str/None |'Censoring', None | | *fitness_metric* | Pre-fitness metric driving fitness ranking | 'log_rank','residuals','log_rank_residuals' | 'log_rank' | | *covariates* | List of data column labels to be treated as covariates (i.e. not considered for bin inclusion) | list, None | None | * This second table includes hyperparameters that are not essential but can have a significant impact on algorithm performance. * In general, setting *iterations* and *pop_size* to larger integers is expected to improve training performance, but will require longer run times. * The *group_thresh* hyperparameter controls the adaptive burden thresholding in FIBERS, where 'None' activates this mechanism, and an integer value (e.g. 0), will enforce a specific burden threshold for all discovered bins. Related to this, *max_thresh* controls the maximum burden threshold allowed in bins, assuming *group_thresh* = None. Also related to adaptive burden thresholding, the *thresh_evolve_prob* (set between 0.0 and 1.0) can lead to better performance when set closer to 1.0, but requires significantly more runtime. * The *group_strata_min* hyperparameter (set as > 0.0 and < 0.5) enforces a minimum instance count balance between risk groups, where 0.5 describes two risk groups with the same instance count. * The *manual_bin_init* hyperparameter allows users to load an existing set of candidate bins for FIBERS to start learning from, rather than starting from randomly initialized bins. The value of using this function depends on the quality of the loaded bins, however utilizing expert (i.e. domain) knowledge to design candidate bins before running FIBERS has the potential to dramatically improve or speed up learning in larger or more complex tasks. * Lastly, *pop_clean* = 'group_strata' applies a post-hoc cleaning of the bin population, removing any remaining bins that have a risk group instance count ratio below the *group_strata_min*. | Hyperparameter | Description | Type/Options | Default Value | | -------------- | ----------- | ------------- | ------------- | | *iterations* | Number of training/optimization cycles | int | 100 | | *pop_size* | Maximum bin population size at end of each cycle | int | 50 | | *group_thresh* | Optionally specify a group threshold for bins to use | int, None | None | | *max_thresh* | Maximum group threshold for adaptive thresholding | int | 5 | | *thresh_evolve_prob* | Probability that an optimization cycle will evolve vs. deterministically select a group threshold for new bin evaluation | float | 0.5 | | *group_strata_min* | Min. cutoff for group strata sizes below which a pre-fitness penalty is applied to bin | float | 0.2 | | *manual_bin_init* | Dataframe of FIBERS-formatted bin population used to initialize the bin population | dataframe, None | None | | *pop_clean* | Optional bin population cleanup strategy | 'group_strata', None | None | * The remaining hyperparameters in the table below can largely be left to their default values by most users. | Hyperparameter | Description | Type/Options | Default Value | | -------------- | ----------- | ------------- | ------------- | | *tournament_prop* | Population proportion randomly selected for tournament | float | 0.2 | | *crossover_prob* | Uniform crossover operator probability | float | 0.5 | | *min_mutation_prob* | Minimum mutation operator probability | float | 0.1 | | *max_mutation_prob* | Maximum mutation operator probability | float | 0.3 | | *merge_prob* | Merge operator probability | float | 0.1 | | *new_gen* | Proportion of *pop_size*. Determines the number of offspring to generate each generation | float | 1.0 | | *elitism* | Proportion of *pop_size* protected from deletion | float | 0.1 | | *diversity_pressure* | Number of bin similarity clusters driving bin deletion to encourage bin diversity | int | 3 | | *min_bin_size* | Min. number of features to be specified in a bin | int | 1 | | *max_bin_size* | Max. number of features to be specified in a bin | int/None | None | | *max_bin_init_size* | Max. number of features in initialized bins | int | 10 | | *log_rank_weightning* | Optional weighting of log-rank test | 'wilcoxon', 'tarone-ware', 'peto', 'fleming-harrington', None | None | | *penalty* | Penalty multiplier applied to pre-fitness when bin’s group strata ratio goes below the minimum | float | 0.5 | | *min_thresh* | Minimum group threshold for adaptive thresholding | int | 0 | | *int_thresh* | Boolean indicating that adaptive bin thresholds are limited to positive intergers | Boolean | True | | *random_seed* | Seed value used to generate random numbers or make random selections | int, None | None | | *report* | List of integers, indicating iterations where the population will be printed out for viewing | list, None | None | | *verbose* | Boolean flag to run in 'verbose' mode - display run details | Boolean | False |