Spaces:
Sleeping
Sleeping
File size: 2,828 Bytes
b71c7e3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
import streamlit as st
import pandas as pd
import numpy as np
import pickle
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder, StandardScaler
from sklearn.pipeline import Pipeline
from sklearn.linear_model import LinearRegression
# Load pre-trained model
with open("model.pkl", "rb") as file:
pipeline = pickle.load(file)
# Define the feature columns
feature_columns = [
"year",
"mileage",
"tax",
"mpg",
"engineSize",
"transmission",
"fuelType",
"Manufacturer",
]
def predict_price(
year, mileage, tax, mpg, engineSize, transmission, fuelType, Manufacturer
):
input_df = pd.DataFrame(
[[year, mileage, tax, mpg, engineSize, transmission, fuelType, Manufacturer]],
columns=feature_columns,
)
prediction = pipeline.predict(input_df)
return prediction[0][0]
# Streamlit app layout
st.write("Enter the details of the car to predict its price:")
# Input fields
year = st.number_input("Year", min_value=1900, max_value=2100, value=2010)
mileage = st.number_input("Mileage", min_value=0, value=50000)
tax = st.number_input("Tax (£)", min_value=0, value=100)
mpg = st.number_input("MPG", min_value=0, value=50)
engineSize = st.number_input("Engine Size (L)", min_value=0.0, value=2.0)
transmission = st.selectbox(
"Transmission", options=["Automatic", "Semi-Auto", "Manual"]
)
fuelType = st.selectbox("Fuel Type", options=["Petrol", "Diesel", "Electric", "Hybrid"])
Manufacturer = st.selectbox(
"Manufacturer",
options=[
"toyota",
"hyundi",
"ford",
"BMW",
"Audi",
"merc",
"volkswagen",
"vauxhall",
],
)
# Button to predict
if st.button("🔮 Predict Price"):
price = predict_price(
year, mileage, tax, mpg, engineSize, transmission, fuelType, Manufacturer
)
st.write(f"The predicted price of the car is £{price:.2f}")
# Developer Info
st.sidebar.title("🚗 Car Price Predictor")
st.sidebar.subheader("About the Developer")
st.sidebar.markdown(
"Developed by [Tajeddine Bourhim](https://tajeddine-portfolio.netlify.app/)."
)
st.sidebar.markdown(
"[](https://github.com/scorpionTaj)"
)
st.sidebar.markdown(
"[](https://www.linkedin.com/in/tajeddine-bourhim/)"
)
st.sidebar.subheader("📚 About This App")
st.sidebar.markdown(
"This app uses a machine learning model to predict the price of a car based on various features."
)
st.sidebar.markdown(
"Model trained using historical car price data and includes features like year, mileage, and more."
)
|