Untitled

 avatar
unknown
plain_text
6 days ago
1.9 kB
5
Indexable
# Step 1: Import Libraries
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import mean_squared_error, r2_score

# Step 2: Load Data
df = pd.read_csv('car data.csv')  # Update path if needed

# Step 3: Check Missing Values
print("Missing values:\n", df.isnull().sum())

# Step 4: Drop or Fill Missing Values (if any)
df = df.dropna()  # Or use df.fillna(method='ffill') if appropriate

# Step 5: Drop 'Car_Name' (not useful for linear regression)
df = df.drop('Car_Name', axis=1)

# Step 6: Convert 'Current Year' to 'Car Age'
df['Car_Age'] = 2020 - df['Year']  # Assuming current year is 2020
df.drop('Year', axis=1, inplace=True)

# Step 7: Encode Categorical Variables
df = pd.get_dummies(df, drop_first=True)  # Encodes Fuel_Type, Seller_Type, Transmission

# Step 8: Define Features (X) and Target (y)
X = df.drop('Selling_Price', axis=1)
y = df['Selling_Price']

# Step 9: Split Data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Step 10: (Optional) Feature Scaling
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

# Step 11: Train Linear Regression Model
model = LinearRegression()
model.fit(X_train_scaled, y_train)

# Step 12: Predict & Evaluate
y_pred = model.predict(X_test_scaled)

print("R^2 Score:", r2_score(y_test, y_pred))
print("Mean Squared Error:", mean_squared_error(y_test, y_pred))

# Step 13: Visualization
plt.figure(figsize=(8,5))
plt.scatter(y_test, y_pred)
plt.xlabel("Actual Selling Price")
plt.ylabel("Predicted Selling Price")
plt.title("Actual vs Predicted Prices")
plt.grid(True)
plt.show()
Editor is loading...
Leave a Comment