机器学习基础(十一)之模型正则化

Jupyter Notebook
Ridge

import numpy as np
from matplotlib import pyplot as plt
from sklearn.metrics import mean_absolute_error
from sklearn.linear_model import Ridge
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import PolynomialFeatures
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split

RidgeGression
#用pipeline管道编写一个函数
def RidgeGression(degree, alpha):
    return Pipeline([
        ("poly", PolynomialFeatures(degree=degree)),
        ("stand_scal", StandardScaler()),
        ("ridge", Ridge(alpha=alpha))
    ])
创建测试用例

random
x = np.random.uniform(-5, 5, 100)

X = x.reshape(-1,1)

x.shape
(100,)

0, 1, 100
y = 0.5 * x + 5 + np.random.normal(0, 1, 100)

x, y
plt.scatter(x, y)
<matplotlib.collections.PathCollection at 0x1a3cfbd9b38>


X
x_train,x_test,y_train,y_test = train_test_split(X, y)

rid_reg = RidgeGression(10, 10)

rid_reg.fit(x_train,y_train)
Pipeline(memory=None,
     steps=[('poly', PolynomialFeatures(degree=10, include_bias=True, interaction_only=False)), ('stand_scal', StandardScaler(copy=True, with_mean=True, with_std=True)), ('ridge', Ridge(alpha=10, copy_X=True, fit_intercept=True, max_iter=None,
   normalize=False, random_state=None, solver='auto', tol=0.001))])

rid_reg.predict(x_test)
y_predict = rid_reg.predict(x_test)

mean_absolute_error(y_predict, y_test)
0.8546305732275755

猜你喜欢

转载自blog.csdn.net/qq_37982109/article/details/88386968
今日推荐