Spaces:
Sleeping
Sleeping
Created ModeL
Browse files- app.py +56 -0
- car_data.csv +101 -0
app.py
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
import pandas as pd
|
3 |
+
import numpy as np
|
4 |
+
import pickle
|
5 |
+
from sklearn.model_selection import train_test_split
|
6 |
+
from sklearn.linear_model import LinearRegression
|
7 |
+
from sklearn.preprocessing import LabelEncoder
|
8 |
+
|
9 |
+
# Load dataset
|
10 |
+
@st.cache_data
|
11 |
+
def load_data():
|
12 |
+
df = pd.read_csv("car_data.csv") # Replace with your dataset
|
13 |
+
return df
|
14 |
+
|
15 |
+
def preprocess_data(df):
|
16 |
+
label_encoders = {}
|
17 |
+
for column in ["brand", "model", "fuel_type"]: # Encode categorical features
|
18 |
+
le = LabelEncoder()
|
19 |
+
df[column] = le.fit_transform(df[column])
|
20 |
+
label_encoders[column] = le
|
21 |
+
return df, label_encoders
|
22 |
+
|
23 |
+
# Train the model
|
24 |
+
def train_model(df):
|
25 |
+
X = df[["year", "mileage", "brand", "model", "fuel_type"]]
|
26 |
+
y = df["price"]
|
27 |
+
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
|
28 |
+
model = LinearRegression()
|
29 |
+
model.fit(X_train, y_train)
|
30 |
+
return model
|
31 |
+
|
32 |
+
df = load_data()
|
33 |
+
df, label_encoders = preprocess_data(df)
|
34 |
+
model = train_model(df)
|
35 |
+
|
36 |
+
# Streamlit UI
|
37 |
+
st.title("Car Price Prediction App")
|
38 |
+
st.sidebar.header("Enter Car Details")
|
39 |
+
|
40 |
+
year = st.sidebar.slider("Year", int(df["year"].min()), int(df["year"].max()), 2015)
|
41 |
+
mileage = st.sidebar.number_input("Mileage (in km)", min_value=0, max_value=500000, value=50000)
|
42 |
+
|
43 |
+
brand = st.sidebar.selectbox("Brand", label_encoders["brand"].classes_)
|
44 |
+
filtered_models = df[df["brand"] == label_encoders["brand"].transform([brand])[0]]["model"].unique()
|
45 |
+
model_name = st.sidebar.selectbox("Model", label_encoders["model"].inverse_transform(filtered_models))
|
46 |
+
fuel_type = st.sidebar.selectbox("Fuel Type", label_encoders["fuel_type"].classes_)
|
47 |
+
|
48 |
+
if st.sidebar.button("Predict Price"):
|
49 |
+
brand_encoded = label_encoders["brand"].transform([brand])[0]
|
50 |
+
model_encoded = label_encoders["model"].transform([model_name])[0]
|
51 |
+
fuel_encoded = label_encoders["fuel_type"].transform([fuel_type])[0]
|
52 |
+
|
53 |
+
input_data = np.array([[year, mileage, brand_encoded, model_encoded, fuel_encoded]])
|
54 |
+
predicted_price = model.predict(input_data)[0]
|
55 |
+
|
56 |
+
st.write(f"### Predicted Car Price: ${predicted_price:,.2f}")
|
car_data.csv
ADDED
@@ -0,0 +1,101 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
year,mileage,brand,model,fuel_type,price
|
2 |
+
2022,114370,Ford,Escape,Hybrid,6674.87
|
3 |
+
2005,218398,Ford,Focus,Petrol,48657.79
|
4 |
+
2015,217329,Honda,Civic,Hybrid,55673.83
|
5 |
+
2022,30173,Toyota,Camry,Hybrid,29420.31
|
6 |
+
2014,21973,Toyota,Camry,Petrol,41318.21
|
7 |
+
2014,132154,Toyota,Camry,Diesel,57053.43
|
8 |
+
2017,65727,Nissan,Rogue,Diesel,51498.18
|
9 |
+
2005,122186,Honda,Accord,Hybrid,58685.49
|
10 |
+
2017,202461,Nissan,Rogue,Hybrid,16044.29
|
11 |
+
2014,44157,Toyota,Corolla,Petrol,50544.38
|
12 |
+
2013,230461,Toyota,RAV4,Electric,8595.83
|
13 |
+
2012,49377,Ford,Escape,Electric,10107.73
|
14 |
+
2023,10407,Nissan,Altima,Electric,32341.96
|
15 |
+
2009,218313,Honda,Civic,Hybrid,7101.26
|
16 |
+
2023,49655,Ford,Escape,Electric,50828.85
|
17 |
+
2014,158137,Nissan,Sentra,Petrol,38753.23
|
18 |
+
2008,85780,Honda,Accord,Petrol,50089.18
|
19 |
+
2013,218923,Honda,CR-V,Electric,16676.43
|
20 |
+
2019,169648,Nissan,Sentra,Petrol,57087.33
|
21 |
+
2023,93206,Honda,CR-V,Electric,26363.71
|
22 |
+
2008,237357,Toyota,Camry,Hybrid,32794.84
|
23 |
+
2014,228055,Toyota,Camry,Petrol,18061.17
|
24 |
+
2009,205737,Honda,Accord,Petrol,56591.04
|
25 |
+
2023,21161,BMW,X5,Diesel,46022.34
|
26 |
+
2014,236502,Ford,Fusion,Electric,33802.91
|
27 |
+
2011,106454,BMW,X5,Hybrid,18870.85
|
28 |
+
2021,149049,BMW,3 Series,Petrol,42588.23
|
29 |
+
2020,161145,Toyota,RAV4,Petrol,17435.75
|
30 |
+
2016,147931,Honda,CR-V,Hybrid,13650.18
|
31 |
+
2014,228821,BMW,X5,Electric,54729.7
|
32 |
+
2023,234720,Ford,Fusion,Diesel,45337.72
|
33 |
+
2012,173181,Nissan,Altima,Diesel,8236.32
|
34 |
+
2020,211188,Toyota,RAV4,Petrol,22071.91
|
35 |
+
2008,162549,BMW,3 Series,Petrol,11114.1
|
36 |
+
2017,97557,Toyota,Camry,Hybrid,42633.37
|
37 |
+
2011,55172,BMW,X3,Hybrid,14257.55
|
38 |
+
2021,188935,Honda,Accord,Diesel,26893.15
|
39 |
+
2010,131149,Toyota,Camry,Petrol,16139.29
|
40 |
+
2010,196634,Toyota,Corolla,Hybrid,53997.08
|
41 |
+
2023,32603,BMW,X3,Hybrid,8230.34
|
42 |
+
2012,232201,BMW,X5,Hybrid,48270.97
|
43 |
+
2017,126971,Nissan,Sentra,Electric,43073.84
|
44 |
+
2017,157109,Honda,Civic,Petrol,9965.82
|
45 |
+
2016,137246,Ford,Focus,Hybrid,12194.14
|
46 |
+
2013,97282,Nissan,Rogue,Petrol,14321.09
|
47 |
+
2022,26755,Toyota,RAV4,Diesel,18314.11
|
48 |
+
2015,195123,Ford,Focus,Electric,7668.99
|
49 |
+
2006,83255,Ford,Focus,Diesel,43519.67
|
50 |
+
2015,148711,Toyota,Corolla,Petrol,49230.81
|
51 |
+
2005,188059,Honda,Civic,Diesel,17717.2
|
52 |
+
2018,48615,Nissan,Altima,Electric,4836.54
|
53 |
+
2007,147590,Toyota,Camry,Diesel,21724.47
|
54 |
+
2018,45428,Nissan,Altima,Petrol,49927.27
|
55 |
+
2019,215070,Ford,Fusion,Petrol,28441.83
|
56 |
+
2014,228261,Nissan,Altima,Petrol,44328.07
|
57 |
+
2016,184600,Honda,Civic,Petrol,34245.7
|
58 |
+
2006,88461,BMW,3 Series,Diesel,19569.62
|
59 |
+
2014,133896,Ford,Escape,Diesel,57019.9
|
60 |
+
2017,61302,Nissan,Sentra,Petrol,26287.24
|
61 |
+
2014,144269,Nissan,Altima,Electric,43487.28
|
62 |
+
2022,244580,Honda,Civic,Diesel,28236.3
|
63 |
+
2005,24100,Toyota,Camry,Electric,12674.1
|
64 |
+
2007,118456,Nissan,Rogue,Hybrid,41507.96
|
65 |
+
2020,20359,BMW,3 Series,Hybrid,46188.46
|
66 |
+
2007,26897,BMW,3 Series,Petrol,29756.59
|
67 |
+
2022,103680,Honda,CR-V,Hybrid,42218.02
|
68 |
+
2022,207698,Toyota,Camry,Electric,23484.79
|
69 |
+
2021,216329,Honda,Accord,Petrol,11671.72
|
70 |
+
2020,142876,BMW,X3,Diesel,52032.58
|
71 |
+
2005,191069,Toyota,Camry,Petrol,37422.52
|
72 |
+
2014,60179,Ford,Focus,Hybrid,33384.69
|
73 |
+
2016,202737,Toyota,Corolla,Electric,54489.42
|
74 |
+
2007,71761,Nissan,Altima,Hybrid,5589.71
|
75 |
+
2013,217915,Nissan,Sentra,Petrol,19861.67
|
76 |
+
2020,66157,Nissan,Rogue,Petrol,31263.52
|
77 |
+
2011,47636,Ford,Focus,Diesel,54826.2
|
78 |
+
2016,239017,Toyota,RAV4,Electric,42639.12
|
79 |
+
2008,85245,Honda,Civic,Diesel,36393.84
|
80 |
+
2008,7924,Nissan,Sentra,Petrol,57417.32
|
81 |
+
2018,80220,Honda,Civic,Hybrid,58809.73
|
82 |
+
2014,117704,Honda,CR-V,Electric,49856.84
|
83 |
+
2015,177025,Honda,CR-V,Hybrid,10376.35
|
84 |
+
2005,35885,BMW,X3,Petrol,51045.28
|
85 |
+
2016,196392,BMW,X5,Electric,41524.89
|
86 |
+
2005,130887,Nissan,Altima,Hybrid,43061.41
|
87 |
+
2023,73929,Ford,Focus,Diesel,5308.57
|
88 |
+
2023,136653,Ford,Focus,Hybrid,25862.99
|
89 |
+
2015,173398,Toyota,Camry,Diesel,37219.05
|
90 |
+
2011,69238,Honda,CR-V,Diesel,4867.25
|
91 |
+
2005,87947,Honda,CR-V,Diesel,11732.04
|
92 |
+
2013,133510,Honda,Civic,Electric,12632.23
|
93 |
+
2018,9968,Toyota,RAV4,Hybrid,28529.03
|
94 |
+
2017,197988,Ford,Focus,Hybrid,39786.83
|
95 |
+
2012,86434,Nissan,Sentra,Diesel,23234.51
|
96 |
+
2008,222832,Honda,Civic,Diesel,38588.24
|
97 |
+
2008,100769,Ford,Fusion,Diesel,42574.31
|
98 |
+
2013,22411,Nissan,Rogue,Electric,43318.02
|
99 |
+
2014,113829,Toyota,Camry,Electric,7845.3
|
100 |
+
2007,202200,Nissan,Rogue,Diesel,14169.5
|
101 |
+
2016,7334,Ford,Fusion,Petrol,39685.37
|