• 线性回归的正则方法:岭回归和Lasso


    线性回归的正则方法包括岭回归(Ridge Regression)和Lasso回归(Least Absolute Shrinkage and Selection Operator Regression)。这两种方法都是为了解决线性回归中可能存在的过拟合问题而提出的。

    在这里插入图片描述

    选择使用岭回归还是Lasso回归通常取决于问题的性质和数据的特点。如果你认为在模型中存在许多相关的特征,且不希望它们的权重过大,可以尝试使用岭回归。如果你希望模型能够自动选择重要的特征,可以尝试使用Lasso回归。在实际应用中,还可以使用弹性网络(Elastic Net),它综合了岭回归和Lasso回归的特点。

    让我们通过一个简单的例子来说明岭回归和Lasso回归的应用。考虑一个具有共线性特征的线性回归问题。

    在这里插入图片描述

    在Python中,可以使用Scikit-learn库进行岭回归和Lasso回归的实现。下面是一个简单的示例代码:

    from sklearn.linear_model import Ridge, Lasso
    from sklearn.model_selection import train_test_split
    from sklearn.metrics import mean_squared_error
    import numpy as np
    
    # 数据准备
    X = np.array([[1, 2], [2, 3], [3, 4], [4, 5]])
    y = np.array([5, 8, 10, 12])
    
    # 划分训练集和测试集
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42)
    
    # 岭回归
    alpha_ridge = 1.0  # 岭回归的超参数
    ridge_model = Ridge(alpha=alpha_ridge)
    ridge_model.fit(X_train, y_train)
    
    # Lasso回归
    alpha_lasso = 1.0  # Lasso回归的超参数
    lasso_model = Lasso(alpha=alpha_lasso)
    lasso_model.fit(X_train, y_train)
    
    # 在测试集上进行预测
    y_pred_ridge = ridge_model.predict(X_test)
    y_pred_lasso = lasso_model.predict(X_test)
    
    # 评估模型性能
    mse_ridge = mean_squared_error(y_test, y_pred_ridge)
    mse_lasso = mean_squared_error(y_test, y_pred_lasso)
    
    print("岭回归 MSE:", mse_ridge)
    print("Lasso回归 MSE:", mse_lasso)
    
    • 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

    请注意,这只是一个简单的例子,实际上,选择合适的超参数值是一个需要仔细调整的任务。通常,可以通过交叉验证等方法来选择最优的超参数。

  • 相关阅读:
    下载和安装vscode教程和配置中文插件(超详细)
    基于安卓android微信小程序的师生答疑交流平app
    搜索技巧+数学建模图片制作
    Java SpringBoot VI
    STM32 之 HAL 库串口 USART 丢数据及ORE卡死的解决方案
    蓄电池与超级电容混合储能并网逆变系统Simulink仿真
    Python+Appium实现自动化测试
    mac 安装部署mongoDB社区版
    【数据分析】时间序列
    【Python基础入门6】Python的输入与运算符
  • 原文地址:https://blog.csdn.net/rubyw/article/details/134554845