Pranaufar Wiragusti
astaga
14d33b3
import numpy as np
import pandas as pd
import streamlit as st
import pickle
import feature_engine
with open('RandomForest.pkl', 'rb') as file_1:
model_rfr = pickle.load(file_1)
with open('model_scaler.pkl', 'rb') as file_2:
model_scaler = pickle.load(file_2)
st.write('Price Prediction based on random forest regression')
location = st.selectbox(label='Location',
options=['Delhi',
'Coimbatore',
'Mumbai',
'Hyderabad',
'Pune',
'Jaipur',
'Chennai',
'Kochi',
'Bangalore',
'Kolkata',
'Ahmedabad'])
year = st.selectbox(label='Year',
options=
['2014', '2013', '2017', '2012', '2016', '2015', '2011', '2007',
'2008', '2009', '2019', '2010', '2005', '2006', '2018', '2003',
'2004', 'less than 2003'])
fuel_type = st.selectbox(label='Fuel_Type', options=['CNG', 'Petrol', 'Diesel', 'LPG'])
transmission = st.selectbox(label='Transmission', options=['Manual', 'Automatic'])
owner_type = st.selectbox(label='Owner_Type', options=['First', 'Second', 'Third'])
power = st.number_input(label='Power', min_value=34.20, max_value=616.00, value=420.69, step=0.01)
model = st.selectbox(label='Model',
options=['Alto', 'Innova', 'Etios', 'i20', 'XUV500', 'Fortuner', 'EON',
'City', 'Q5', 'Grand', 'Corolla', 'Swift', 'Terrano', 'X1', '3',
'Ikon', 'Ritz', 'Micra', 'Laura', 'Civic', 'Jazz', 'Rapid', 'Polo',
'i10', 'Pajero', 'Creta', '5', 'Baleno', 'A4', 'Ertiga', 'Ciaz',
'A', 'Ecosport', 'Endeavour', 'Verna', 'Vitara', 'Indigo',
'Celerio', 'Sail', 'Scorpio', 'Ameo', 'Wagon', 'Brio', 'Santro',
'Figo', 'Tiago', 'Beat', 'Xcent', 'Camry', 'Vento', 'Teana',
'Manza', 'Fiesta', 'B', 'Accord', 'Zen', 'Elantra', 'Indica',
'Nano', 'Amaze', 'Q3', 'New', 'BRV', 'X3', 'GL-Class', 'GO',
'Ignis', 'A-Star', 'XE', 'EcoSport', 'KUV', 'Avventura', 'CR-V',
'Accent', 'XF', 'E-Class', 'M-Class', 'Xylo', 'Mobilio', 'S',
'Passat', 'Sunny', 'A8', '7', 'Duster', 'Dzire', 'A6', 'Linea',
'Sumo', 'Grande', 'Cooper', 'Thar', 'Xenon', 'Aveo', 'Tavera',
'Superb', '800', 'BR-V', 'Verito', 'Q7', 'Eeco', 'Bolero', 'Jetta',
'Elite', 'Flying', 'Tigor', 'Rover', 'XC90', 'X6', 'Land',
'Tucson', 'Omni', 'Spark', 'Cruze', 'GLC', 'SX4', 'KWID', 'Getz',
'Optra', 'Enjoy', 'TUV', 'Compass', 'GLE', 'CLA', 'S60', 'Captur',
'A3', 'Pulse', 'Punto', 'XC60', 'WRV', 'CrossPolo', 'Cayenne',
'Octavia', 'Quanto', 'S80', '370Z', '6', 'Sonata', 'Classic',
'Koleos', 'V40', 'GLA', 'Qualis', 'Freestyle', 'Abarth', 'Versa',
'redi-GO', 'SLC', 'Lodgy', '1.4Gsi', 'Zest', 'Ssangyong', 'Esteem',
'Clubman', 'X5', 'Captiva', 'Renault']
)
manufacturer = st.selectbox(label='Manufacturer',
options=['Maruti', 'Toyota', 'Hyundai', 'Mahindra', 'Honda', 'Audi',
'Nissan', 'BMW', 'Ford', 'Skoda', 'Volkswagen', 'Mitsubishi',
'Mercedes-Benz', 'Tata', 'Chevrolet', 'Datsun', 'Jaguar', 'Fiat',
'Renault', 'Mini', 'Bentley', 'Land', 'Volvo', 'Jeep', 'Porsche',
'OpelCorsa'
])
df = pd.DataFrame({'Location': [location],
'Year': [year],
'Fuel_Type': [fuel_type],
'Transmission': [transmission],
'Owner_Type':[owner_type],
'Power': [power],
'Model': [model],
'Manufacturer': [manufacturer],
})
from sklearn.preprocessing import LabelEncoder
label = LabelEncoder()
label_lst = ['Location', 'Fuel_Type','Transmission','Model','Manufacturer']
for col in label_lst :
df[col] = label.fit_transform(df[col])
dic = {'First':2,'Second':1,'Third':0}
df['Owner_Type']=df['Owner_Type'].map(dic)
dic1 = {'2019':17,"2018":16,"2017":15,"2016":14,"2015":13,"2014":12,"2013":11,"2012":10,"2011":9,"2010":8,"2009":7,"2008":6,"2007":5,"2006":4,"2005":3,"2004":2,"2003":1,"less than 2003":0 }
df['Year']=df['Year'].map(dic1)
# Predict using Random Forest Regression
data_inf_scaled = model_scaler.transform(df)
y_pred_inf = model_rfr.predict(data_inf_scaled)
y_pred_inf
st.write('Price Predicted: ')
st.text(y_pred_inf)