Untitled
unknown
plain_text
7 months ago
1.9 kB
59
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