当前位置:   article > 正文

监督学习 - Lasso回归(Lasso Regression)

lasso regression

什么是机器学习

Lasso回归(Lasso Regression),也称为 L1 正则化线性回归,是一种在线性回归模型中加入 L1 正则化项以防止过拟合的方法。与岭回归(Ridge Regression)不同,Lasso回归使用的是参数的绝对值(L1范数)来添加正则化项。

Lasso回归的目标函数可以表示为:
在这里插入图片描述

其中:

  • J(θ) 是Lasso回归的目标函数
  • MSE(θ) 是均方误差(Mean Squared Error)
  • α 是正则化参数
  • θ1, θ2, ... , θn 是模型的参数。

与岭回归类似,Lasso回归通过最小化目标函数找到最适合数据的参数。正则化项对模型的参数进行惩罚,使得参数趋向于较小的值,同时也有助于产生稀疏模型,即某些特征的权重为零。

代码示例(使用 Python 和 scikit-learn

以下是一个使用 scikit-learn 库进行Lasso回归的简单示例:

from sklearn.linear_model import Lasso
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
import numpy as np
import matplotlib.pyplot as plt

# 生成随机数据
np.random.seed(0)
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)

# 创建Lasso回归模型
lasso_model = Pipeline([
    ('scaler', StandardScaler()),  # 特征标准化
    ('lasso', Lasso(alpha=0.1))  # Lasso回归模型,alpha是正则化强度
])

# 拟合模型
lasso_model.fit(X, y)

# 预测新数据
X_new = np.array([[1.5]])
y_pred = lasso_model.predict(X_new)
print("预测结果:", y_pred[0])

# 绘制散点图和拟合的直线
plt.scatter(X, y, color='blue')
plt.plot(X, lasso_model.predict(X), color='red', linewidth=3)
plt.xlabel("自变量")
plt.ylabel("因变量")
plt.title("Lasso回归")
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

在这个例子中,我们使用了 scikit-learnLasso 类来构建 Lasso 回归模型。模型中的 alpha 参数表示正则化强度,你可以根据实际问题调整这个参数。同样,模型包括一个 StandardScaler,用于对输入特征进行标准化。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/598971
推荐阅读
  

闽ICP备14008679号