From d6131b21394a6a2dd408361092eb06642dccf783 Mon Sep 17 00:00:00 2001 From: Valerio Maggio <1908453+leriomaggio@users.noreply.github.com> Date: Mon, 2 Sep 2024 17:53:40 +0100 Subject: [PATCH] author, and feedback section + css tweaks --- assets/css/style.css | 11 +- assets/imgs/author.jpg | Bin 0 -> 43785 bytes index.html | 339 +++++++++++++++++++++++++---------------- 3 files changed, 219 insertions(+), 131 deletions(-) create mode 100644 assets/imgs/author.jpg diff --git a/assets/css/style.css b/assets/css/style.css index 5094778..ef33a6f 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -52,6 +52,10 @@ main .container .row { max-width: 40px; } +.bio { + font-size: 1rem; +} + /* Quote Style Adapted from: https://codepen.io/Rases/pen/pogVVwp @@ -85,12 +89,13 @@ blockquote.quote:after{ font-family: FontAwesome; position: absolute; font-size:30px; - /*background-color: #f3ec78;*/ + background-color: #f3ec78; background-size: 100%; -webkit-background-clip: text; -moz-background-clip: text; -moz-text-fill-color: transparent; -webkit-text-fill-color: transparent; + } blockquote.EN:before{ @@ -99,7 +104,7 @@ blockquote.EN:before{ margin-right: -20px; right: 100%; width: 5%; - background-image: linear-gradient(45deg, #F79763, #CC677B); + background-image: linear-gradient(to bottom, #F79763, #CC677B); } blockquote.EN:after{ @@ -109,6 +114,6 @@ blockquote.EN:after{ top: auto; bottom: -20px; width: 5%; - background-image: linear-gradient(45deg, #53BEA9, #96D195); + background-image: linear-gradient(to bottom, #53BEA9, #96D195); } diff --git a/assets/imgs/author.jpg b/assets/imgs/author.jpg new file mode 100644 index 0000000000000000000000000000000000000000..734cb9a4100d03b7c0eca55fc1fe8860977837b6 GIT binary patch literal 43785 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 75698f2..94ba023 100644 --- a/index.html +++ b/index.html @@ -10,6 +10,7 @@ + @@ -76,140 +77,222 @@

Welcome!

-
-
-

Heart Disease Study πŸ«€

-

We will use the full version of the Heart Disease dataset, - as available on the - UCI ML - repository.

-

The database is the result of a study for the diagnosis of coronary artery disease, - as described in this - paper. -

-

The dataset contains data as collected by patients in four different hospitals, in 1988:

-
    -
  • Cleveland Clinic in Cleveland, Ohio (303 patients);
  • -
  • Hungarian Institute of Cardiology in Budapest, Hungary (425 patients);
  • -
  • Veterans Administration Medical Center in Long Beach, California (200 patients)
  • -
  • University Hospitals in Zurich and Basel (143 patients).
  • -
-

πŸ’‘Each hospital will be mapped to a single PySyft Datasite, - hosting their own version of the Heart Study Data data. - We will pretend that these data were not public - as it is most likely the case - with real medical data. Therefore our main focus in the tutorial - will be to learn how to work with non-public data, while maintaining privacy. -

+
+
+
+

Heart Disease Study πŸ«€

+

We will use the full version of the Heart Disease dataset, + as available on the + UCI ML + repository.

+

The database is the result of a study for the diagnosis of coronary artery disease, + as described in this + paper. +

+

The dataset contains data as collected by patients in four different hospitals, in 1988:

+
    +
  • Cleveland Clinic in Cleveland, Ohio (303 patients);
  • +
  • Hungarian Institute of Cardiology in Budapest, Hungary (425 patients);
  • +
  • Veterans Administration Medical Center in Long Beach, California (200 patients)
  • +
  • University Hospitals in Zurich and Basel (143 patients).
  • +
+

πŸ’‘Each hospital will be mapped to a single PySyft Datasite, + hosting their own version of the Heart Study Data data. + We will pretend that these data were not public - as it is most likely the case + with real medical data. Therefore our main focus in the tutorial + will be to learn how to work with non-public data, while maintaining privacy. +

+
-
- -
-
-

What you will learn πŸŽ“

- In this tutorial, you will learn how to… -
    -
  1. work remotely with non-public medical data.
  2. -
  3. use PySyft to run Machine learning experiments on non-public and - distributed medical datasets.
  4. -
  5. take advantage of getting access to multiple medical datasets for better - Machine learning modelling.
  6. -
+ +
+
+
+

What you will learn πŸŽ“

