dowhy.causal_refuters.overrule.BCS 包#

子模块#

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} 以定义分界点

fit(X)[source]#

拟合数据,包括适当时学习阈值。

设置以下内部变量: * maps = 用于一元/二元列的映射字典 * enc = 用于类别列的 OneHotEncoder 字典 * thresh = 用于有序列的阈值列表字典 * NaN = 包含 NaN 值的有序列列表

参数:

X (pd.DataFrame) – 作为 Pandas Dataframe 的原始特征

transform(X: DataFrame) DataFrame[source]#

将数据转换为二值特征。

参数:

X (pd.DataFrame) – 作为 Pandas Dataframe 的原始特征

返回 A:

二值特征 dataframe

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]#

基类: object

scikit-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’

compute_conjunctions(X)[source]#

计算 self.z 中指定特征的合取项

fit(X: DataFrame, y: ndarray | DataFrame)[source]#

将模型拟合到训练数据。

参数:
  • X – 包含协变量的 Pandas DataFrame

  • y – 对于重叠/支持 (+1) (取决于正在学习的规则), 对于非重叠 (0), 对于背景样本 (-1)。对于重叠规则应仅包含 (+1/0), 对于学习支持规则应仅包含 (+1/-1)。

get_objective_value(X, o, rounded=True)[source]#
get_params()[source]#

返回估计器参数

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 无论如何都会产生影响,因为我们这里只考虑由列生成产生的规则。

predict(X)[source]#

预测点是否属于重叠区域

predict_(X, w)[source]#

预测点是否属于重叠区域

predict_rules(X)[source]#

预测点是否属于重叠区域

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 无论如何都会产生影响,因为我们这里只考虑由列生成产生的规则。

set_params(**params)[source]#

设置估计器参数

模块内容#