from sklearn.datasets import fetch_openml
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
boston = fetch_openml(name='boston', version=1, as_frame=True)
X = boston.data[['RM']]
y = boston.target.astype(float)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)
model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
print("Coefficient:", model.coef_)
print("Intercept:", model.intercept_)
print("MSE:", mean_squared_error(y_test, y_pred))
print("R² Score:", model.score(X_test, y_test))
from sklearn.datasets import fetch_openml
from sklearn.model_selection import train_test_split
import statsmodels.api as sm
boston = fetch_openml(name='boston', version=1, as_frame=True)
X = boston.data[['RM']]
y = boston.target.astype(float)
X = sm.add_constant(X)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)
model = sm.OLS(y_train, X_train)
results = model.fit()
print(results.summary())
from sklearn.datasets import fetch_openml
import statsmodels.formula.api as smf
boston = fetch_openml(name="boston", version=1, as_frame=True)
df = boston.data.copy()
df["MEDV"] = boston.target.astype(float)
model = smf.ols("MEDV ~ RM", data=df)
results = model.fit()
print(results.summary())
