Skip to content

Commit

Permalink
Merge pull request #69 from MStarmans91/development
Browse files Browse the repository at this point in the history
Release WORC 3.6.0
  • Loading branch information
MStarmans91 committed Apr 5, 2022
2 parents b6b8fc2 + 2329968 commit 0658775
Show file tree
Hide file tree
Showing 162 changed files with 6,287 additions and 2,205 deletions.
1 change: 1 addition & 0 deletions .gitignore
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ celerybeat-schedule
.venv
env/
venv/
venv2/
ENV/
env.bak/
venv.bak/
Expand Down
19 changes: 18 additions & 1 deletion CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,26 @@ All notable changes to this project will be documented in this file.
The format is based on `Keep a Changelog <http://keepachangelog.com/>`_
and this project adheres to `Semantic Versioning <http://semver.org/>`_

3.6.0 - 2022-04-05
------------------

Added
~~~~~~~
- Bayesian optimization through SMAC as alternative to random search. Due
to specific requirements for SMAC, this is not by default installed.
Instructions to install this component are provided in the documentation.
- Besides Top_N ensembling, various other methods are added:
'ForwardSelection', 'Caruana', and 'Bagging'
- LightGBM classifier
- Light fingerprinting approach to adjust config based on dataset.

Fixed
~~~~~
- When none of the workflows to be included in the workflow converges during
retraining, add the next best performing workflows.

3.5.0 - 2021-08-18
------------
------------------

Fixed
~~~~~
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# WORC v3.5.0
# WORC v3.6.0
## Workflow for Optimal Radiomics Classification

## Information
Expand Down
2 changes: 1 addition & 1 deletion README.rst
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
WORC v3.5.0
WORC v3.6.0
===========

Workflow for Optimal Radiomics Classification
Expand Down
2 changes: 1 addition & 1 deletion WORC/IOparser/config_WORC.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@


def load_config(config_file_path):
""" Parse a WORC configuration file.
"""Parse a WORC configuration file.
Arguments:
config_file_path: path to the configuration file to be parsed.
Expand Down
50 changes: 46 additions & 4 deletions WORC/IOparser/config_io_classifier.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env python

# Copyright 2016-2021 Biomedical Imaging Group Rotterdam, Departments of
# Copyright 2016-2022 Biomedical Imaging Group Rotterdam, Departments of
# Medical Informatics and Radiology, Erasmus MC, Rotterdam, The Netherlands
#
# Licensed under the Apache License, Version 2.0 (the "License");
Expand Down Expand Up @@ -45,7 +45,7 @@ def load_config(config_file_path):
'Resampling': dict(), 'Imputation': dict(),
'Ensemble': dict(), 'Bootstrap': dict(),
'FeatPreProcess': dict(), 'Evaluation': dict(),
'OneHotEncoding': dict()}
'OneHotEncoding': dict(), 'SMAC': dict()}

settings_dict['General']['cross_validation'] =\
settings['General'].getboolean('cross_validation')
Expand Down Expand Up @@ -331,6 +331,31 @@ def load_config(config_file_path):
[float(str(item).strip()) for item in
settings['Classification']['XGB_colsample_bytree'].split(',')]

# Light GBM
settings_dict['Classification']['LightGBM_num_leaves'] =\
[int(str(item).strip()) for item in
settings['Classification']['LightGBM_num_leaves'].split(',')]

settings_dict['Classification']['LightGBM_max_depth'] =\
[int(str(item).strip()) for item in
settings['Classification']['LightGBM_max_depth'].split(',')]

settings_dict['Classification']['LightGBM_min_child_samples'] =\
[int(str(item).strip()) for item in
settings['Classification']['LightGBM_min_child_samples'].split(',')]

settings_dict['Classification']['LightGBM_reg_alpha'] =\
[float(str(item).strip()) for item in
settings['Classification']['LightGBM_reg_alpha'].split(',')]

settings_dict['Classification']['LightGBM_reg_lambda'] =\
[float(str(item).strip()) for item in
settings['Classification']['LightGBM_reg_lambda'].split(',')]

settings_dict['Classification']['LightGBM_min_child_weight'] =\
[int(str(item).strip()) for item in
settings['Classification']['LightGBM_min_child_weight'].split(',')]

# Cross validation settings
settings_dict['CrossValidation']['Type'] =\
str(settings['CrossValidation']['Type'])
Expand Down Expand Up @@ -372,9 +397,26 @@ def load_config(config_file_path):
settings_dict['HyperOptimization']['memory'] = \
str(settings['HyperOptimization']['memory'])

# Settings for SMAC
settings_dict['SMAC']['use'] =\
settings['SMAC'].getboolean('use')
settings_dict['SMAC']['n_smac_cores'] =\
int(settings['SMAC']['n_smac_cores'])
settings_dict['SMAC']['budget_type'] =\
str(settings['SMAC']['budget_type'])
settings_dict['SMAC']['budget'] =\
int(settings['SMAC']['budget'])
settings_dict['SMAC']['init_method'] =\
str(settings['SMAC']['init_method'])
settings_dict['SMAC']['init_budget'] =\
int(settings['SMAC']['init_budget'])

# Settings for ensembling
settings_dict['Ensemble']['Use'] =\
settings['Ensemble'].getint('Use')
settings_dict['Ensemble']['Method'] =\
str(settings['Ensemble']['Method'])
settings_dict['Ensemble']['Size'] =\
int(settings['Ensemble']['Size'])
#settings['Ensemble'].getint('Use')

settings_dict['Ensemble']['Metric'] =\
settings['Ensemble']['Metric']
Expand Down
Loading

0 comments on commit 0658775

Please sign in to comment.