pat229988 commited on
Commit
5a7bb58
1 Parent(s): 8b473dc

Upload 6 files

Browse files
DecisionTreeRegressor.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2ba618d8dfdc11ff61401abd935637e999db1f6fc3653617fe2f7324e368e1fd
3
+ size 5880
KNeighborsRegressor.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3be5cbb151093ff7c19bf4caefb9732a3565a04f38a836c011f681528b270703
3
+ size 305517
RandomForestRegressor.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:33dbfd7156d96d252a7b9ec8d9d12278194064a673dc7b9e5dbe9760c49811c9
3
+ size 356963890
XGBRegressor.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6c1ad245b6488479d02dd3107f0fce80fa6b0b9c365e4f818928c9008e993a2c
3
+ size 10591527
app.py ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import sklearn
3
+ import numpy as np
4
+ import pickle
5
+ import pandas as pd
6
+
7
+ random_forest = 'RandomForestRegressor.pkl'
8
+ k_nearest = 'KNeighborsRegressor.pkl'
9
+ decision_tree = 'DecisionTreeRegressor.pkl'
10
+ xgboost = 'XGBRegressor.pkl'
11
+
12
+ r_f = pickle.load(open(random_forest, 'rb'))
13
+ k_n = pickle.load(open(k_nearest, 'rb'))
14
+ d_t = pickle.load(open(decision_tree, 'rb'))
15
+ x_b = pickle.load(open(xgboost, 'rb'))
16
+
17
+ def predict_house_price(latitude,longitude,province,bedrooms,bathrooms):
18
+ dct = {'latitude':[latitude],
19
+ 'longitude':[longitude],
20
+ 'province':[province],
21
+ 'bedrooms':[bedrooms],
22
+ 'bathrooms':[bathrooms]}
23
+ pdt = pd.DataFrame.from_dict(dct)
24
+ predictions={}
25
+ price_r_f = r_f.predict(pdt)
26
+ predictions['r_f'] = round(np.exp(price_r_f.tolist()[0]),2)
27
+ price_k_n = k_n.predict(pdt)
28
+ predictions['k_n'] = round(np.exp(price_k_n.tolist()[0]),2)
29
+ price_d_t = d_t.predict(pdt)
30
+ predictions['d_t'] = round(np.exp(price_d_t.tolist()[0]),2)
31
+ price_x_b = x_b.predict(pdt)
32
+ predictions['x_b'] = round(np.exp(price_x_b.tolist()[0]),2)
33
+ return predictions
34
+
35
+ def main():
36
+ st.label_visibility='collapse'
37
+ st.title("House Price Prediction using KIJIJI data and different algorithms")
38
+ latitude = st.slider("Latitude : ", min_value = 41.00000, max_value = 65.00000, step = 0.001)
39
+ longitude = st.slider("Longitude : ", min_value = -140.00000, max_value = -51.00000, step = 0.001)
40
+ bedrooms = st.slider("Bedrooms : ", min_value = 1, max_value = 6, step = 1)
41
+ bathrooms = st.slider("Bathrooms : ", min_value = 1.0, max_value = 6.0, step = 0.5)
42
+ pro = {0: 'alberta',
43
+ 1: 'britishcolumbia',
44
+ 2: 'manitoba',
45
+ 3: 'newbrunswick',
46
+ 4: 'newfoundland',
47
+ 5: 'novascotia',
48
+ 6: 'ontario',
49
+ 7: 'princeedwardisland',
50
+ 8: 'quebec',
51
+ 9: 'saskatchewan',
52
+ 10: 'territories'}
53
+ prov = st.selectbox("Choose a Province: ", list(pro.values()))
54
+ province = list(pro.keys())[list(pro.values()).index(prov)]
55
+ if st.button("Predict"):
56
+ pd = predict_house_price(latitude,longitude,province,bedrooms,bathrooms)
57
+ st.write('Price Prediction from Random Forest Regressor ${}'.format(pd['r_f']))
58
+ st.write('Price Prediction from K-Neighbors Regressor ${}'.format(pd['k_n']))
59
+ st.write('Price Prediction from Decision Tree Regressor ${}'.format(pd['d_t']))
60
+ st.write('Price Prediction from XGB Regressor ${}'.format(pd['x_b']))
61
+
62
+
63
+ if __name__ == '__main__': #
64
+ main()
65
+
requirements.txt ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ matplotlib==3.6.2
2
+ streamlit==1.12.0
3
+ Pillow==9.2.0
4
+ numpy==1.23.1
5
+ pandas==1.4.3
6
+ plotly==5.11.0
7
+ sklearn==0.0