File size: 2,193 Bytes
8f2919f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import streamlit as st
import pandas as pd
import numpy as np
import pickle
import sklearn

# Load Model
with open('model_opt.pkl', 'rb') as file_1:
  model_opt = pickle.load(file_1)

def run() :
    # Membuat Title 
    st.markdown("<h1 style='text-align: center;'>Plant Nutrition Prediction</h1>", unsafe_allow_html=True)
    st.write('Page ini berisi model untuk prediksi nutrisi tanaman dengan 8 variable dan sample_type. Mohon persiapkan data terlebih dahulu sebelum melakukan prediksi')

    # Membuat Form
    with st.form(key= 'form_plant'):
        st.markdown('## **Variable**')
        v1 = st.number_input('**V1**', min_value=227.28, max_value= 678.37, value=295.16 ,step=1.,format="%.2f")
        v2 = st.number_input('**V2**', min_value=178.80, max_value= 422.81, value=204.18 ,step=1.,format="%.2f")
        v3 = st.number_input('**V3**', min_value=348.93, max_value= 722.31, value=414.38 ,step=1.,format="%.2f")
        v4 = st.number_input('**V4**', min_value=313.73, max_value= 558.50, value=370.74 ,step=1.,format="%.2f")
        v5 = st.number_input('**V5**', min_value=373.33, max_value= 721.00, value=456.03 ,step=1.,format="%.2f")
        v6 = st.number_input('**V6**', min_value=189.20, max_value= 415.37, value=226.06 ,step=1.,format="%.2f")
        v7 = st.number_input('**V7**', min_value=586.26, max_value= 853.46, value=718.83 ,step=1.,format="%.2f")
        v8 = st.number_input('**V8**', min_value=3725.66, max_value= 5086.37, value=4554.76 ,step=1.,format="%.2f")
        st.markdown('---')
        sample_type = st.selectbox('Sample Type',('lab 1','lab 2'),index=1)
        submitted = st.form_submit_button('Predict')

    # Membuat Dataframe
    data_inf = {
        'v1' : v1, 
        'v2' : v2, 
        'v3' : v3, 
        'v4' : v4, 
        'v5' : v5, 
        'v6' : v6,
        'v7' : v7, 
        'v8' : v8,
        'sample_type' : sample_type
    }
    data_inf = pd.DataFrame([data_inf])
    data_inf

    # Prediksi
    if submitted :
        # Predict using Random Forest Parameter Tuning
        y_pred_inf = model_opt.predict(data_inf)
        st.write('# **Plant Nutrition Prediction :** ',y_pred_inf[0])

if __name__ == '__main__':
    run()