File size: 5,182 Bytes
495da69
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import streamlit as st
import pandas as pd
import pickle

# Load  model
model_path = "pipeline.pkl" 
with open(model_path, 'rb') as file:
    model = pickle.load(file)

def run_modelling(user_input):
    prediction = model.predict(user_input)
    return prediction

# Function to get user input from the sidebar
def get_user_input():
    st.sidebar.header("Input Parameters")

    # Use a unique key by appending a suffix or index
    age = st.sidebar.number_input("Usia", min_value=0, max_value=120, value=25, key='age_input')
    
    # Select boxes with options for education, marital status, and occupation
    workclass = st.sidebar.selectbox("Jenis Pekerjaan", ["Swasta", "Wiraswasta (Tidak Terdaftar)", "Wiraswasta (Terdaftar)", 
                                                 "Pemerintah Pusat", "Pemerintah Lokal", "Pemerintah Daerah", 
                                                 "Tanpa Bayaran", "Belum Pernah Bekerja"], key='workclass_input')
    education = st.sidebar.selectbox("Pendidikan", ['Lulusan SMA', 'Sebagian Kuliah', 'Sarjana', 
                                                        'Magister', 'Diploma Vokasi', 'SMA (Kelas 11)', 
                                                        'Diploma Akademik', 'SMA (Kelas 10)', 
                                                        'SMP (Kelas 7-8)', 'Sekolah Profesional', 
                                                        'SMP (Kelas 9)', 'SMA (Kelas 12)', 'Doktor', 
                                                        'SD (Kelas 5-6)', 'SD (Kelas 1-4)', 
                                                        'TK (Taman Kanak-Kanak)'], key='education_input')
    fnlwgt = st.sidebar.number_input("Bobot Akhir", value=0, key='fnlwgt_input')
    marital_status = st.sidebar.selectbox("Status Perkawinan", ['Menikah', 'Belum Pernah Menikah', 
                                                                    'Bercerai', 'Berpisah', 'Duda/Janda', 
                                                                    'Menikah (Pasangan Tidak Ada)', 
                                                                    'Menikah (Pasangan di Militer)'], key='marital_status_input')
    occupation = st.sidebar.selectbox("Pekerjaan", ['Profesional', 'Perbaikan Kerajinan', 
                                                        'Eksekutif/Manajerial', 'Administrasi/Klerikal', 
                                                        'Penjualan', 'Layanan Lain', 
                                                        'Operator Mesin/Inspeksi', 'Transportasi/Pengemudi', 
                                                        'Pembersih/Tenaga Kasar', 'Pertanian/Perikanan', 
                                                        'Dukungan Teknis', 'Layanan Perlindungan', 
                                                        'Pelayan Rumah Tangga', 'Angkatan Bersenjata'], key='occupation_input')
    relationship = st.sidebar.selectbox("Hubungan", ["Suami","Tidak Dalam Keluarga", "Anak Sendiri", "Unmarried", "Istri", "Kerabat Lain"], key='relationship_input')
    race = st.sidebar.selectbox("Ras", ["Caucasian (Putih)" , "Afrika (Hitam)", "Asian-Pac-Islander", "Amer-Indian-Eskimo", "Lain-lain"], key='race_input')
    gender = st.sidebar.selectbox("Jenis kelamin", ['Perempuan', 'Laki-Laki'], key='gender_input')
    capital_gain = st.sidebar.number_input("Keuntungan Modal", value=0, key='capital_gain_input')
    capital_loss = st.sidebar.number_input("Kerugian Modal", value=0, key='capital_loss_input')
    hours_per_week = st.sidebar.number_input("Jam Kerja per Minggu", value=40, key='hours_per_week_input')
    native_country = st.sidebar.selectbox("Negara Asal", ['United-States', 'Cambodia', 'England', 
                                                            'Puerto-Rico', 'Canada', 'Germany', 
                                                            'India', 'Japan', 'Greece', 'South', 
                                                            'China', 'Cuba', 'Iran', 'Honduras', 
                                                            'Philippines', 'Italy', 'Poland', 
                                                            'Columbia', 'Mexico', 'Portugal', 
                                                            'South Africa', 'Taiwan', 'Thailand', 
                                                            'Yugoslavia'], key='native_country_input')

    # Create a DataFrame from the inputs 
    user_input = pd.DataFrame({
            'usia': [age],  
            'jenis_pekerjaan': [workclass],  
            'bobot_akhir': [fnlwgt],  
            'pendidikan': [education],  
            'nomor_pendidikan': [12],  
            'status_perkawinan': [marital_status],  
            'pekerjaan': [occupation],  
            'hubungan': [relationship], 
            'ras': [race], 
            'jenis_kelamin': [gender],  
            'keuntungan_modal': [capital_gain],  
            'kerugian_modal': [capital_loss],  
            'jam_kerja': [hours_per_week],  
            'negara_asal': [native_country]  
    })

    return user_input