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}') | |