Spaces:
Build error
Build error
Update app.py
Browse files
app.py
CHANGED
@@ -14,8 +14,26 @@ df = pd.read_csv('train2.csv')
|
|
14 |
|
15 |
|
16 |
# Renaming columns
|
17 |
-
#df.rename(columns = {'MSSubClass':'
|
18 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
|
20 |
|
21 |
# HEADINGS
|
@@ -33,20 +51,30 @@ x_train, x_test, y_train, y_test = train_test_split(x,y, test_size = 0.2, random
|
|
33 |
|
34 |
# FUNCTION
|
35 |
def user_report():
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
|
|
|
|
|
|
|
|
|
|
41 |
|
42 |
|
43 |
user_report_data = {
|
44 |
-
'
|
45 |
-
'
|
46 |
-
'
|
47 |
-
'
|
48 |
-
'
|
|
|
|
|
|
|
|
|
49 |
}
|
|
|
50 |
report_data = pd.DataFrame(user_report_data, index=[0])
|
51 |
return report_data
|
52 |
|
@@ -84,6 +112,83 @@ st.subheader('Price of House is : ')
|
|
84 |
st.write(str(user_result))
|
85 |
st.title('output')
|
86 |
st.subheader('r2_score: ')
|
87 |
-
st.write(str(r2_score(y_test, lr.predict(x_test))*100)+'%')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
|
89 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
|
15 |
|
16 |
# Renaming columns
|
17 |
+
#df.rename(columns = {'MSSubClass':'import pandas as pd
|
18 |
+
import streamlit as st
|
19 |
+
import numpy as np
|
20 |
+
import matplotlib.pyplot as plt
|
21 |
+
from sklearn.metrics import r2_score
|
22 |
+
from sklearn.linear_model import LinearRegression
|
23 |
+
from sklearn.model_selection import train_test_split
|
24 |
+
import seaborn as sns
|
25 |
+
|
26 |
+
|
27 |
+
|
28 |
+
# loading the data
|
29 |
+
df = pd.read_csv('train2.csv')
|
30 |
+
|
31 |
+
|
32 |
+
# Renaming columns
|
33 |
+
#df.rename(columns = {'MSSubClass':'MSSubClass','LotArea':'LotArea', 'OverallQual':'OverallQual',
|
34 |
+
'OverallCond':'OverallCond', 'YearBuilt':'YearBuilt',
|
35 |
+
'MasVnrArea':'MasVnrArea', 'BsmtFinSF1':'BsmtFinSF1', 'BsmtFinSF2':'BsmtFinSF2',
|
36 |
+
'BsmtUnfSF':'BsmtUnfSF','TotalBsmtSF':'TotalBsmtSF'},inplace = True)
|
37 |
|
38 |
|
39 |
# HEADINGS
|
|
|
51 |
|
52 |
# FUNCTION
|
53 |
def user_report():
|
54 |
+
MSSubClass = st.sidebar.slider('MSSubClass', 17795,107702, 18000 )
|
55 |
+
LotArea = st.sidebar.slider('LotArea', 2,10, 4 )
|
56 |
+
OverallQual = st.sidebar.slider('OverallQual', 3,11, 5 )
|
57 |
+
OverallCond = st.sidebar.slider('OverallCond', 2,7, 3 )
|
58 |
+
YearBuilt = st.sidebar.slider('YearBuilt', 170,70000, 5000 )
|
59 |
+
MasVnrArea = st.sidebar.slider('MasVnrArea', 170,70000, 5000 )
|
60 |
+
BsmtFinSF1 = st.sidebar.slider('BsmtFinSF1', 170,70000, 5000 )
|
61 |
+
BsmtUnfSF = st.sidebar.slider('BsmtUnfSF', 170,70000, 5000 )
|
62 |
+
BsmtFinSF2 = st.sidebar.slider('BsmtFinSF2', 170,70000, 5000 )
|
63 |
+
TotalBsmtSF = st.sidebar.slider('TotalBsmtSF', 170,70000, 5000 )
|
64 |
|
65 |
|
66 |
user_report_data = {
|
67 |
+
'MSSubClass':MSSubClass,
|
68 |
+
'LotArea':LotArea,
|
69 |
+
'OverallQual':OverallQual
|
70 |
+
'YearBuilt':YearBuilt,
|
71 |
+
'MasVnrArea':MasVnrArea
|
72 |
+
'BsmtFinSF1': BsmtFinSF1
|
73 |
+
'BsmtFinSF': BsmtFinSF
|
74 |
+
'BsmtFinSF2': BsmtFinSF2
|
75 |
+
'TotalBsmtSF': TotalBsmtSF
|
76 |
}
|
77 |
+
|
78 |
report_data = pd.DataFrame(user_report_data, index=[0])
|
79 |
return report_data
|
80 |
|
|
|
112 |
st.write(str(user_result))
|
113 |
st.title('output')
|
114 |
st.subheader('r2_score: ')
|
115 |
+
st.write(str(r2_score(y_test, lr.predict(x_test))*100)+'%')','LotFrontage':'House_age', 'Avg. Area Number of Rooms':'No_rooms',
|
116 |
+
# 'Avg. Area Number of Bedrooms':'No_bedrooms', 'Area Population':'population'},inplace = True)
|
117 |
+
|
118 |
+
|
119 |
+
# HEADINGS
|
120 |
+
st.title('House Price Prediction')
|
121 |
+
st.sidebar.header('Housing Data')
|
122 |
+
st.subheader('Training Data Stats')
|
123 |
+
st.write(df.describe())
|
124 |
+
|
125 |
+
|
126 |
+
# X AND Y DATA
|
127 |
+
x = df.drop(['SalePrice'], axis = 1)
|
128 |
+
y = df.iloc[:, -1]
|
129 |
+
x_train, x_test, y_train, y_test = train_test_split(x,y, test_size = 0.2, random_state = 0)
|
130 |
+
|
131 |
+
|
132 |
+
# FUNCTION
|
133 |
+
def user_report():
|
134 |
+
MSSubClass = st.sidebar.slider('MSSubClass', 17795,107702, 18000 )
|
135 |
+
LotArea = st.sidebar.slider('LotArea', 2,10, 4 )
|
136 |
+
OverallQual = st.sidebar.slider('OverallQual', 3,11, 5 )
|
137 |
+
OverallCond = st.sidebar.slider('OverallCond', 2,7, 3 )
|
138 |
+
YearBuilt = st.sidebar.slider('YearBuilt', 170,70000, 5000 )
|
139 |
+
MasVnrArea = st.sidebar.slider('MasVnrArea', 170,70000, 5000 )
|
140 |
+
BsmtFinSF1 = st.sidebar.slider('BsmtFinSF1', 170,70000, 5000 )
|
141 |
+
BsmtUnfSF = st.sidebar.slider('BsmtUnfSF', 170,70000, 5000 )
|
142 |
+
BsmtFinSF2 = st.sidebar.slider('BsmtFinSF2', 170,70000, 5000 )
|
143 |
+
TotalBsmtSF = st.sidebar.slider('TotalBsmtSF', 170,70000, 5000 )
|
144 |
+
|
145 |
+
|
146 |
+
user_report_data = {
|
147 |
+
'MSSubClass':MSSubClass,
|
148 |
+
'LotArea':LotArea,
|
149 |
+
'OverallQual':OverallQual
|
150 |
+
'YearBuilt':YearBuilt,
|
151 |
+
'MasVnrArea':MasVnrArea
|
152 |
+
'BsmtFinSF1': BsmtFinSF1
|
153 |
+
'BsmtFinSF': BsmtFinSF
|
154 |
+
'BsmtFinSF2': BsmtFinSF2
|
155 |
+
'TotalBsmtSF': TotalBsmtSF
|
156 |
+
}
|
157 |
+
report_data = pd.DataFrame(user_report_data, index=[0])
|
158 |
+
return report_data
|
159 |
+
|
160 |
+
|
161 |
+
|
162 |
+
|
163 |
+
# Housing Data
|
164 |
+
user_data = user_report()
|
165 |
+
st.subheader('Housing Data')
|
166 |
+
st.write(user_data)
|
167 |
+
|
168 |
+
|
169 |
+
# MODEL
|
170 |
+
lr = LinearRegression()
|
171 |
+
lr.fit(x_train, y_train)
|
172 |
+
user_result = lr.predict(user_data)
|
173 |
+
|
174 |
|
175 |
|
176 |
+
# VISUALISATIONS
|
177 |
+
st.title('Visualised Housing Data')
|
178 |
+
|
179 |
+
|
180 |
+
|
181 |
+
# COLOR FUNCTION
|
182 |
+
if user_result[0]==0:
|
183 |
+
color = 'blue'
|
184 |
+
else:
|
185 |
+
color = 'red'
|
186 |
+
|
187 |
+
|
188 |
+
|
189 |
+
# OUTPUT
|
190 |
+
st.subheader('Price of House is : ')
|
191 |
+
st.write(str(user_result))
|
192 |
+
st.title('output')
|
193 |
+
st.subheader('r2_score: ')
|
194 |
+
st.write(str(r2_score(y_test, lr.predict(x_test))*100)+'%')
|