File size: 2,425 Bytes
bc9b26f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import streamlit as st
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import plotly.express as px
from PIL import Image
import numpy as np
import joblib
import json

# Load All Files
with open('model_lin_reg.pkl', 'rb') as file_1:
  model_lin_reg = joblib.load(file_1)

with open('pipeline.pkl', 'rb') as file_2:
  preprocessor = joblib.load(file_2)

def run():
    # Membuat Form
    with st.form(key='form_parameters'):
        income = st.number_input('Average Income', min_value=0, max_value=60, value=25, step=1)
        age = st.number_input('House Age', min_value=0, max_value=60, value=25, step=1)
        rooms = st.number_input('Number of Rooms', min_value=50, max_value=150, value=70)
        bedrooms = st.number_input('Number of Bedrooms', min_value=50, max_value=150, value=70)
        population = st.number_input('Area Population', min_value=50, max_value=150, value=70)
        # price = st.slider('Price', 0, 100000000, 0)
        #price = st.number_input('Price', min_value=0, max_value=1000000000, value=0)
        st.markdown('---')

        #attacking_work_rate = st.selectbox('AttackingWorkrate', ('Low', 'Medium', 'High'), index=1)
        #defensive_work_rate = st.selectbox('DefensiveWorkRate', ('Low', 'Medium', 'High'), index=1)
        st.markdown('---')

        #pace = st.number_input('Pace', min_value=0, max_value=100, value=50)
        #shooting = st.number_input('Shooting', min_value=0, max_value=100, value=50)
        #passing = st.number_input('Passing', min_value=0, max_value=100, value=50)
        #dribbling = st.number_input('Dribbling', min_value=0, max_value=100, value=50)
        #defending = st.number_input('Defending', min_value=0, max_value=100, value=50)
        #physicality = st.number_input('Physicality', min_value=0, max_value=100, value=50)
        st.markdown('---')

        submitted = st.form_submit_button('Predict')

    data_inf = {
        'Income': income, 
        'Age': age,
        'Rooms': rooms,
        'Bedrooms': bedrooms,
        'Population': population
    }

    data_inf = pd.DataFrame([data_inf])
    st.dataframe(data_inf)

    if submitted:
        # Feature Preprocessing
        X_inf = preprocessor.transform(data_inf)

        # Predict using Linear regression
        y_pred_inf = model_lin_reg.predict(X_inf)

        st.write('# House Price : ', str(int(y_pred_inf)))

if __name__ == '__main__':
    run()