adil9858's picture
Update app.py
42ba863 verified
import streamlit as st
import pandas as pd
import pickle
# Load the trained model using pickle
with open('naive_bayes_model.pkl', 'rb') as file:
model = pickle.load(file)
# Define the Streamlit app
def main():
st.title("Crop Recommendation Model")
st.image("logo.png", width=200)
st.write("Developed by: Adil")
st.write("This is an AI powered app for Crop Recommendations")
# Display the labels in a well-formatted box
st.info("Labels the model can predict:")
st.write(model.classes_)
st.sidebar.header("Enter Features")
# Input fields for each feature
N = st.sidebar.number_input("N ratio in soil")
P = st.sidebar.number_input("P ratio in soil")
K = st.sidebar.number_input("K ratio in soil")
temperature = st.sidebar.number_input("Temperature (°C)")
humidity = st.sidebar.number_input("Humidity (%)")
ph = st.sidebar.number_input("pH value of soil")
rainfall = st.sidebar.number_input("Rainfall (mm)")
# Make prediction
if st.sidebar.button("Predict"):
# Preprocess the input features
input_data = pd.DataFrame({'N': [N], 'P': [P], 'K': [K], 'temperature': [temperature],
'humidity': [humidity], 'ph': [ph], 'rainfall': [rainfall]})
# Make prediction
prediction = model.predict(input_data)
# Display prediction
st.header("Prediction")
st.write("Predicted crop:", prediction[0])
if __name__ == '__main__':
main()