dowhy.causal_refuters.overrule.BCS 包#
子模块#
dowhy.causal_refuters.overrule.BCS.beam_search 模块#
用于优化的束搜索工具。
本模块实现了 OverRule [1] 中的布尔规则集估计器。代码改编自 (并做了一些简化) clinicalml/overlap-code,遵循 MIT 许可。
[1] Oberst, M., Johansson, F., Wei, D., Gao, T., Brat, G., Sontag, D., & Varshney, K. (2020). Characterization of Overlap in Observational Studies. In S. Chiappa & R. Calandra (Eds.), Proceedings of the Twenty Third International Conference on Artificial Intelligence and Statistics (Vol. 108, pp. 788–798). PMLR. https://arxiv.org/abs/1907.04138
- class dowhy.causal_refuters.overrule.BCS.beam_search.PricingInstance(rp, rn, Xp, Xn, v0, z0)[source]#
基类:
object定价问题的实例。
更多详情请参阅
Dash, S., Gunluk, O., and Wei, D. (2018). Boolean decision rules via column generation. In Bengio, S., Wallach, H., Larochelle, H., Grauman, K., Cesa- Bianchi, N., and Garnett, R., editors, Advances in Neural Information Processing Systems 31, pages 4660–4670. Curran Associates, Inc.
- dowhy.causal_refuters.overrule.BCS.beam_search.beam_search(r, X, lambda0: float, lambda1: float, K: int = 1, UB: float = 0, D: int = 10, B: int = 5, wLB: float = 0.5, eps: float = 1e-06)[source]#
用于生成定价问题解的束搜索。
- 参数:
r – 成本向量 (残差)
X – DataFrame 中的二值特征
lambda0 (float) – 项的固定成本
lambda1 (float) – 每个文字的成本
K (int, optional) – 返回的最大解数量,默认为 1
UB (float, optional) – 解值的初始上界,默认为 0
D (int, optional) – 最大度,默认为 10
B (int, optional) – 束宽度,默认为 5
wLB (float, optional) – 评估节点时下界的权重,默认为 0.5
eps (float, optional) – 比较时的数值容差,默认为 1e-6
dowhy.causal_refuters.overrule.BCS.load_process_data_BCS 模块#
用于特征二值化的代码。
本模块实现了 OverRule [1] 中的布尔规则集估计器。代码改编自 (并做了一些简化) clinicalml/overlap-code,遵循 MIT 许可。
[1] Oberst, M., Johansson, F., Wei, D., Gao, T., Brat, G., Sontag, D., & Varshney, K. (2020). Characterization of Overlap in Observational Studies. In S. Chiappa & R. Calandra (Eds.), Proceedings of the Twenty Third International Conference on Artificial Intelligence and Statistics (Vol. 108, pp. 788–798). PMLR. https://arxiv.org/abs/1907.04138
- class dowhy.causal_refuters.overrule.BCS.load_process_data_BCS.FeatureBinarizer(colCateg: List[str] = [], numThresh: int = 9, negations: bool = False, threshStr: bool = False, threshOverride: Dict = {}, **kwargs)[source]#
基类:
TransformerMixin用于对类别特征和有序特征(包括连续特征)进行二值化的转换器。
请注意,所有特征在学习布尔规则之前都会被转换为二值变量。
初始化用于对类别特征和有序特征(包括连续特征)进行二值化的转换器
- 参数:
colCateg (List[str], optional) – 类别列列表,默认为 [],'object' dtype 会被自动视为类别
numThresh (int, optional) – 用于二值化有序特征的分位数阈值数量,默认为 9
negations (bool, optional) – 是否包含否定,默认为 False
threshStr (bool, optional) – 是否将阈值转换为字符串,默认为 False
threshOverride (Dict, optional) – 用于覆盖分位数阈值的字典,默认为 {},格式为 {colname : np.linspace object} 以定义分界点
dowhy.causal_refuters.overrule.BCS.overlap_boolean_rule 模块#
OverlapBooleanRule。
本模块实现了 OverRule [1] 中的布尔规则集估计器。代码改编自 (并做了一些简化) clinicalml/overlap-code,遵循 MIT 许可。
[1] Oberst, M., Johansson, F., Wei, D., Gao, T., Brat, G., Sontag, D., & Varshney, K. (2020). Characterization of Overlap in Observational Studies. In S. Chiappa & R. Calandra (Eds.), Proceedings of the Twenty Third International Conference on Artificial Intelligence and Statistics (Vol. 108, pp. 788–798). PMLR. https://arxiv.org/abs/1907.04138
- class dowhy.causal_refuters.overrule.BCS.overlap_boolean_rule.OverlapBooleanRule(alpha=0.95, lambda0=0.01, lambda1=0.01, K=20, D=20, B=10, iterMax=10, eps=1e-06, silent=False, verbose=False, solver='ECOS', rounding='greedy_sweep')[source]#
基类:
objectscikit-learn 风格的重叠布尔规则类
以析取范式学习布尔规则来描述正类。
- 参数:
alpha (float, optional) – 确保包含在规则中的正样本比例,默认为 0.95
lambda0 (float, optional) – 规则数量的正则化项,默认为 1e-2
lambda1 (float, optional) – 文字数量的正则化项,默认为 1e-2
K (int, optional) – 束搜索期间返回的最大结果数,默认为 20
D (int, optional) – 每次束搜索迭代中最大额外规则数,默认为 20
B (int, optional) – 束搜索宽度,默认为 10
iterMax (int, optional) – 列生成的最大迭代次数,默认为 10
eps (float, optional) – 比较时的数值容差,默认为 1e-6
silent (bool) – 是否静默非优化器输出,默认为 False
verbose (bool, optional) – 是否输出优化器详细信息,默认为 False
solver (str, optional) – CVXPY 用于求解 LP 松弛问题的线性规划求解器,默认为 ‘ECOS’
rounding (str, optional) – 执行舍入的策略,可以是 ‘greedy’ 或 ‘greedy_sweep’,默认为 ‘greedy_sweep’
- fit(X: DataFrame, y: ndarray | DataFrame)[source]#
将模型拟合到训练数据。
- 参数:
X – 包含协变量的 Pandas DataFrame
y – 对于重叠/支持 (+1) (取决于正在学习的规则), 对于非重叠 (0), 对于背景样本 (-1)。对于重叠规则应仅包含 (+1/0), 对于学习支持规则应仅包含 (+1/-1)。
- greedy_round_(X: DataFrame, y: ndarray | DataFrame, xi: float = 0.5, use_lp: bool = False)[source]#
将规则系数四舍五入为整数值。
对于 DNF,这从没有合取项开始,然后根据成本贪婪地添加它们。该成本惩罚包含(任何)负样本,奖励包含(新的)正样本,并一直持续到覆盖至少 alpha 比例的正样本。
- 参数:
X – 包含协变量的 Pandas DataFrame
y – 对于重叠/支持 (+1) (取决于正在学习的规则), 对于非重叠 (0), 对于背景样本 (-1)。对于重叠规则应仅包含 (+1/0), 对于学习支持规则应仅包含 (+1/-1)。
xi – 包含正样本的奖励,相对于包含负样本的成本 (1)
use_lp – 仅限于 LP 系数为正的那些合取项。请注意,LP 无论如何都会产生影响,因为我们这里只考虑由列生成产生的规则。
- round_(X: DataFrame, y: ndarray | DataFrame, scoring: str = 'greedy', xi=None, use_lp: bool = True)[source]#
通过贪婪方法将规则系数四舍五入为整数值,可以使用固定奖励 (scoring=”greedy”) 或根据分类正样本与负样本的平衡准确度来优化包含正样本的奖励 (scoring=”greedy_sweep”)。
- 参数:
X – 包含协变量的 Pandas DataFrame
y – 对于重叠/支持 (+1) (取决于正在学习的规则), 对于非重叠 (0), 对于背景样本 (-1)。对于重叠规则应仅包含 (+1/0), 对于学习支持规则应仅包含 (+1/-1)。
xi – 包含正样本的奖励,相对于包含负样本的成本 (1)。对于 scoring=”greedy”,应为单个值,或对于 scoring=”greedy_sweep” 为值数组。对于后者,默认值为 np.logspace(np.log10(0.01), 0.5, 20)。
use_lp – 仅限于 LP 系数为正的那些合取项。请注意,LP 无论如何都会产生影响,因为我们这里只考虑由列生成产生的规则。