-
Notifications
You must be signed in to change notification settings - Fork 64
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
Traning module revamp and several bugfixes #1442
Conversation
…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.
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
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. |
I'll take a while to review this PR, but since all builds are working, we should be good to merge. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
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)