19.正则化代码实现
约 152 字小于 1 分钟
2025-09-20
import numpy as np
from matplotlib import pyplot as plt
from sklearn.datasets import fetch_california_housing
housing = fetch_california_housing()
X = housing.data
y = housing.targetfrom sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler, PolynomialFeatures
from sklearn.linear_model import LinearRegression
def PolynomialRegression(degree):
return Pipeline([
("poly", PolynomialFeatures(degree=degree)),
("scaler", StandardScaler()),
("linear", LinearRegression())
])poly_reg = PolynomialRegression(3)
poly_reg运行结果
Pipeline(steps=[('poly', PolynomialFeatures(degree=3)), ('scaler', StandardScaler()), ('linear', LinearRegression())]) from sklearn.metrics import mean_squared_error
poly_reg.fit(x_train,y_train)
y_predict = poly_reg.predict(x_test)
mse = mean_squared_error(y_test,y_predict)
mse运行结果
25.407137116394093
from sklearn.linear_model import Lasso
def LassoRegressor(degree,alpha):
return Pipeline([
("poly", PolynomialFeatures(degree=degree)),
("scaler", StandardScaler()),
("linear", Lasso(alpha=alpha))
])
lasso_reg = LassoRegressor(3,0.0001)lasso_reg.fit(x_train,y_train)
y_pred = lasso_reg.predict(x_test)
mean_squared_error(y_test,y_pred)