从线性回归谈到岭回归lasso回归再到结构风险最小化和参数缩减

       回归和分类是机器学习算法所要解决的两个主要问题。分类大家都知道,模型的输出值是离散值,对应着相应的类别,通常的简单分类问题模型输出值是二值的,也就是二分类问题。但是回归就稍微复杂一些,回归模型的输出值是连续的,也就是说,回归模型更像是一个函数,该函数通过不同的输入,得到不同的输出。

       那么,什么是线性回归,什么是非线性回归呢?

线性回归与非线性回归

       前面说了,我们的回归模型是一个函数是吧,那么线性回归就是模型函数是由若干个基本函数线性加权得到的函数。也就是每一个基本函数前面都有一个权值来调和自己对于整个模型函数的重要性。然后,非线性函数就是各个基本函数并不是以线性加权形式结合。在线性回归模型里面有一大类,叫广义线性模型GLM,这里先不讲。

       线性回归模型中的各个基函数如何选择,模型的函数就会有不同的结果。而且基函数的选择有时可以将线性模型扩展到一般的非线性形式,只要你将基函数定义为一个非线性函数就好啦。虽然通常我们都是将每个基函数定义为输入向量数据每一维特征的一次方函数,也就是输入数据的每一维特征取值,但是我们仍然有必要聊聊其他的情况,这样才能感觉到线性回归的强大。

  •        首先,假设模型由N个基函数线性加权构成,我们可以在第一个取输入x的一次方,第二个取x的二次方,。。。第N个取N次方,这样模型就成为了x的多项式形式。这样会导致一个问题,每一个基函数的输入特征值会影响到其他基函数的值,因为它们共享变量x嘛。有一种函数可以解决这个问题,样条函数,有兴趣的同学可以查查。
  •       &n
### 线性回归Lasso回归岭回归的原理比较 #### 1. 线性回归 线性回归是一种基本的监督学习算法,用于建立因变量(目标值)与一个或多个自变量(特征)之间的线性关系。其目标是最小化预测值与实际值之间的误差平方(均方误差)。数学上,线性回归的目标函数可以表示为: \[ J(\theta) = \frac{1}{2m} \sum_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)})^2 \] 其中 \( h_\theta(x) = \theta_0 + \theta_1x_1 + \theta_2x_2 + \dots + \theta_nx_n \) 是假设函数[^1]。 线性回归的一个主要问题是它对数据集中的噪声非常敏感,这可能导致模型过拟合或回归系数不稳定。 ```python from sklearn.linear_model import LinearRegression reg1 = LinearRegression() reg1.fit(X_train, y_train) print(reg1.coef_, reg1.intercept_) ``` #### 2. 岭回归 岭回归线性回归的一种扩展,通过在损失函数中加入 L2 正则化项来防止过拟合。L2 正则化通过对回归系数施加惩罚,限制它们的大小,从而提高模型的稳定性。岭回归的目标函数可以表示为: \[ J(\theta) = \frac{1}{2m} \sum_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)})^2 + \alpha \sum_{j=1}^{n} \theta_j^2 \] 其中 \(\alpha\) 是正则化参数,控制正则化的强度。较大的 \(\alpha\) 会导致更小的回归系数,从而减少模型复杂度[^2]。 ```python from sklearn.linear_model import Ridge reg2 = Ridge(alpha=1.0) reg2.fit(X_train, y_train) print(reg2.coef_, reg2.intercept_) ``` #### 3. Lasso 回归 Lasso 回归(Least Absolute Shrinkage and Selection Operator)同样是线性回归的一种扩展,但其使用的是 L1 正则化项。L1 正则化倾向于将部分回归系数缩减到零,从而实现特征选择。Lasso 回归的目标函数可以表示为: \[ J(\theta) = \frac{1}{2m} \sum_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)})^2 + \alpha \sum_{j=1}^{n} |\theta_j| \] Lasso 回归的优势在于它能够自动选择重要的特征,并忽略不相关的特征[^3]。 ```python from sklearn.linear_model import Lasso reg3 = Lasso(alpha=1.0) reg3.fit(X_train, y_train) print(reg3.coef_, reg3.intercept_) ``` #### 比较分析 - **线性回归**:简单且易于理解,但容易受到噪声的影响,可能导致模型不稳定。 - **岭回归**:通过 L2 正则化项减少回归系数的波动,适用于所有特征都可能对目标变量有贡献的情况。 - **Lasso 回归**:通过 L1 正则化项实现特征选择,适用于高维数据集或存在冗余特征的情况。 ### 总结 线性回归岭回归 Lasso 回归各有优劣,具体选择取决于数据集的特性以及任务需求。如果需要特征选择,Lasso 回归是更好的选择;如果需要稳定的回归系数,岭回归更为合适[^1]。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值