import io
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score
import statsmodels.api as sm
X = data.iloc[:,[0,2,5,6,9,10,12]]
cols = X.columns
y = data.MEDV
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X = scaler.fit_transform(X)
# 3. Fit MLR model using scikit-learn
model = LinearRegression()
model.fit(X, y)
# Predictions
y_pred = model.predict(X)
# 4. Model Performance Metrics
rmse = np.sqrt(mean_squared_error(y, y_pred))
mae = mean_absolute_error(y, y_pred)
r2 = r2_score(y, y_pred)
# Model Coefficients
coefficients = pd.DataFrame({
'Coefficient': [float(model.intercept_)] + list(model.coef_)
}, index=['Intercept'] + [x for x in cols])
coefficients.round(2).T