48-LASSO

LASSO

  在上一篇博客中介绍了岭回归这样一种模型正则化的方式,这篇博客主要介绍另一种模型正则化的方式 LASSO Regularization

  回顾一下岭回归的任务是:

在这里插入图片描述
  其实 LASSO 的原理是和岭回归是一样的,只不过在怎么表达这个 θ θ θ 最小上选用了一个不同的指标。

在这里插入图片描述
  这非常好理解,我们可以用 θ 2 θ^2 θ2 来代表 θ θ θ 的大小,也可以用 ∣ θ ∣ |θ| θ 来代表。

  那么 LASSO 是什么意思呢?Least Absolute Shrinkage and Selection Operator Regression。

  下面我们实际编程看一看 LASSO 回归.

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  简单比较一下 Ridge 和 LASSO。对于 Ridge 来说,当 alpha =100 时,我们得到的模型依然是一根曲线。事实上,我们使用 Ridge 很难让我们得到的模型是一根倾斜的直线,它总是保持着弯曲的形状;当我们使用 LASSO 时,alpha=0.1,我们得到的近乎是一根倾斜的直线。换句话说,我们使用 LASSO 所得到的模型更倾向于是一根直线。

在这里插入图片描述
  所以我们可以得出一个结论,LASSO 趋向于使得一部分 θ θ θ 值变为 0,所以可以作为特征选择用。因为使用 LASSO 的过程如果有一些 θ θ θ 等于 0 了,就代表 LASSO 认为这个 θ θ θ 对应的特征完全没有用了,而剩下的 θ ! = 0 θ != 0 θ!=0 的特征就是有用的,所以它可以当作特征选择用,这就是 LASSO 英文中 Selection Operator 的意思。

  但是正是因为有特征选择这样的特性,使得 LASSO 可能会错误的将有用的特征也变为0。所以从计算的准确度来说,还是 Ridge Regression 更为准确,但是如果特征特别大的话,此时使用 LASSO 也可以非常好的起到将模型的特征变小的作用。


  具体代码见 48 LASSO.ipynb

作为计算机博士生,润色完善下述代码,强化r2等性能指标,强化模型拟合度,丰富功能,强化结果可视化,引入更多种类的图片并导出至目标路径E:\1\python.exe -X pycache_prefix=C:\Users\Administrator\AppData\Local\JetBrains\PyCharmCE2024.1\cpython-cache "E:/PyCharm Community Edition 2024.1.1/plugins/python-ce/helpers/pydev/pydevd.py" --multiprocess --qt-support=auto --client 127.0.0.1 --port 65174 --file C:\Users\Administrator\PycharmProjects\pythonProject\.venv\ml\ML2\ALLV3.1v1.2.py 已连接到 pydev 调试器(内部版本号 241.15989.155)2025-04-02 16:31:46.206060: I tensorflow/core/util/port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`. 2025-04-02 16:31:48.652168: I tensorflow/core/util/port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`. 2025-04-02 16:31:51,271 - INFO - Step 1: 数据预处理 Traceback (most recent call last): File "E:\PyCharm Community Edition 2024.1.1\plugins\python-ce\helpers\pydev\pydevd.py", line 1535, in _exec pydev_imports.execfile(file, globals, locals) # execute the script ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "E:\PyCharm Community Edition 2024.1.1\plugins\python-ce\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile exec(compile(contents+"\n", file, 'exec'), glob, loc) File "C:\Users\Administrator\PycharmProjects\pythonProject\.venv\ml\ML2\ALLV3.1v1.2.py", line 469, in <module> main_pipeline( File "C:\Users\Administrator\PycharmProjects\pythonProject\.venv\ml\ML2\ALLV3.1v1.2.py", line 426, in main_pipeline X, y = preprocessor.fit_transform(raw_data, target_cols) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Administrator\PycharmProjects\pythonProject\.venv\ml\ML2\ALLV3.1v1.2.py
04-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值