迴歸:正則化

用 Python 練習機器學習面試題

Lisa Stuart

Data Scientist

正則化演算法

  • Ridge 迴歸
  • Lasso 迴歸
  • ElasticNet 迴歸
用 Python 練習機器學習面試題

普通最小平方法(OLS)

OLS 圖

OLS 公式

1 https://en.wikipedia.org/wiki/Linear_regression#Simple_and_multiple_linear_regression
用 Python 練習機器學習面試題

Ridge 損失函式

Ridge 迴歸圖

Ridge 迴歸公式

1 https://gerardnico.com/data_mining/ridge_regression#tuning_parameter_math_lambdamath
用 Python 練習機器學習面試題

Lasso 損失函式

Lasso 迴歸圖

Lasso 迴歸公式

1 https://stats.stackexchange.com/questions/155192/why-discrepancy-between-lasso-and-randomforest
用 Python 練習機器學習面試題

Ridge 與 Lasso 比一比

正則化 L1(Lasso) L2(Ridge)
懲罰 係數絕對值總和 係數平方總和
解的型態 稀疏 非稀疏
解的數量 多個 唯一
特徵選取 不會
抗極端值? 不會
複雜模式? 不擅長 擅長
用 Python 練習機器學習面試題

ElasticNet

ElasticNet 公式

用 Python 練習機器學習面試題

Boston 房價資料的正則化示例

特徵 CHAS NOX RM
係數估計值 2.7 -17.8 3.8
正則化後係數估計 0 0 0.95
用 Python 練習機器學習面試題

正則化相關函式

# Lasso estimator 
sklearn.linear_model.Lasso

# Lasso estimator with cross-validation
sklearn.linear_model.LassoCV

# Ridge estimator
sklearn.linear_model.Ridge

# Ridge estimator with cross-validation
sklearn.linear_model.RidgeCV

# ElasticNet estimator
sklearn.linear_model.ElasticNet
# ElasticNet estimator with cross-validation
sklearn.linear_model.ElasticNetCV

# Train/test split
sklearn.model_selection.train_test_split

# Mean squared error
sklearn.metrics.mean_squared_error(y_test, 
                           predict(X_test))
# Best regularization parameter
mod_cv.alpha_

# Array of log values
alphas=np.logspace(-6, 6, 13)
用 Python 練習機器學習面試題

一起來練習吧!

用 Python 練習機器學習面試題

Preparing Video For Download...