dowhy.causal_refuters.overrule 包#

子包#

子模块#

dowhy.causal_refuters.overrule.ruleset 模块#

OverRule的规则集估计器类。

本模块实现了来自OverRule [1]的布尔规则集估计器。代码是从clinicalml/overlap-code改编(并进行了一些简化),遵循MIT许可证。

[1] Oberst, M., Johansson, F., Wei, D., Gao, T., Brat, G., Sontag, D., & Varshney, K. (2020). 观察研究中重叠的特征。在 S. Chiappa & R. Calandra (Eds.), 第二十三届国际人工智能与统计会议论文集 (Vol. 108, pp. 788–798). PMLR. https://arxiv.org/abs/1907.04138

class dowhy.causal_refuters.overrule.ruleset.BCSRulesetEstimator(n_ref_multiplier: float = 1.0, lambda0: float = 0.0, lambda1: float = 0.0, cat_cols: List | None = None, negations: bool = True, num_thresh: int = 9, seed: int | None = None, ref_range: Dict[str, Dict] | None = None, thresh_override: Dict | None = None, **kwargs)[source]#

基础类:object

基于布尔规则和列生成的规则集估计器。

按照scikit-learn接口操作,并带有一些额外的方法。

初始化估计器。

**kwargs 被传递给 OverlapBooleanRule(有关参数的描述,请参见 ./BCS/overlap_boolean_rule.py)

Parameters:
  • n_ref_multiplier (float, optional) – 参考样本计数乘数,仅用于估计支持度,默认值为1.0,但对于重叠规则应设置为零

  • lambda0 (float, optional) – 规则数量的正则化,默认为 0.0

  • lambda1 (float, 可选) – 正则化项,用于控制字面量的数量,默认值为0.0

  • cat_cols (可选[列表], 可选) – 分类列的集合,默认为 None

  • negations (bool, optional) – 包含文字的否定,默认为 True

  • num_thresh (int, optional) – 用于离散化连续变量的分箱数量,默认为9(用于十分位数)

  • seed (int, optional) – 用于参考样本的随机种子,仅用于估计支持度,默认为 None

  • ref_range (Optional[Dict], optional) – 手动覆盖参考样本的范围,以字典形式给出 ref_range = {c: {“is_binary”: True/False, “min”: min_value, “max”: max_value}}

  • thresh_override (可选[字典], 可选) – 手动覆盖连续特征的阈值,以如下字典形式给出,仅适用于具有超过num_thresh唯一值的连续特征 thresh_override = {column_name: np.linspace(0, 100, 10)}

fit(x, o=None)[source]#

拟合规则用于表征支持(如果未提供O)或用于表征重叠,在这种情况下,O应为一个向量,其中1表示重叠,0表示非重叠。

此函数主要是围绕OverlapBooleanRule估计器的封装,确保在将特征输入到规则集估计器之前进行二值化,构建用于支持特征描述的参考样本等。

Parameters:
  • x (Pandas DataFrameNumpy Array, 形状 (n, d)) – 协变量样本

  • o (Pandas DataFrameNumpy Array, 形状 (n, )) – 二进制指示器,用于指示样本是否属于重叠区域,默认为 None。如果提供,应与 x 的长度相同。

get_params(deep=False)[source]#

返回估计器参数

init_estimator_()[源代码]#

初始化规则集估计器和特征二值化器。

predict(x)[source]#

预测X是否位于重叠区域(1 = 真)。

Parameters:

x (Pandas DataFrameNumpy Array, 形状 (n, d)) – 协变量样本

predict_rules(x)[source]#

预测由x激活的规则

Parameters:

x (Pandas DataFrameNumpy Array, 形状 (n, d)) – 协变量样本

Returns:

具有二进制值的矩阵,形状为 (n, r),其中 r 是估计器考虑的总规则数,1 表示样本匹配规则,0 表示不匹配。

Return type:

Numpy 数组,形状 (n, r)

