William14045 commited on
Commit
7783824
1 Parent(s): e3fd3c7

uploading requirement for modelling

Browse files
Files changed (5) hide show
  1. app.py +10 -0
  2. function.py +32 -0
  3. model_RF_under.joblib +3 -0
  4. predict.py +58 -0
  5. requirements.txt +8 -0
app.py ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import eda
3
+ import predict
4
+
5
+ navigation = st.sidebar.selectbox('pilih halaman :', ('EDA',"Prediction"))
6
+
7
+ if navigation =='EDA':
8
+ eda.run()
9
+ else:
10
+ predict.run()
function.py ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Fungsi untuk mengganti nama kota menjadi tier
2
+ def map_to_tier(city):
3
+ if city in ['Ahmedabad', 'Bengaluru', 'Chennai', 'Delhi', 'Hyderabad', 'Kolkata', 'Mumbai', 'Pune']:
4
+ return 'Tier 1'
5
+ elif city in ['Agra', 'Ajmer', 'Aligarh', 'Amravati', 'Amritsar', 'Anand', 'Asansol', 'Aurangabad', 'Bareilly', 'Belagavi',
6
+ 'Brahmapur', 'Bhavnagar', 'Bhiwandi', 'Bhopal', 'Bhubaneswar', 'Bikaner', 'Bilaspur','Bokaro',
7
+ 'Burdwan' , 'Chandigarh', 'Coimbatore', 'Cuttack', 'Dahod', 'Dehradun', 'Dombivli', 'Dhanbad', 'Bhilai',
8
+ 'Durgapur', 'Erode', 'Faridabad', 'Ghaziabad', 'Gorakhpur', 'Guntur', 'Gurgaon', 'Guwahati', 'Gwalior', 'Hamirpur',
9
+ 'Hubballi-Dharwad', 'Indore', 'Jabalpur', 'Jaipur', 'Jalandhar', 'Jalgaon', 'Jammu','Jamshedpur', 'Jhansi', 'Jodhpur',
10
+ 'Kalaburagi', 'Kakinada', 'Kannur', 'Kanpur', 'Karnal', 'Kochi', 'Kolhapur', 'Kollam', 'Kozhikode', 'Kurnool', 'Ludhiana',
11
+ 'Lucknow', 'Madurai', 'Malappuram', 'Mathura', 'Mangaluru', 'Meerut', 'Moradabad', 'Mysuru', 'Nagpur', 'Nanded', 'Nadiad',
12
+ 'Nashik', 'Nellore', 'Noida', 'Patna', 'Puducherry', 'Purulia', 'Prayagraj', 'Raipur', 'Rajkot', 'Rajamahendravaram',
13
+ 'Ranchi', 'Rourkela', 'Ratlam', 'Salem', 'Sangli', 'Shimla', 'Siliguri', 'Solapur', 'Srinagar', 'Surat', 'Thanjavur',
14
+ 'Thiruvananthapuram', 'Thrissur', 'Tiruchirappalli', 'Tirunelveli', 'Tiruvannamalai', 'Ujjain', 'Vijayapura',
15
+ 'Vadodara', 'Varanasi', 'Vasai-Virar', 'Vijayawada', 'Visakhapatnam', 'Vellore','Warangal']:
16
+ return 'Tier 2'
17
+ else:
18
+ return 'Tier 3'
19
+
20
+
21
+ # Fungsi untuk menggolongkan negara bagian berdasarkan wilayah
22
+ def classify_region(state):
23
+ if state in ['Haryana', 'Himachal_Pradesh', 'Jharkhand', 'Punjab', 'Uttar_Pradesh','Uttar_Pradesh[5]', 'Uttarakhand','Jammu_and_Kashmir','Delhi','Chandigarh']:
24
+ return 'North'
25
+ elif state in ['Andhra_Pradesh', 'Karnataka', 'Kerala', 'Tamil_Nadu', 'Telangana']:
26
+ return 'South'
27
+ elif state in ['Goa', 'Gujarat', 'Maharashtra', 'Rajasthan','Madhya_Pradesh']:
28
+ return 'West'
29
+ elif state in ['Arunachal Pradesh', 'Assam', 'Bihar', 'Chhattisgarh', 'Manipur', 'Meghalaya', 'Mizoram', 'Nagaland', 'Odisha', 'Sikkim', 'Tripura', 'West_Bengal','Puducherry']:
30
+ return 'East'
31
+ else:
32
+ return 'East'
model_RF_under.joblib ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5958c757819b1e7b251021a0c218e8c25afa93ae3e16dbdab52d3fa953ac5fef
3
+ size 97973337
predict.py ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+ import numpy as np
4
+ from joblib import load
5
+ import function
6
+
7
+
8
+ # Load All Files
9
+ # Muat model menggunakan joblib
10
+ loaded_model_RF = load('model_RF_under.joblib')
11
+ preproc = load('preprocessor.joblib')
12
+
13
+
14
+ def run():
15
+ with st.form('key=loan_default_prediction'):
16
+ Income = st.slider('Income', 10000,10000000,1000000)
17
+ Age = st.number_input('Age', min_value=20, max_value=80, value=30, step=1)
18
+ Experience = st.slider('Experience', 0, 20, 5)
19
+ Married_Single = st.radio('Married/Single', ('single','married'), index=1)
20
+ st.markdown('---')
21
+
22
+ House_Ownership = st.radio('House_Ownership',('rented','norent_noown','owned'), index=1)
23
+ Car_Ownership = st.selectbox('Car_Ownership', ('no','yes'), index=0)
24
+ Profession = st.text_input('Profession','')
25
+ CITY = st.selectbox('CITY', ('Rewa','Parbhani','Alappuzha','Bhubaneswar','Tiruchirappalli[10]','Jalgaon','Tiruppur','Jamnagar','Kota[6]','Karimnagar','Hajipur[31]','Adoni','Erode[17]','Kollam','Madurai','Anantapuram[24]','Kamarhati','Bhusawal','Sirsa','Amaravati','Secunderabad','Ahmedabad','Ajmer','Ongole','Miryalaguda','Ambattur','Indore','Pondicherry','Shimoga','Chennai','Gulbarga','Khammam','Saharanpur','Gopalpur','Amravati','Udupi','Howrah','Aurangabad[39]','Hospet','Shimla','Khandwa','Bidhannagar','Bellary','Danapur','Purnia[26]','Bijapur','Patiala','Malda','Sagar','Durgapur','Junagadh','Singrauli','Agartala','Thanjavur','Hindupur','Naihati','North_Dumdum','Panchkula','Anantapur','Serampore','Bathinda','Nadiad','Kanpur','Haridwar','Berhampur','Jamshedpur','Hyderabad','Bidar','Kottayam','Solapur','Suryapet','Aizawl','Asansol','Deoghar','Eluru[25]','Ulhasnagar','Aligarh','South_Dumdum','Berhampore','Gandhinagar','Sonipat','Muzaffarpur','Raichur','Rajpur_Sonarpur','Ambarnath','Katihar','Kozhikode','Vellore','Malegaon','Kochi','Nagaon','Nagpur','Srinagar','Davanagere','Bhagalpur','Siwan[32]','Meerut','Dindigul','Bhatpara','Ghaziabad','Kulti','Chapra','Dibrugarh','Panihati','Bhiwandi','Morbi','Kalyan-Dombivli','Gorakhpur','Panvel','Siliguri','Bongaigaon','Patna','Ramgarh','Ozhukarai','Mirzapur','Akola','Satna','Motihari[34]','Jalna','Jalandhar','Unnao','Karnal','Cuttack','Proddatur','Ichalkaranji','Warangal[11][12]','Jhansi','Bulandshahr','Narasaraopet','Chinsurah','Jehanabad[38]','Dhanbad','Gudivada','Gandhidham','Raiganj','Kishanganj[35]','Varanasi','Belgaum','Tirupati[21][22]','Tumkur','Coimbatore','Kurnool[18]','Gurgaon','Muzaffarnagar','Aurangabad','Bhavnagar','Arrah','Munger','Tirunelveli','Mumbai','Mango','Nashik','Kadapa[23]','Amritsar','Khora,_Ghaziabad','Ambala','Agra','Ratlam','Surendranagar_Dudhrej','Delhi_city','Bhopal','Hapur','Rohtak','Durg','Korba','Bangalore','Shivpuri','Thrissur','Vijayanagaram','Farrukhabad','Nangloi_Jat','Madanapalle','Thoothukudi','Nagercoil','Gaya','Chandigarh_city','Jammu[16]','Kakinada','Dewas','Bhalswa_Jahangir_Pur','Baranagar','Firozabad','Phusro','Allahabad','Guna','Thane','Etawah','Vasai-Virar','Pallavaram','Morena','Ballia','Surat','Burhanpur','Phagwara','Mau','Mangalore','Alwar','Mahbubnagar','Maheshtala','Hazaribagh','Bihar_Sharif','Faridabad','Lucknow','Tenali','Barasat','Amroha','Giridih','Begusarai','Medininagar','Rajahmundry[19][20]','Saharsa[29]','New_Delhi','Bhilai','Moradabad','Machilipatnam','Mira-Bhayandar','Pali','Navi_Mumbai','Mehsana','Imphal','Kolkata','Sambalpur','Ujjain','Madhyamgram','Jabalpur','Jamalpur[36]','Ludhiana','Bareilly','Gangtok','Anand','Dehradun','Pune','Satara','Srikakulam','Raipur','Jodhpur','Darbhanga','Nizamabad','Nandyal','Dehri[30]','Jorhat','Ranchi','Kumbakonam','Guntakal','Haldia','Loni','Pimpri-Chinchwad','Rajkot','Nanded','Noida','Kirari_Suleman_Nagar','Jaunpur','Bilaspur','Sambhal','Dhule','Rourkela','Thiruvananthapuram','Dharmavaram','Nellore[14][15]','Visakhapatnam[4]','Karawal_Nagar','Jaipur','Avadi','Bhimavaram','Bardhaman','Silchar','Buxar[37]','Kavali','Tezpur','Ramagundam[27]','Yamunanagar','Sri_Ganganagar','Sasaram[30]','Sikar','Bally','Bhiwani','Rampur','Uluberia','Sangli-Miraj_&_Kupwad','Hosur','Bikaner','Shahjahanpur','Sultan_Pur_Majra','Vijayawada','Bharatpur','Tadepalligudem','Tinsukia','Salem','Mathura','Guntur[13]','Hubli–Dharwad','Guwahati','Chittoor[28]','Tiruvottiyur','Vadodara','Ahmednagar','Fatehpur','Bhilwara','Kharagpur','Bettiah[33]','Bhind','Bokaro','Karaikudi','Raebareli','Pudukkottai','Udaipur','Mysore[7][8][9]','Panipat','Latur','Tadipatri','Bahraich','Orai','Raurkela_Industrial_Township','Gwalior','Katni','Chandrapur','Kolhapur'), index=1)
26
+ STATE = st.selectbox('STATE',('Madhya_Pradesh','Maharashtra','Kerala','Odisha','Tamil_Nadu','Gujarat','Rajasthan','Telangana','Bihar','Andhra_Pradesh','West_Bengal','Haryana','Puducherry','Karnataka','Uttar_Pradesh','Himachal_Pradesh','Punjab','Tripura','Uttarakhand','Jharkhand','Mizoram','Assam','Jammu_and_Kashmir','Delhi','Chhattisgarh','Chandigarh','Uttar_Pradesh[5]','Manipur','Sikkim'),index=1)
27
+ CURRENT_JOB_YRS = st.slider('CURRENT_JOB_YRS',0,15,5)
28
+ CURRENT_HOUSE_YRS = st.slider('CURRENT_HOUSE_YRS', 10,15,12)
29
+ submitted = st.form_submit_button('Predict')
30
+
31
+ data_inf = {
32
+ 'Income': Income,
33
+ 'Age': Age,
34
+ 'Experience': Experience,
35
+ 'Married/Single': Married_Single,
36
+ 'House_Ownership': House_Ownership,
37
+ 'Profession': Profession,
38
+ 'Car_Ownership': Car_Ownership,
39
+ 'CITY': CITY,
40
+ 'STATE': STATE,
41
+ 'CURRENT_JOB_YRS': CURRENT_JOB_YRS,
42
+ 'CURRENT_HOUSE_YRS': CURRENT_HOUSE_YRS,
43
+ }
44
+
45
+ data_inf = pd.DataFrame([data_inf])
46
+ data_inf['CITY'] = data_inf['CITY'].apply(lambda x: function.map_to_tier(x))
47
+ data_inf['STATE'] = data_inf['STATE'].apply(lambda x: function.classify_region(x))
48
+ final_df_inf = preproc.transform(data_inf)
49
+ final_df_inf
50
+
51
+ if submitted:
52
+ y_pred_inf = loaded_model_RF.predict(final_df_inf)
53
+ y_pred_inf = np.where(y_pred_inf >= 0.5 , 'Default' , 'Not Default')
54
+ st.write('Customer will be : ', str(y_pred_inf))
55
+
56
+
57
+ if __name__ == '__main__':
58
+ run()
requirements.txt ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ streamlit
2
+ pandas
3
+ seaborn
4
+ matplotlib
5
+ plotly
6
+ Pillow
7
+ numpy
8
+ scikit-learn==1.2.2