ranimeree commited on
Commit
ec9f198
·
verified ·
1 Parent(s): 7c0039e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +1 -18
app.py CHANGED
@@ -5,20 +5,9 @@ import pickle
5
  import sklearn
6
  import os
7
 
8
- print(f"Prediction environment scikit-learn version: {sklearn.__version__}")
9
 
10
- def decode_file(file_path):
11
- with open(file_path, 'rb') as file:
12
- obj = pickle.load(file)
13
- return obj
14
 
15
- # Load the model once when starting the app
16
- try:
17
- model = decode_file('model.pkl')
18
- print("Model loaded successfully")
19
- except Exception as e:
20
- print(f"Error loading model: {e}")
21
- model = None
22
 
23
  def predict(gender, age, hypertension, ever_married, work_type, heart_disease,
24
  avg_glucose_level, bmi, smoking_status, Residence_type):
@@ -26,7 +15,6 @@ def predict(gender, age, hypertension, ever_married, work_type, heart_disease,
26
  if model is None:
27
  return "Error: Model not loaded"
28
 
29
- # Mapping for categorical variables
30
  gender_mapping = {'Male': 1, 'Female': 0}
31
  hypertension_mapping = {'Yes': 1, 'No': 0}
32
  ever_married_mapping = {'Yes': 1, 'No': 0}
@@ -35,7 +23,6 @@ def predict(gender, age, hypertension, ever_married, work_type, heart_disease,
35
  smoking_status_mapping = {'formerly smoked': 3, 'smokes': 1, 'never smoked': 2, 'Unknown': 0}
36
  Residence_type_mapping = {'Urban': 1, 'Rural': 0}
37
 
38
- # Map categorical variables to their corresponding numerical values
39
  gender = gender_mapping[gender]
40
  hypertension = hypertension_mapping[hypertension]
41
  ever_married = ever_married_mapping[ever_married]
@@ -44,23 +31,19 @@ def predict(gender, age, hypertension, ever_married, work_type, heart_disease,
44
  smoking_status = smoking_status_mapping[smoking_status]
45
  Residence_type = Residence_type_mapping[Residence_type]
46
 
47
- # Create input data
48
  inputs = [gender, age, hypertension, ever_married, work_type, heart_disease,
49
  avg_glucose_level, bmi, smoking_status, Residence_type]
50
  input_labels = ['gender', 'age', 'hypertension', 'ever_married', 'work_type',
51
  'heart_disease', 'avg_glucose_level', 'bmi', 'smoking_status', 'Residence_type']
52
 
53
- # Convert to DataFrame
54
  input_df = pd.DataFrame([inputs], columns=input_labels)
55
 
56
  try:
57
- # Make prediction
58
  prediction = model.predict_proba(input_df)[0][1]
59
  return f"The probability of stroke is {prediction:.2%}"
60
  except Exception as e:
61
  return f"Error making prediction: {str(e)}"
62
 
63
- # Create the Gradio interface
64
  iface = gr.Interface(
65
  fn=predict,
66
  inputs=[
 
5
  import sklearn
6
  import os
7
 
 
8
 
 
 
 
 
9
 
10
+ model = pickle.load(model.pkl)
 
 
 
 
 
 
11
 
12
  def predict(gender, age, hypertension, ever_married, work_type, heart_disease,
13
  avg_glucose_level, bmi, smoking_status, Residence_type):
 
15
  if model is None:
16
  return "Error: Model not loaded"
17
 
 
18
  gender_mapping = {'Male': 1, 'Female': 0}
19
  hypertension_mapping = {'Yes': 1, 'No': 0}
20
  ever_married_mapping = {'Yes': 1, 'No': 0}
 
23
  smoking_status_mapping = {'formerly smoked': 3, 'smokes': 1, 'never smoked': 2, 'Unknown': 0}
24
  Residence_type_mapping = {'Urban': 1, 'Rural': 0}
25
 
 
26
  gender = gender_mapping[gender]
27
  hypertension = hypertension_mapping[hypertension]
28
  ever_married = ever_married_mapping[ever_married]
 
31
  smoking_status = smoking_status_mapping[smoking_status]
32
  Residence_type = Residence_type_mapping[Residence_type]
33
 
 
34
  inputs = [gender, age, hypertension, ever_married, work_type, heart_disease,
35
  avg_glucose_level, bmi, smoking_status, Residence_type]
36
  input_labels = ['gender', 'age', 'hypertension', 'ever_married', 'work_type',
37
  'heart_disease', 'avg_glucose_level', 'bmi', 'smoking_status', 'Residence_type']
38
 
 
39
  input_df = pd.DataFrame([inputs], columns=input_labels)
40
 
41
  try:
 
42
  prediction = model.predict_proba(input_df)[0][1]
43
  return f"The probability of stroke is {prediction:.2%}"
44
  except Exception as e:
45
  return f"Error making prediction: {str(e)}"
46
 
 
47
  iface = gr.Interface(
48
  fn=predict,
49
  inputs=[