Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import numpy as np | |
| import Ulity as ult | |
| import sklearn | |
| st.title('HOUSE PRICE PREDICTION APPLICATION') | |
| vung = st.sidebar.selectbox('Select region',['Việt Nam','Hà Nội','TP Hồ Chí Minh']) | |
| method = st.sidebar.radio('Select treatment option:',['Alternative 1','Alternative 2(Most Recommended)','Alternative 3','Alternative 4']) | |
| #Chọn phương án xử lý:',['Phương án 1','Phương án 2','Phương án 3','Phương án 4'] | |
| if vung=='Hà Nội':model = st.sidebar.selectbox("Select regression model",['XGBoost Regression']) | |
| elif vung=="TP Hồ Chí Minh": | |
| model = st.sidebar.selectbox("Select regression model",['RandomForest Regression']) | |
| else: | |
| model = st.sidebar.selectbox("Select regression model",['Catboost Regression']) | |
| button = st.sidebar.button('Prediction') | |
| col1, col2, col3 = st.columns(3) | |
| with col1: | |
| loaibds = st.selectbox('Type of real estate',['Nhà liền kề, biệt thự','Nhà mặt tiền','Nhà trong hẻm'])#Loại bất động sản' | |
| loaibds_value = ['Nhà liền kề, biệt thự', 'Nhà mặt tiền', 'Nhà trong hẻm'].index(loaibds) | |
| with col2: | |
| huong = st.selectbox('The direction of the house',['Bắc','Nam','Tây','Tây Bắc','Tây Nam','Đông','Đông Bắc','Đông Nam']) | |
| huong_value = ['Bắc','Nam','Tây','Tây Bắc','Tây Nam','Đông','Đông Bắc','Đông Nam'].index(huong) | |
| with col3: | |
| phaply = st.selectbox('Juridical',['Không','Có']) | |
| phaply_value=['Không','Có'].index(phaply) | |
| #city=['Hà Nội','Thành phố Hồ Chí Minh','Đà Nẵng','Lâm Đồng','Hải Phòng','Khánh Hòa','Bắc Ninh','Đồng Nai','Cần Thơ','Bà Rịa – Vũng Tàu','Thừa Thiên Huế','Đắk Lắk','Bình Dương'] | |
| #[4,8,7,5,10,6,12,3,2,9,0,11,1] | |
| diachi1, diachi2=st.columns(2) | |
| diachi3,diachi4=st.columns(2) | |
| with diachi1: | |
| if vung=='Việt Nam': | |
| tinhthanhpho = st.selectbox('Province/City', list(ult.city_districts.keys())) | |
| index_tinhthanhpho = list(ult.city_districts.keys()).index(tinhthanhpho) | |
| tinhthanhpho_value = [3,7,6,4,8,5,9,2,1,0][index_tinhthanhpho] | |
| elif vung == "Hà Nội": | |
| tinhthanhpho = st.selectbox('Province/City',['Hà Nội']) | |
| tinhthanhpho_value = 4 | |
| else: | |
| tinhthanhpho = st.selectbox('Province/City', ['TP Hồ Chí Minh']) | |
| tinhthanhpho_value = 8 | |
| if tinhthanhpho in ult.city_districts: | |
| with diachi2: | |
| quanhuyen = st.selectbox('District', list(ult.city_districts[tinhthanhpho].keys())) | |
| if quanhuyen in ult.city_districts[tinhthanhpho]: | |
| with diachi3: | |
| xaphuong = st.selectbox('Wards', ult.city_districts[tinhthanhpho][quanhuyen]) | |
| with diachi4:diachi = st.text_input('Street') | |
| col4,col5 = st.columns(2) | |
| with col4: | |
| matdodanso=ult.Find_Density(quanhuyen,tinhthanhpho) | |
| matdo=st.number_input('Population density(person/km2)',matdodanso,disabled=True) | |
| with col5: | |
| gdp=ult.Find_GDPD(tinhthanhpho) | |
| grdp=st.number_input('GRPD(%)',gdp,disabled=True) | |
| col6, col7, col8,col9 = st.columns(4) | |
| with col6: | |
| dgtrcnha=st.number_input('Road in front of house(m)',step=1) | |
| with col7: | |
| solau=st.number_input('Number of floors',step=1) | |
| with col8: | |
| sophgngu=st.number_input('Number of bedroom',step=1) | |
| with col9: | |
| dientich=st.number_input('Acreage/Area(m2)',step=1) | |
| if button: | |
| st.snow() | |
| if dientich!=0 and solau !=0 : | |
| if method == 'Alternative 1': | |
| new_record = np.array( | |
| [dgtrcnha, loaibds_value, phaply_value, solau, sophgngu, dientich, tinhthanhpho_value, matdodanso, grdp]) | |
| sample = new_record.reshape(-1, 9) | |
| else: | |
| new_record = np.array( | |
| [huong_value, dgtrcnha, loaibds_value, phaply_value, solau, sophgngu, dientich, tinhthanhpho_value, | |
| matdodanso, grdp]) | |
| sample = new_record.reshape(-1, 10) | |
| predict = ult.Prediction(sample, vung, method, model) | |
| ult.Show_answer(predict,loaibds_value) | |
| else:st.warning('You must type into Area and Number of floor!') | |