HarmanpreetKaur's picture
'files'
6a9ed85
import streamlit as st
import joblib
import streamlit as st
import joblib
import numpy as np
from sklearn.preprocessing import StandardScaler, LabelEncoder
# Load your trained model (Replace 'your_model.joblib' with the actual model file)
model = joblib.load('FishWeightPrediction.joblib')
# Label Encoder for 'Species'
species_encoder = LabelEncoder()
species_encoder.fit(['Bream', 'Roach', 'Whitefish', 'Parkki', 'Perch', 'Pike', 'Smelt'])
# Standard Scaler (Assuming you have fitted a scaler before)
scaler = StandardScaler()
# Streamlit Interface
st.title("Fish Weight Prediction")
# Input ranges based on species
species = st.selectbox('Species', species_encoder.classes_)
if species == 'Bream':
Length1 = st.slider('Length1 (cm)', 20.0, 40.0)
Length2 = st.slider('Length2 (cm)', 22.0, 45.0)
Length3 = st.slider('Length3 (cm)', 25.0, 50.0)
Height = st.slider('Height (cm)', 5.0, 12.0)
Width = st.slider('Width (cm)', 3.0, 6.0)
elif species == 'Roach':
Length1 = st.slider('Length1 (cm)', 12.0, 30.0)
Length2 = st.slider('Length2 (cm)', 14.0, 32.0)
Length3 = st.slider('Length3 (cm)', 15.0, 34.0)
Height = st.slider('Height (cm)', 2.0, 8.0)
Width = st.slider('Width (cm)', 1.5, 5.0)
elif species == 'Whitefish':
Length1 = st.slider('Length1 (cm)', 15.0, 45.0)
Length2 = st.slider('Length2 (cm)', 16.0, 47.0)
Length3 = st.slider('Length3 (cm)', 17.0, 50.0)
Height = st.slider('Height (cm)', 4.0, 10.0)
Width = st.slider('Width (cm)', 2.0, 5.0)
elif species == 'Parkki':
Length1 = st.slider('Length1 (cm)', 10.0, 25.0)
Length2 = st.slider('Length2 (cm)', 11.0, 28.0)
Length3 = st.slider('Length3 (cm)', 12.0, 30.0)
Height = st.slider('Height (cm)', 1.0, 5.0)
Width = st.slider('Width (cm)', 1.0, 4.0)
elif species == 'Perch':
Length1 = st.slider('Length1 (cm)', 15.0, 40.0)
Length2 = st.slider('Length2 (cm)', 17.0, 42.0)
Length3 = st.slider('Length3 (cm)', 18.0, 45.0)
Height = st.slider('Height (cm)', 4.0, 10.0)
Width = st.slider('Width (cm)', 2.0, 5.0)
elif species == 'Pike':
Length1 = st.slider('Length1 (cm)', 20.0, 50.0)
Length2 = st.slider('Length2 (cm)', 22.0, 52.0)
Length3 = st.slider('Length3 (cm)', 25.0, 55.0)
Height = st.slider('Height (cm)', 5.0, 12.0)
Width = st.slider('Width (cm)', 3.0, 6.0)
elif species == 'Smelt':
Length1 = st.slider('Length1 (cm)', 5.0, 15.0)
Length2 = st.slider('Length2 (cm)', 6.0, 17.0)
Length3 = st.slider('Length3 (cm)', 7.0, 20.0)
Height = st.slider('Height (cm)', 1.0, 4.0)
Width = st.slider('Width (cm)', 0.5, 2.0)
Species_encoded = species_encoder.transform([species])[0]
if st.button("Predict"):
# Prepare the input data
input_data = [[Length1, Length2, Length3, Height, Width, Species_encoded]]
# Make prediction
prediction = model.predict(input_data)
# Display the prediction
st.write(f"Predicted Fish Weight: {prediction[0]:.2f} grams")