NeerAbhy's picture
Update app.py
aec6919 verified
import streamlit as st
import joblib
import sklearn
# load the model
model = joblib.load('./car-price-predictor.pth')
st.title('Car-price-predictor')
symboling = st.number_input(
'Enter symboling', min_value=-2, max_value=3, value=0)
doornumber = st.number_input(
'Enter Door number 2/4', min_value=2, max_value=4, value=2)
wheelbase = st.number_input(
'Enter wheel base', min_value=85, max_value=130, value=100)
carlength = st.number_input(
'Enter car length', min_value=140, max_value=210, value=180)
carwidth = st.number_input(
'Enter car width', min_value=60, max_value=73, value=65)
carheight = st.number_input(
'Enter car height', min_value=45, max_value=60, value=50)
curbweight = st.number_input(
'Enter curb weight', min_value=1000, max_value=4500, value=3000)
cylindernumber = st.number_input(
'Enter cylinder number', min_value=2, max_value=12, value=5)
enginesize = st.number_input(
'Enter engine size', min_value=60, max_value=330, value=200)
boreratio = st.number_input(
'Enter bore ratio', min_value=2, max_value=4, value=3)
stroke = st.number_input('Enter no. of stroke',
min_value=2, max_value=5, value=3)
compressionratio = st.number_input(
'Enter compression ratio', min_value=5, max_value=25, value=15)
horsepower = st.number_input(
'Enter horse power', min_value=40, max_value=300, value=150)
peakrpm = st.number_input(
'Enter peak rpm', min_value=4000, max_value=7000, value=5500)
citympg = st.number_input(
'Enter city mpg', min_value=10, max_value=55, value=35)
highwaympg = st.number_input(
'Enter highway mpg', min_value=15, max_value=60, value=40)
enginesize = st.number_input(
'Enter engine size', min_value=130, max_value=175, value=150)
horsepower = st.number_input(
'enter horse power', min_value=100, max_value=150, value=125)
car_company = st.selectbox('Select Car Company', ['toyota', 'nissan', 'mazda', 'mitsubishi', 'honda', 'volkswagen', 'subaru', 'peugeot', 'volvo',
'dodge', 'buick', 'bmw', 'audi', 'plymouth', 'saab', 'porsche', 'isuzu', 'jaguar', 'chevrolet', 'alfa-romero', 'renault', 'mercury'])
fueltype = st.selectbox('Select Fuel type', ['diesel', 'gas'])
aspiration = st.selectbox('Select Aspiration', ['std', 'turbo'])
carbody = st.selectbox(
'Select Carbody', ['sedan', 'hatchback', 'wagon', 'hardtop', 'convertible'])
drivewheel = st.selectbox('Select Drive wheel', ['fwd', 'rwd', '4wd'])
enginelocation = st.selectbox('Select engine location', ['front', 'rear'])
enginetype = st.selectbox('Select engine type', [
'ohc', 'ohcf', 'dohc', 'l', 'rotor', 'dohcv'])
fuelsystem = st.selectbox('Select fuel system', [
'mpfi', '2bbl', 'idi', '1bbl', 'spdi', '4bbl', 'mfi', 'spfi'])
if car_company == 'toyota':
car_company_encode = 19
elif car_company == 'nissan':
car_company_encode = 12
elif car_company == 'mazda':
car_company_encode = 9
elif car_company == 'mitsubishi':
car_company_encode = 11
elif car_company == 'honda':
car_company_encode = 6
elif car_company == 'volkswagen':
car_company_encode = 20
elif car_company == 'subaru':
car_company_encode = 18
elif car_company == 'peugeot':
car_company_encode = 13
elif car_company == 'volvo':
car_company_encode = 21
elif car_company == 'dodge':
car_company_encode = 5
elif car_company == 'buick':
car_company_encode = 3
elif car_company == 'bmw':
car_company_encode = 2
elif car_company == 'audi':
car_company_encode = 1
elif car_company == 'plymouth':
car_company_encode = 14
elif car_company == 'saab':
car_company_encode = 17
elif car_company == 'porsche':
car_company_encode = 15
elif car_company == 'isuzu':
car_company_encode = 7
elif car_company == 'jaguar':
car_company_encode = 8
elif car_company == 'chevrolet':
car_company_encode = 4
elif car_company == 'alfa-romero':
car_company_encode = 0
elif car_company == 'renault':
car_company_encode = 16
else:
car_company_encode = 10
if fueltype == 'diesel':
fueltype_encode = 0
else:
fueltype_encode = 1
if aspiration == 'turbo':
aspiration_encode = 1
else:
aspiration_encode = 0
if carbody == 'convertible':
carbody_encode = 0
elif carbody == 'hardtop':
carbody_encode = 1
elif carbody == 'hatchback':
carbody_encode = 2
elif carbody == 'sedan':
carbody_encode = 3
else:
carbody_encode = 4
if drivewheel == '4wd':
drivewheel_encode = 0
elif drivewheel == 'fwd':
drivewheel_encode = 1
else:
gender_encode = 2
if enginelocation == 'front':
enginelocation_encode = 0
else:
gender_encode = 1
if enginetype == 'dohc':
enginetype_encode = 0
elif enginetype == 'dohcv':
enginetype_encode = 1
elif enginetype == 'l':
enginetype_encode = 2
elif enginetype == 'ohc':
enginetype_encode = 3
elif enginetype == 'ohcf':
enginetype_encode = 4
elif enginetype == 'ohcv':
enginetype_encode = 5
else:
gender_encode = 6
if fuelsystem == '1bbl':
fuelsystem_encode = 0
elif fuelsystem == '2bbl':
fuelsystem_encode = 1
elif fuelsystem == '4bbl':
fuelsystem_encode = 2
elif fuelsystem == 'idi':
fuelsystem_encode = 3
elif fuelsystem == 'mfi':
fuelsystem_encode = 4
elif fuelsystem == 'mpfi':
fuelsystem_encode = 5
elif fuelsystem == 'spdi':
fuelsystem_encode = 6
else:
fuelsystem_encode = 7
if st.button("Predict price"):
input = [[car_company_encode, symboling, fueltype_encode, aspiration_encode, doornumber, carbody_encode, drivewheel_encode, enginelocation_encode, wheelbase, carlength, carwidth,
carheight, curbweight, enginetype_encode, cylindernumber, enginesize, fuelsystem_encode, boreratio, stroke, compressionratio, horsepower, peakrpm, citympg, highwaympg]]
result = model.predict(input)[0]
st.write('The predicted price in dollors is', result)