对于2个变量的样本回归分析,L2和L1正则化基本相同,仅仅正则化项不同
LASSO回归为在损失函数加入\(||\omega||_1\) ,\(\omega\) 的1范数 而 岭回归为\(||\omega||_2^2\),\(\omega\) 的2范数
*矩阵、向量范数
*L1正则化(岭回归)
LASSO Regression
Loss Function
\[J(\omega)= (X \omega - Y)^T(X \omega - Y) + \lambda ||\omega||_1
\]
\(||\omega||_1\)导数不连续,采用坐标下降法求\(\omega\)
坐标下降法推导过程
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
M = 3 #变量个数+1 变量加 偏移项b, 一个3个参数
N = 50 #样本个数
#随机生成两个属性的N个样本
feature1 = np.random.rand(N)*10
feature2 = np.random.rand(N)*10
splt = np.ones((1, N))
#
temp_X1 = np.row_stack((feature1, feature2))
temp_X = np.vstack((temp_X1, splt))
X_t = np.mat(temp_X)
X = X_t.T
temp_Y = np.