Machine Learning - Regression
Quick start (Ridge)
from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import make_pipeline
from sklearn.linear_model import Ridge
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score
X, y = fetch_california_housing(return_X_y=True)
Xtr, Xte, ytr, yte = train_test_split(X, y, test_size=0.2, random_state=42)
pipe = make_pipeline(StandardScaler(), Ridge(alpha=1.0))
pipe.fit(Xtr, ytr)
pred = pipe.predict(Xte)
print({
"rmse": mean_squared_error(yte, pred, squared=False),
"mae": mean_absolute_error(yte, pred),
"r2": r2_score(yte, pred)
})
ElasticNet search
from sklearn.model_selection import GridSearchCV
from sklearn.linear_model import ElasticNet
from sklearn.pipeline import Pipeline
pipe = Pipeline([("sc", StandardScaler()), ("model", ElasticNet(max_iter=5000))])
param_grid = {"model__alpha": [0.001, 0.01, 0.1, 1.0], "model__l1_ratio": [0.0, 0.5, 1.0]}
search = GridSearchCV(pipe, param_grid, cv=5, scoring="neg_root_mean_squared_error", n_jobs=-1)
search.fit(Xtr, ytr)
print({"best_params": search.best_params_, "cv_rmse": -search.best_score_})