Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pandas as pd
- import numpy as np
- import matplotlib.pyplot as plt
- from sklearn.preprocessing import StandardScaler
- from sklearn.linear_model import Ridge, Lasso
- from sklearn.model_selection import train_test_split
- from sklearn.metrics import mean_squared_error, r2_score
- df = pd.read_csv("Advertising.csv")
- df = df.iloc[:, 1:]
- display(df.head())
- X=df.drop("sales",axis=1)
- y=df["sales"]
- X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,random_state=42)
- scaler = StandardScaler()
- X_train_scaled = scaler.fit_transform(X_train)
- X_test_scaled = scaler.transform(X_test)
- # Ridge Regression
- ridge = Ridge()
- ridge.fit(X_train_scaled, y_train)
- # Lasso Regression
- lasso = Lasso()
- lasso.fit(X_train_scaled, y_train)
- ridge_preds = ridge.predict(X_test_scaled)
- ridge_mse = mean_squared_error(y_test, ridge_preds)
- ridge_r2 = r2_score(y_test, ridge_preds)
- lasso_preds = lasso.predict(X_test_scaled)
- lasso_mse = mean_squared_error(y_test, lasso_preds)
- lasso_r2 = r2_score(y_test, lasso_preds)
- print("π Model Comparison:")
- if ridge_mse < lasso_mse:
- print(f"β Ridge has lower MSE ({ridge_mse:.4f}) than Lasso ({lasso_mse:.4f})")
- else:
- print(f"β Lasso has lower MSE ({lasso_mse:.4f}) than Ridge ({ridge_mse:.4f})")
- if ridge_r2 > lasso_r2:
- print(f"β Ridge has higher RΒ² Score ({ridge_r2:.4f}) than Lasso ({lasso_r2:.4f})")
- else:
- print(f"β Lasso has higher RΒ² Score ({lasso_r2:.4f}) than Ridge ({ridge_r2:.4f})")
- ridge_coef= ridge.coef_
- lasso_coef = lasso.coef_
- plt.plot(ridge_coef,'s',label="Ridge Coefficients")
- plt.plot(lasso_coef,'x',label="Lasso Coefficients")
- plt.xlabel("Coefficient index")
- plt.ylabel("Coefficient magnitude")
- plt.title("Comparison of Ridge and Lasso coefficients")
- plt.legend()
- plt.show()
Advertisement
Add Comment
Please, Sign In to add comment