saritha's picture
Update app.py
ab198eb
raw
history blame contribute delete
No virus
2.18 kB
import pandas as pd
import streamlit as st
import numpy as np
from PIL import Image
from sklearn.metrics import r2_score
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
import seaborn as sns
# loading the data
df = pd.read_csv('housing.csv')
# Renaming columns
df.rename(columns = {'Avg. Area Income':'Income','Avg. Area House Age':'House_age', 'Avg. Area Number of Rooms':'No_rooms',
'Avg. Area Number of Bedrooms':'No_bedrooms', 'Area Population':'population'},inplace = True)
# Image
image = Image.open('houseprice.jpg')
st.image(image,caption = 'House Price Prediction',width =500)
# HEADINGS
st.title('House Price Prediction')
st.sidebar.header('Housing Data')
#st.subheader('Training Data Stats')
#st.write(df.describe())
# X AND Y DATA
x = df.drop(['Price'], axis = 1)
y = df.iloc[:, -1]
x_train, x_test, y_train, y_test = train_test_split(x,y, test_size = 0.2, random_state = 0)
# FUNCTION
def user_report():
Income = st.sidebar.slider('Income', 17795,107702, 90000 )
House_age = st.sidebar.slider('House_age', 2,10, 4 )
No_rooms = st.sidebar.slider('No_rooms', 3,11, 6 )
No_bedrooms = st.sidebar.slider('No_bedrooms', 2,7, 4 )
population = st.sidebar.slider('population', 170,70000, 50000 )
user_report_data = {
'Income':Income,
'House_age':House_age,
'No_rooms':No_rooms,
'No_bedrooms':No_bedrooms,
'population':population
}
report_data = pd.DataFrame(user_report_data, index=[0])
return report_data
# Housing Data
user_data = user_report()
st.subheader('Your Customization of House ')
st.write(user_data)
# MODEL
lr = LinearRegression()
lr.fit(x_train, y_train)
user_result = lr.predict(user_data)
# VISUALISATIONS
st.title('Price of House your Dream House is : ')
# COLOR FUNCTION
if user_result[0]==0:
color = 'blue'
else:
color = 'red'
# OUTPUT
#st.subheader('Price of House your Dream House is : ')
st.subheader(str('Rs') + str(np.round(user_result)))
#st.title('output')
#st.subheader('r2_score: ')
#st.write(str(r2_score(y_test, lr.predict(x_test))*100)+'%')
st.write('For More Details Contact Thirdeye Data')