Spaces:
Sleeping
Sleeping
import streamlit as st | |
import joblib | |
import numpy as np | |
from sklearn.preprocessing import StandardScaler | |
loaded_model = joblib.load('crop_knn(1).pkl') | |
encoder = joblib.load('encoder.pkl') | |
st.title('Prédiction de la production agricole') | |
# Entrées utilisateur avec sliders | |
st.write('### Entrez les valeurs des caractéristiques :') | |
# Définir les valeurs maximales pour chaque caractéristique | |
max_values = {'N': 400, 'P': 200, 'K': 600, 'temperature': 50, 'humidity': 100, 'ph': 14, 'rainfall': 500} | |
# Créer des sliders pour chaque caractéristique | |
user_inputs = {} | |
for feature in max_values: | |
user_inputs[feature] = st.slider(f'{feature.capitalize()}', min_value=0.1, max_value=float(max_values[feature]), value=(float(max_values[feature]) + 1)/2, step=0.1) | |
# Transformation des entrées en tableau numpy | |
input_data = np.array([[user_inputs['N'], user_inputs['P'], user_inputs['K'], user_inputs['temperature'], user_inputs['humidity'], user_inputs['ph'], user_inputs['rainfall']]]) | |
# Normalisation des données d'entrée | |
scaler = StandardScaler() | |
scaler.fit(input_data) | |
input_data_scaled = scaler.transform(input_data) | |
# Prédiction de la classe de production agricole | |
production_class = loaded_model.predict(input_data_scaled)[0] | |
prediction_probabilities = loaded_model.predict_proba(input_data_scaled)[0] | |
# Inverse transformation des probabilités | |
inverse_transformed_probabilities = scaler.inverse_transform([prediction_probabilities]) | |
# Affichage des probabilités inversées | |
st.write('### Probabilités inversées pour chaque classe :') | |
for i in range(len(inverse_transformed_probabilities[0])): | |
st.write(f'- Classe {i}: {inverse_transformed_probabilities[0][i]:.2f}') | |
# Affichage de la classe prédite avec la plus haute probabilité | |
predicted_class = loaded_model.predict(input_data_scaled)[0] | |
predicted_species = iris.target_names[predicted_class] | |
st.write(f'### Classe prédite avec la plus haute probabilité : {predicted_species}') | |