Feature Analysis Explorer (FAE) can help researchers develop a classification model with comparison among different methods. This project was inspired on the Radiomics, and provides some functions to help extract features with batch process.
If you publish any work which uses this package, I will appreciate that you could cite the following publication: Song Y, Zhang YD, Yan X, Liu H, Zhou M, Hu B, Yang G, Computer-aided diagnosis of prostate cancer using a deep convolutional neural network from multiparametric MRI. J Magn Reson Imaging. 2018 Apr 16. doi: 10.1002/jmri.26047.
Welcome any issues and PR.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
The below modules must be installed first to make the FAE work.
- pyradiomics
- pandas
- numpy
- scikit-learn
- scipy
- matplotlib (seaborn)
- PyQt5
Just clone it by typing in:
git clone https://github.com/salan668/FAE.git
If you would like to use FAE in any project, please add the path in your system envirement. A trick method is to create a .pth file in the site-packages folder (\Lib\site-packages) and add a path that point to the root folder of the FAE.
TODO
- DataContainer
- DataContainer. The structure to contain the data, which also includes methods like saving/loading.
- DataSeparate. Including functions to separate data into training part and testing part.
- DataBalance, The class to deal with data imbalance. Now we provided Under-sampling, Over-sampling, and SMOTE method.
- Feature Analysis
- Normalization. To Normalize the data
- DimensionReduction. To reduce the dimension, including PCA.
- Classifier. The classifier to develop the model, including SVM, AE, Random Forests, LDA.
- CrossValidation. The CV model to estimate the model. Return the metrics
- FeatureSelector. The class to select features, which including 1) remove non-useful features, e.g. the VolumnNum; 2) different method to select features, like ANOVA, RFE, Relief.
- FeturePipeline. The class to estimate the model with different feature selected method and classifier.
- Image2Feature
- RadiomicsFeatureExtractor. This class help extract features from image and ROI with batch process. This class should be more "smart" in the future.
- Visulization.
- DrawDoubleLine. This function helps draw doulbe-y plot. e.g. plot accuracy and error against the number of iterations.
- DrawROCList. This function helps draw different ROC curves. AUC will be calculated automaticly and labeled on the legend.
- FeatureRelationship. This function helps draw the distribution of the values of different features. I can only show at most 3 features in one figure.
- FeatureSort. This function helps draw the features and the weights of them on the classifiction model.
- PlotMetricVsFeatureNumber. This function helps draw the AUC / Accuracy / other metrics against the number of chosen features. This can help find the adaptive number of the features.
TODO
This project is licensed under the GPL 3.0 License - see the LICENSE.md file for details
- Contributor:
- Guang Yang
- Yi-lai Pei
- Jing Zhang
- jmtaysom
- Demo data support.
- Yu-dong Zhang, Xu Yan.