/Personalise-Cancer-Diagnosis

Speedup the process of Diagnosis of cancer usin 9 class classification.

Primary LanguageJupyter NotebookApache License 2.0Apache-2.0

Personalise-Cancer-Diagnosis

Website Badge

Click here for awesomness.

Screens:

  1. Home:
  2. Introduction:
  3. EDA:
  4. This is little bit large file

  5. Modelling:
    • Model List
    • Hyper Parameter Tuning for each models:
    • Feature Importance & Deepdive:
    • Model Observations:
    • 3D Interactable Plots for Multiple parameters:
  6. Results:

From the expert, the time to diagnosis of cancer takes a lot of time as it includes new studies/papers, which makes this a time-consuming and exhaustive process. With machine learning, we can fast-track the majority of scenarios and help the expert get updated details.

I have used below classical machine learning algorithms for the problem.

1: Naive Bayes

2: K Nearest Neighbors

3: Logistic Regression

4: Support Vector Machine (SVM)

5: Random Forest Classifier

6: StackedClassifier (Ensemble)

7: MaxVoting Classifier (Ensemble)

As you might know, these algorithms have their limitation and advantages, I have tried to incorporate the best use of them by remediating the problems. Like

  • The curse of dimensionality has been addressed by Response Coding.

  • Class imbalance can be tuned with stratified splits and using the Class weight parameter whenever exploitable.

  • Compute intensive Hyper-Tuning with parallelism when needed.

  • At last, the beautiful interface & ton of integration of streamlit used.

Deployment

1: Download package.

PCD - Directory Structure with all files

2: Give executable rights to setup.sh and run it.

Note:

- Change values in setup.sh if you find it necessary.

- For model generation, please run the Notebook to export data models. I have added here for (lightweight) streamlit runtime.

Once complete run, check host's 8080 (default) port.