rules(as_str: bool = False, transform: Callable[[str, float], float] | None = None, fmt: str = '%.3f', labels: Dict[str, str] = {})[source]#

返回由估计器学习的规则。

Parameters:
  • as_str (bool, optional) – 如果为True,则返回字符串,否则返回字典,默认为False

  • transform (可选[Callable[[str, float], float]], 可选) – 一个函数,它接受规则和阈值的键值对并转换值。 此函数用于重新缩放标准化数据,默认为 None

  • fmt (str, optional) – 用于浮点值的格式化字符串,用于打印带有阈值的规则,默认为“%.3f”

  • labels (Dict[str, str], optional) – 字典映射,从原始特征名称到打印规则时的显示名称,任何未在此指定的特征将默认使用原始名称,默认为 {}

set_params(**params)[source]#

设置估计器参数

dowhy.causal_refuters.overrule.utils 模块#

用于学习布尔规则的实用工具。

本模块实现了来自OverRule [1]的布尔规则集估计器。代码是从clinicalml/overlap-code改编(并进行了一些简化),遵循MIT许可证。

[1] Oberst, M., Johansson, F., Wei, D., Gao, T., Brat, G., Sontag, D., & Varshney, K. (2020). 观察研究中的重叠特征。在 S. Chiappa & R. Calandra (Eds.), 第二十三届国际人工智能与统计会议论文集 (Vol. 108, pp. 788–798). PMLR. https://arxiv.org/abs/1907.04138

dowhy.causal_refuters.overrule.utils.fatom(f: str, o: str, v: str | float | None, fmt: str = '%.3f') str[source]#

格式化一个“原子”,即在布尔规则中的单个字面量。

Parameters:
  • f (str) – 特征名称

  • o (str) – 操作符,其中之一为 [“<=”, “>”, “>=”, “<”, “==”, “not”, “”]

  • v (可选[联合[str, float]]) – 比较的值,用于 [“<=”, “>”, “>=”, “<”, “==”]

  • fmt (str) – 浮点数的格式化字符串,默认为“%.3f”

Returns:

格式化原子

Return type:

字符串

dowhy.causal_refuters.overrule.utils.rule_str(C: List, fmt: str = '%.3f') str[source]#

将规则转换为字符串。

Parameters:
  • C (列表) – 规则列表,其中每个元素是一个包含一组原子的列表(单个规则)。

  • fmt (str) – 浮点数的格式化字符串,默认为“%.3f”

Returns:

格式化规则

Return type:

字符串

dowhy.causal_refuters.overrule.utils.sampleUnif(x, n: int = 10000, seed: int | None = None)[source]#

从样本X的每列的最大值/最小值上的均匀分布中生成样本。

这些用于估计支持度,因为规则下包含的样本数量提供了体积的度量。此函数专门用于连续变量,而sample_reference处理一般情况,在必要时调用此函数。

Parameters:
  • x (Pandas DataframeNumpy Array) – 样本的二维数组,其中每列对应一个特征。

  • n (int, optional) – 整数,默认为10000

  • seed (int, optional) – 用于均匀采样的随机种子,默认为 None

dowhy.causal_refuters.overrule.utils.sample_reference(x, n: int | None = None, cat_cols: List[str] = [], seed: int | None = None, ref_range: Dict | None = None)[source]#

从X列的均匀分布中生成样本。

Parameters:
  • x (Pandas DataframeNumpy Array) – 样本的二维数组,其中每列对应一个特征。

  • n (可选[int], 可选) – 要抽取的样本数量,默认为提供的样本数量。

  • cat_cols (List[str], optional) – 分类列的集合,默认为 None

  • seed (int, optional) – 用于均匀采样的随机种子,默认为 None

  • ref_range (Optional[Dict], optional) – 手动覆盖参考样本的范围,以字典形式给出 ref_range = {c: {“is_binary”: True/False, “min”: min_value, “max”: max_value}}

模块内容#