Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import numpy as np | |
| import matplotlib.pyplot as plt | |
| import joblib | |
| # Load the pre-trained model and scaler | |
| model = joblib.load("water_quality_model.pkl") # Ensure the model file exists | |
| scaler = joblib.load("scaler.pkl") # Ensure the scaler file exists | |
| # Define water quality categories | |
| def classify_quality(score): | |
| if score >= 0.8: | |
| return "Excellent" | |
| elif score >= 0.6: | |
| return "Good" | |
| elif score >= 0.4: | |
| return "Fair" | |
| else: | |
| return "Poor" | |
| # Define the prediction function | |
| def predict_water_quality(pH, turbidity, dissolved_oxygen, nitrate_levels): | |
| # Prepare the input data | |
| data = np.array([[pH, turbidity, dissolved_oxygen, nitrate_levels]]) | |
| scaled_data = scaler.transform(data) | |
| # Predict the quality score | |
| score = model.predict(scaled_data)[0] | |
| quality = classify_quality(score) | |
| # Generate insights (graphical output) | |
| plt.figure(figsize=(6, 4)) | |
| categories = ["Excellent", "Good", "Fair", "Poor"] | |
| scores = [0.8, 0.6, 0.4, 0.2] | |
| colors = ["green", "blue", "orange", "red"] | |
| plt.bar(categories, scores, color=colors, alpha=0.7) | |
| plt.axhline(y=score, color="black", linestyle="--", label=f"Predicted Score: {score:.2f} ({quality})") | |
| plt.legend() | |
| plt.title("Water Quality Prediction") | |
| plt.xlabel("Categories") | |
| plt.ylabel("Score") | |
| plt.tight_layout() | |
| # Save the graph to a file | |
| graph_path = "water_quality_graph.png" | |
| plt.savefig(graph_path) | |
| plt.close() | |
| return quality, graph_path | |
| # Define the Gradio interface | |
| interface = gr.Interface( | |
| fn=predict_water_quality, | |
| inputs=[ | |
| gr.inputs.Number(label="pH"), | |
| gr.inputs.Number(label="Turbidity (NTU)"), | |
| gr.inputs.Number(label="Dissolved Oxygen (mg/L)"), | |
| gr.inputs.Number(label="Nitrate Levels (mg/L)"), | |
| ], | |
| outputs=[ | |
| gr.outputs.Textbox(label="Water Quality"), | |
| gr.outputs.Image(label="Water Quality Graph") | |
| ], | |
| title="Water Quality Prediction", | |
| description="Enter water parameters to predict the quality of water. Results include the classification and a visual representation of quality." | |
| ) | |
| # Launch the application | |
| if __name__ == "__main__": | |
| interface.launch() | |