File size: 2,968 Bytes
6a9ed85
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
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")