emmaeasy's picture
Upload 5 files
229359b verified
Raw
History Blame Contribute Delete
1.64 kB
import gradio as gr
import pandas as pd
import pickle
# Load model
with open("random_forest_model.pkl", "rb") as f:
loaded_model = pickle.load(f)
# Load scaler
with open("standard_scaler.pkl", "rb") as f:
loaded_scaler = pickle.load(f)
def predict_crop(N, P, K, temperature, humidity, ph, rainfall):
input_data = pd.DataFrame(
[[N, P, K, temperature, humidity, ph, rainfall]],
columns=[
"N",
"P",
"K",
"temperature",
"humidity",
"ph",
"rainfall",
],
)
scaled_input = loaded_scaler.transform(input_data)
prediction = loaded_model.predict(scaled_input)[0]
return f"🌱 Recommended Crop: {prediction}"
iface = gr.Interface(
fn=predict_crop,
inputs=[
gr.Number(label="Nitrogen (N)", minimum=0, maximum=140, value=50),
gr.Number(label="Phosphorus (P)", minimum=5, maximum=145, value=50),
gr.Number(label="Potassium (K)", minimum=5, maximum=205, value=50),
gr.Number(label="Temperature (°C)", minimum=8.8, maximum=43.7, value=25),
gr.Number(label="Humidity (%)", minimum=14.2, maximum=100, value=70),
gr.Number(label="pH", minimum=3.5, maximum=9.9, value=6.5),
gr.Number(label="Rainfall (mm)", minimum=20.2, maximum=298.6, value=100),
],
outputs=gr.Textbox(label="Prediction"),
title="🌾 Crop Recommendation System",
description="Enter soil nutrients and environmental parameters to receive a recommended crop.",
)
if __name__ == "__main__":
iface.launch()