econml.sklearn_extensions.linear_model.SelectiveRegularization
- class econml.sklearn_extensions.linear_model.SelectiveRegularization(unpenalized_inds, penalized_model, fit_intercept=True)[source]
线性模型的估计器,其中正则化仅应用于系数的子集。
假设我们的损失函数是
假设我们的损失函数是
因此我们只对 \(\beta_2\) 中的系数进行正则化。然后,由于 \(\beta_1\) 不出现在惩罚项中,一旦 \(\beta_2\) 已知,找到使损失最小化的 \(\beta_1\) 问题就简化为一个普通的OLS回归,因此
于是,由于 \(\beta_1\) 不出现在惩罚项中,在已知 \(\beta_2\) 时,求解使得损失函数最小化的 \(\beta_1\) 的问题就简化为一个普通的 OLS 回归问题,因此有
将此代入损失函数,我们得到将其代入损失函数,我们得到
然而,令 \(M_{X_1} = I - X_1 (X_1^\top X_1)^{-1}X_1^\top\),我们看到这变为但是,令 \(M_{X_1} = I - X_1 (X_1^\top X_1)^{-1}X_1^\top\),我们注意到这成为
因此,找到最小化 \(\beta_2\) 的问题可以通过使用包含 \(f\) 的惩罚回归方法,将 \(M_{X_1} y\) 对 \(M_{X_1} X_2\) 进行回归来解决。注意,这些仅仅是 \(y\) 和 \(X_2\) 在使用OLS对 \(X_1\) 进行回归时的残差值。参数
- unpenalized_inds (int列表, 其他一维索引表达式, 或 可调用对象) – 模型拟合时不应受惩罚的索引;所有其他索引都将受惩罚。如果这是一个可调用对象,它将在调用 fit 时作为参数被调用,并应返回相应的索引表达式。例如,
lambda X, y: unpenalized_inds=slice(1,-1)
将导致只有第一个和最后一个索引受到惩罚。
- 线性回归问题的估计系数。如果在拟合期间传入了多个目标(y 是二维),则这是一个形状为 (n_targets, n_features) 的二维数组;如果只传入一个目标,则这是一个长度为 n_features 的一维数组。
类型
- 数组,形状为 (n_features, ) 或 (n_targets, n_features)
intercept_
- 线性模型中的独立项(截距)。
float 或 形状为 (n_targets) 的数组
- 数组,形状为 (n_features, ) 或 (n_targets, n_features)
penalized_model
- 惩罚线性回归模型,从初始化时传入的模型克隆而来
回归器
- 数组,形状为 (n_features, ) 或 (n_targets, n_features)
__init__(unpenalized_inds, penalized_model, fit_intercept=True)[source]
- 方法
__init__
(unpenalized_inds, penalized_model)fit
(X, y[, sample_weight])拟合模型。
predict
(X)对每个样本进行预测。
score
(X, y)对一组特征的预测结果相对于真实值进行评分。
属性
known_params
- X (类数组对象, 形状为 (n, d_x)) – 用于回归的特征
predict
(X)
- X (类数组对象, 形状为 (m, d_x)) – 要预测其目标的样本
score
(X, y)
- X (类数组对象, 形状为 (m, d_x)) – 要预测的样本
属性
- unpenalized_inds (int列表, 其他一维索引表达式, 或 可调用对象) – 模型拟合时不应受惩罚的索引;所有其他索引都将受惩罚。如果这是一个可调用对象,它将在调用 fit 时作为参数被调用,并应返回相应的索引表达式。例如,