【machine learning】线性模型(一)系数解释中的常见缺陷

1.线性模型

分类

线性模型系数解释中的常见缺陷

Pipeline
使用 make_pipeline 函数创建一个 sklearn 中的 Pipeline 对象 model,该 Pipeline 包含:预处理器 preprocessorTransformedTargetRegressor

model = make_pipeline(
    preprocessor,
    TransformedTargetRegressor(
        regressor=Ridge(alpha=1e-10),
        func=np.log10,
        inverse_func=sp.special.exp10
    )
)
  1. 预处理器 preprocessor
    preprocessor 是一个已经定义好的预处理步骤:
preprocessor = make_column_transformer(
    (OneHotEncoder(drop='if_binary'), categorical_columns),
    remainder='passthrough'
  1. TransformedTargetRegressor
    TransformedTargetRegressor 是 sklearn 中的一个包装器类,用于处理回归问题中目标变量(y)的变换。它在训练阶段对目标变量应用一个指定的变换函数(func),在预测阶段使用相应的逆变换函数(inverse_func)恢复原始尺度的目标值。这样可以在回归模型内部处理目标变量的非线性关系或尺度问题,而无需手动对数据进行变换。

  2. Regressor: Ridge(alpha=1e-10)
    使用岭回归(Ridge Regression)作为内部的回归模型,设置正则化参数 alpha=1e-10。岭回归在最小化残差平方和的同时引入 L2 正则化,有助于防止过拟合并提高模型的泛化能力。

  3. Func: np.log10:
    将目标变量 y 应用以10为底的对数变换。对数变换常用于处理右偏分布(长尾分布)的目标变量,可以压缩大值范围,使模型对较小的变化更加敏感,尤其是在存在极端值的情况下。

  4. Inverse_func:
    sp.special.exp10: 设置逆变换函数为以10为底的指数函数(sp.special.exp10 是 scipy.special 模块提供的以10为底的指数函数,等价于 10 ** x)。在模型预测阶段,将对数尺度的预测结果逆变换回原始尺度,以便得到实际意义的目标值。

查看特征

feature_names = (model.named_steps['columntransformer']
                      .name
  • 27
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值