用python做lasso回归_回归分析_L1正则化(LASSO回归)【python实现】

本文介绍了LASSO回归的概念,它通过在损失函数中加入L1正则化项来实现特征选择。文章通过Python代码展示了如何使用坐标下降法求解LASSO回归的权重向量,并提供了模拟数据的3D散点图和回归平面,直观地呈现了LASSO回归的效果。
摘要由CSDN通过智能技术生成

对于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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值