Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Traning module revamp and several bugfixes #1442

Merged
merged 12 commits into from
Nov 1, 2021

Conversation

AlexanderGetka-cbica
Copy link
Contributor

This is a rehaul of the TrainingModule. We reimplement forward + effect size Feature selection, and add recursive feature elimination, random forest based feature selection, and RELIEF-F feature selection. We've also switched over to using openCV classifiers and now provide all SVM kernels (Linear, RBF, Polynomial, Sigmoid, Chi-squared, Histogram Intersection), SGD-based SVM, Random Forest, and Boosted Decision Tree classifiers.
It's much easier now to add feature selection and classification approaches. You just have to inherit from IClassifierStrategy or IFeatureSelectionStrategy and then add the very simple calls in the calling code to make them visible.
All of the above apply to binary classification problems. Regression or multiple-class would take some rethinking/retooling.
(There is still a lot of room for improvement in terms of how parameters are read in from the GUI and CLI. Specifically, the GUI is a mess now thanks to the new options. Next steps for this are to just generate it dynamically from the available parameters and keep all that information centralized in the TrainingModuleParameters class.

Incidental bugfixes from a few changes:
Fixes #1440
Fixes #1401
Fixes #1437

Also includes some docs changes that might need reviewing (e.g. to add citations or fix formatting)

Getkablue and others added 7 commits November 24, 2020 08:21
…g other apps

Molecular subtype, pseudoprogression, and survival all utilized functions from TrainingModule. Moved this out to a deprecated class for now
Existing slots weren't being called for this, forcing split train model directory to stay disabled.
Introduces strategy-pattern based ML module. Also fixes a bug where some conditions caused interactive segmentation to use data from a previous run, causing contaminated output.
Masks weren't getting direction changed to identity for sanity checks.
 This will get fixed soon, but right now we need the GUI to work for all cases.
@sarthakpati
Copy link
Contributor

macOS builds are failing because DCMTK is not getting found [ref]:

[SNIP!]
Cloning into 'DCMTK-source'...
fatal: unable to access 'https://git.dcmtk.org/dcmtk.git/': SSL certificate problem: certificate has expired
-- Had to git clone more than once:
          3 times.
CMake Error at DCMTK-prefix/tmp/DCMTK-gitclone.cmake:66 (message):
  Failed to clone repository: 'https://git.dcmtk.org/dcmtk.git'
[SNIP!]

I thought we already had the superbuild ready on the machine?

Changed mac self-host azure pipeline to use a static location superbuild rather than using the dynamically located one inside Phuc's old directory. Testing.
In case of permissions errors with Phuc's old account, this agent runs under my account on cbica-osx3. Eventually this should be a shared account
@AlexanderGetka-cbica
Copy link
Contributor Author

Issue on cbica-osx3 has been resolved, I think (waiting on this run to finish to confirm). If that machine turns off, I will need to be notified to turn the agent back on until we can get it installed as a service.

@sarthakpati
Copy link
Contributor

I'll take a while to review this PR, but since all builds are working, we should be good to merge.

Copy link
Contributor

@sarthakpati sarthakpati left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@sarthakpati sarthakpati merged commit 0e94b54 into CBICA:master Nov 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants