Logo
Section 1 / 5

正则化(Lasso、Ridge)

探索Lasso和Ridge正则化的基本概念,为面试做好准备。

导入

正则化(Lasso、Ridge)

探索Lasso和Ridge正则化的基本概念,为面试做好准备。

...
Lasso 与 Ridge 回归对比

表格

特性Lasso 回归Ridge 回归
正则化惩罚项L1(系数绝对值之和)L2(系数平方值之和)
特征选择能力可将系数精确压缩至零,产生稀疏解将系数向零收缩,但极少恰好为零
适用场景适用于特征选择适用于所有特征均有贡献的情况
解的唯一性可能存在多个解解始终唯一
1from sklearn.linear_model import LinearRegression 2from sklearn.datasets import load_diabetes 3from sklearn.model_selection import train_test_split 4from sklearn.metrics import mean_squared_error 5from sklearn.linear_model import Lasso 6import numpy as np 7 8# 加载数据 9X, y = load_diabetes(return_X_y=True) 10X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42) 11 12lasso = Lasso(alpha=0.1) 13lasso.fit(X_train, y_train) 14lasso_preds = lasso.predict(X_test) 15 16print("\nLasso - 训练集得分:", lasso.score(X_train, y_train)) 17print("Lasso - 测试集得分:", lasso.score(X_test, y_test)) 18print("Lasso - 均方误差:", mean_squared_error(y_test, lasso_preds)) 19print("Lasso - 非零系数个数:", np.count_nonzero(lasso.coef_))
1from sklearn.linear_model import LinearRegression 2from sklearn.datasets import load_diabetes 3from sklearn.model_selection import train_test_split 4from sklearn.metrics import mean_squared_error 5from sklearn.linear_model import Ridge 6import numpy as np 7 8# 加载数据 9X, y = load_diabetes(return_X_y=True) 10X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42) 11 12ridge = Ridge(alpha=1.0) 13ridge.fit(X_train, y_train) 14ridge_preds = ridge.predict(X_test) 15 16print("\nRidge - 训练集得分:", ridge.score(X_train, y_train)) 17print("Ridge - 测试集得分:", ridge.score(X_test, y_test)) 18print("Ridge - 均方误差:", mean_squared_error(y_test, ridge_preds)) 19print("Ridge - 非零系数个数:", np.count_nonzero(ridge.coef_))

理解无监督学习算法

集成方法