patrickterrematte commited on
Commit
1bfa129
·
verified ·
1 Parent(s): 47dacc5

Sync App files

Browse files
Files changed (3) hide show
  1. README.md +10 -2
  2. drug_app.py +57 -0
  3. requirements.txt +2 -0
README.md CHANGED
@@ -4,10 +4,18 @@ emoji: 💊
4
  colorFrom: yellow
5
  colorTo: red
6
  sdk: gradio
7
- sdk_version: 5.3.0
8
  app_file: drug_app.py
9
  pinned: false
10
  license: apache-2.0
11
  ---
12
 
13
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
4
  colorFrom: yellow
5
  colorTo: red
6
  sdk: gradio
7
+ sdk_version: 4.16.0
8
  app_file: drug_app.py
9
  pinned: false
10
  license: apache-2.0
11
  ---
12
 
13
+ *Learn how to automate model training, evaluation, versioning, and deployment using GitHub Actions with the easiest MLOps guide available online.*
14
+
15
+ > **Follow the tutorial:** https://www.datacamp.com/tutorial/ci-cd-for-machine-learning
16
+
17
+ ## Project Description
18
+ In this project, we will be using scikit-learn pipelines to train our random forest algorithm and build a drug classifier. After training, we will automate the evaluation process using CML. Finally, we will build and deploy the web application to Hugging Face Hub.
19
+
20
+ From training to evaluation, the entire process will be automated using GitHub actions. All you have to do is push the code to your GitHub repository, and within two minutes, the model will be updated on Hugging Face with the updated app, model, and results.
21
+
drug_app.py ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import skops.io as sio
3
+
4
+ pipe = sio.load("./Model/drug_pipeline.skops", trusted=True)
5
+
6
+
7
+ def predict_drug(age, sex, blood_pressure, cholesterol, na_to_k_ratio):
8
+ """Predict drugs based on patient features.
9
+
10
+ Args:
11
+ age (int): Age of patient
12
+ sex (str): Sex of patient
13
+ blood_pressure (str): Blood pressure level
14
+ cholesterol (str): Cholesterol level
15
+ na_to_k_ratio (float): Ratio of sodium to potassium in blood
16
+
17
+ Returns:
18
+ str: Predicted drug label
19
+ """
20
+ features = [age, sex, blood_pressure, cholesterol, na_to_k_ratio]
21
+ predicted_drug = pipe.predict([features])[0]
22
+
23
+ label = f"Predicted Drug: {predicted_drug}"
24
+ return label
25
+
26
+
27
+ inputs = [
28
+ gr.Slider(15, 74, step=1, label="Age"),
29
+ gr.Radio(["M", "F"], label="Sex"),
30
+ gr.Radio(["HIGH", "LOW", "NORMAL"], label="Blood Pressure"),
31
+ gr.Radio(["HIGH", "NORMAL"], label="Cholesterol"),
32
+ gr.Slider(6.2, 38.2, step=0.1, label="Na_to_K"),
33
+ ]
34
+ outputs = [gr.Label(num_top_classes=5)]
35
+
36
+ examples = [
37
+ [30, "M", "HIGH", "NORMAL", 15.4],
38
+ [35, "F", "LOW", "NORMAL", 8],
39
+ [50, "M", "HIGH", "HIGH", 34],
40
+ ]
41
+
42
+
43
+ title = "Drug Classification"
44
+ description = "Enter the details to correctly identify Drug type?"
45
+ article = "This app is a part of the **[Beginner's Guide to CI/CD for Machine Learning](https://www.datacamp.com/tutorial/ci-cd-for-machine-learning)**. It teaches how to automate training, evaluation, and deployment of models to Hugging Face using GitHub Actions."
46
+
47
+
48
+ gr.Interface(
49
+ fn=predict_drug,
50
+ inputs=inputs,
51
+ outputs=outputs,
52
+ examples=examples,
53
+ title=title,
54
+ description=description,
55
+ article=article,
56
+ theme=gr.themes.Soft(),
57
+ ).launch()
requirements.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ scikit-learn
2
+ skops