美文网首页
常用线性回归模型

常用线性回归模型

作者: xieyan0811 | 来源:发表于2022-09-25 10:08 被阅读0次

    多元线性回归

    多元线性回归是最常用的预测数值型目标的建模方法,也常用于数据分析中的多因素分析。
    \min_w||Xw-y||_2^2
    后面几种回归都是在它基础上稍做修改。当特征数多于实例数,某些数据有问题,或者某些特征相关性高时,线性回归得到的参数常常数值很大,常用Lasso回归和Ridge回归解决这一问题,防止模型过拟合。

    lasso回归(套索回归)

    lasso回归倾向于减少有效参数,使模型更加简单。具体方法是修改损失函数,将L1范数加入惩罚项,它可生成稀疏的模型参数。常用于特征存在共线性的情况,实现模型特征选择。
    \min_w\frac{1}{2n_{samples}}||Xw-y||_2^2+\alpha||w||_1

    Ridge回归(岭回归)

    和Lasso回归类似,将L2范数加入惩罚项。常用于数据个数小于数据维度的情况,它限制参数大小,使之逼近0。
    \min_w||Xw-y||_2^2+\alpha||w||_2^2

    Huber回归

    Huber的损失函数结合了mse和mae,当模型的预测结果和真实值的差异较小时使用mse,较大时则使用mae,具体阈值通过人工设定。

    示例

    from sklearn.datasets import load_boston
    from sklearn.model_selection import train_test_split 
    from sklearn.linear_model import LinearRegression as LR,Ridge,HuberRegressor,LassoCV
    from sklearn.metrics import mean_squared_error
    
    lb = load_boston()
    x_train, x_test, y_train, y_test = train_test_split(lb.data, lb.target, test_size=0.25,  random_state=666)
    
    #model = HuberRegressor().fit(x_train, y_train)
    #model = Ridge().fit(x_train, y_train)
    #model = LR().fit(x_train, y_train)
    model = LassoCV().fit(x_train, y_train)
    preds = model.predict(x_test)
    
    print(model.coef_) # 打印回归参数
    print(mean_squared_error(y_test, preds))
    

    相关文章

      网友评论

          本文标题:常用线性回归模型

          本文链接:https://www.haomeiwen.com/subject/gtczortx.html