Deep Learning Project – Used Car Price Prediction using ANN

Machine Learning courses with 100+ Real-time projects Start Now!!

Program 1

Car Details Dataset

Used Car Price Prediction Using Vehicle Specifications and Artificial Neural Networks

To develop a predictive model using Artificial Neural Networks (ANN) that estimates the selling price of a used car based on its features such as year, mileage, fuel type, transmission, and model. The aim is to help customers, dealers, and resellers make data-driven decisions in pricing and purchasing used cars.


# Step 1: Import Libraries
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder, StandardScaler
from sklearn.metrics import mean_squared_error, r2_score
import matplotlib.pyplot as plt
import seaborn as sns
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

# Step 2: Load Dataset
df = pd.read_csv("D://scikit_data/car/CAR DETAILS FROM CAR DEKHO.csv")
df.shape

# Step 3: Encode Categorical Columns
df['fuel'] = LabelEncoder().fit_transform(df['fuel'])
df['seller_type'] = LabelEncoder().fit_transform(df['seller_type'])
df['transmission'] = LabelEncoder().fit_transform(df['transmission'])
df['owner'] = LabelEncoder().fit_transform(df['owner'])
df.head()

# Step 4: Features & Target
X = df.drop(['name','selling_price'], axis=1) # Input value
y = df['selling_price'] # Output value
y.head()

# Step 5: Normalize
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# Step 6: Train-Test Split
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)
len(X_test)

# Step 7: Build ANN Model
model = Sequential([
    Dense(64, activation='relu', input_shape=(X_train.shape[1],)), # input+hidden
    Dense(32, activation='relu'), #hidden
    Dense(16, activation='relu'), #hidden
    Dense(1) #out put
])
model.compile(optimizer='adam', loss='mse')

# Step 8: Train
history = model.fit(X_train, y_train, epochs=100, batch_size=10, verbose=1)

# Step 9: Predict & Evaluate
y_pred = model.predict(X_test).flatten()
print("MSE:", mean_squared_error(y_test, y_pred))
print("R2 Score:", r2_score(y_test, y_pred))

#Step 10: Plot Training Loss
plt.plot(history.history['loss'])
plt.title("Training Loss Over Epochs")
plt.xlabel("Epoch")
plt.ylabel("Loss (MSE)")
plt.grid()
plt.show()

# Step 11: Actual vs Predicted
plt.figure(figsize=(6,6))
sns.scatterplot(x=y_test, y=y_pred,color="blue", alpha=0.7, label="Predicted")
plt.xlabel("Actual Price")
plt.ylabel("Predicted Price")
plt.title("Actual vs Predicted Used Car Prices")
plt.grid()
plt.show()

new_data = np.array([[2017,79000,2,1,1,1]])
new_data_scaled = scaler.transform(new_data)
y_pred = model.predict(new_data_scaled)
y_pred

 

Did you like our efforts? If Yes, please give DataFlair 5 Stars on Google

courses

DataFlair Team

DataFlair Team provides high-impact content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. We make complex concepts easy to grasp, helping learners of all levels succeed in their tech careers.

Leave a Reply

Your email address will not be published. Required fields are marked *