+ In this tutorial, you will learn how to… +
    +
  1. work remotely with non-public medical data.
  2. +
  3. use PySyft to run Machine learning experiments on non-public and + distributed medical datasets.
  4. +
  5. take advantage of getting access to multiple medical datasets for better + Machine learning modelling.
  6. +
+
-
-
-
-

Materials πŸ§‘β€πŸ’»

-

- The tutorial is organised into multiple Jupyter notebooks that - will guide you to the different steps of our Machine learning experiment, - using PySyft. -

-
    -
  • - 🧭 - (Intro) Setup Datasites -

    - - This introductory notebook will help you to get your bearings with - the data, and the PySyft Datasites. - -

    -
  • -
  • πŸ“Š - - 1. Compare Demographics -

    - - In this notebook we will start our data science journey, - analysing the distribution of demographics in the data. - Why this is interesting ? - We will learn how to get our first insights about the data, - without ever seeing the data! + +

    +
    +
    +

    Materials πŸ§‘β€πŸ’»

    +

    + The tutorial is organised into multiple Jupyter notebooks that + will guide you to the different steps of our Machine learning experiment, + using PySyft. +

    +
      +
    • + 🧭 + (Intro) Setup Datasites +

      + + This introductory notebook will help you to get your bearings with + the data, and the PySyft Datasites. + +

      +
    • +
    • πŸ“Š + + 1. Compare Demographics +

      + + In this notebook we will start our data science journey, + analysing the distribution of demographics in the data. + Why this is interesting ? + We will learn how to get our first insights about the data, + without ever seeing the data! + +

      +
    • +
    • πŸ€– + 2. ML Model Training Experiment: +

      + + Let's use PySyft to train a Machine learning classifier, + using data across the four distributed datasites, while also + maintain the non-public data private! + (This is going to be our 🌟 research experiment with PySyft!) + +

      +
    • +
    • πŸ“ + 3. ML Model Evaluation Experiment: +

      + It's now time to assess the performance of the trained classifiers + on each remote datasite. We will gather evaluation metrics for + the trained models, and compare the results! + We will learn how to create specialised Syft function + that guarantees control over the input/output policies of our + remote code execution. + (This will be our 🌟🌟 research experiment with PySyft!) -

      -
    • -
    • πŸ€– - 2. ML Model Training Experiment: -

      - - Let's use PySyft to train a Machine learning classifier, - using data across the four distributed datasites, while also - maintain the non-public data private! - (This is going to be our 🌟 research experiment with PySyft!) +

      +
    • +
    • πŸ—³οΈ + 4. Ensemble Learning Experiment : +

      + + In this last step, we will use an Ensemble as a strategy + to combine the multiple ML models trained on the four + medical datasets. + In this way, we will be able to use a ML model that has seen + 4x more data to generate our heart disease prediction! + (This will be our 🌟🌟🌟 and last research experiment with PySyft!) -

      -
    • -
    • πŸ“ - 3. ML Model Evaluation Experiment: -

      - It's now time to assess the performance of the trained classifiers - on each remote datasite. We will gather evaluation metrics for - the trained models, and compare the results! - We will learn how to create specialised Syft function - that guarantees control over the input/output policies of our - remote code execution. - (This will be our 🌟🌟 research experiment with PySyft!) - -

      -
    • -
    • πŸ—³οΈ - 4. Ensemble Learning Experiment : -

      - - In this last step, we will use an Ensemble as a strategy - to combine the multiple ML models trained on the four - medical datasets. - In this way, we will be able to use a ML model that has seen - 4x more data to generate our heart disease prediction! - (This will be our 🌟🌟🌟 and last research experiment with PySyft!) - -

    • -
    +

  • +
+
-
-
-
-

Ready to get started ? -

-

Everything you need to start working with the tutorial is available on - GitHub! - You can start by cloning the repo, and follow the instructions in the - - README - file: -

-
-$ git clone https://github.com/openmined/syft-heart-disease-tutorial
-
-                
+ +
+ +
+
+

Ready to get started ? +

+

Everything you need to start working with the tutorial is available on + GitHub! + You can start by cloning the repo, and follow the instructions in the + + README + file: +

+
+$ git clone https://github.com/openmined/syft-heart-disease-tutorial
+
-
+ +
+
+
+
+
Any question, or feedback ?
+ +

For any question, feedback, or support about + the tutorial material, or PySyft, please feel free to + use one of the options below: +

+ + #support channel + + + Open an issue + +
+
+
+
+
+
This tutorial was authored by
+
Valerio Maggio
+
+
+ Valerio Maggio +
+
+
Hey there! πŸ‘‹ + I am Valerio, Computer Geek, Machine learners, Community Advocate and Education Lead at OpenMined! + I am also fellow of the + + Software Sustainability Institute, and a long-standing member of the Python community. + + +
+
+
+
+
+ +
+