|
|
import streamlit as st |
|
|
import joblib |
|
|
|
|
|
import streamlit as st |
|
|
import joblib |
|
|
import numpy as np |
|
|
from sklearn.preprocessing import StandardScaler, LabelEncoder |
|
|
|
|
|
|
|
|
model = joblib.load('FishWeightPrediction.joblib') |
|
|
|
|
|
|
|
|
species_encoder = LabelEncoder() |
|
|
species_encoder.fit(['Bream', 'Roach', 'Whitefish', 'Parkki', 'Perch', 'Pike', 'Smelt']) |
|
|
|
|
|
|
|
|
scaler = StandardScaler() |
|
|
|
|
|
|
|
|
st.title("Fish Weight Prediction") |
|
|
|
|
|
|
|
|
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"): |
|
|
|
|
|
input_data = [[Length1, Length2, Length3, Height, Width, Species_encoded]] |
|
|
|
|
|
|
|
|
|
|
|
prediction = model.predict(input_data) |
|
|
|
|
|
|
|
|
st.write(f"Predicted Fish Weight: {prediction[0]:.2f} grams") |