dowhy.causal_refuters.overrule 包#
子包#
- dowhy.causal_refuters.overrule.BCS package
- 子模块
- dowhy.causal_refuters.overrule.BCS.beam_search module
- dowhy.causal_refuters.overrule.BCS.load_process_data_BCS module
- dowhy.causal_refuters.overrule.BCS.overlap_boolean_rule module
OverlapBooleanRuleOverlapBooleanRule.compute_conjunctions()OverlapBooleanRule.fit()OverlapBooleanRule.get_objective_value()OverlapBooleanRule.get_params()OverlapBooleanRule.greedy_round_()OverlapBooleanRule.predict()OverlapBooleanRule.predict_()OverlapBooleanRule.predict_rules()OverlapBooleanRule.round_()OverlapBooleanRule.set_params()
- 模块内容
子模块#
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). Characterization of Overlap in Observational Studies. 载于 S. Chiappa & R. Calandra (编), 第二十三届人工智能与统计学国际会议论文集 (第 108 卷, 页码 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)
- 参数:
n_ref_multiplier (float, optional) – 参考样本计数乘数,仅用于估计支持度,默认为 1.0,但对于 Overlap 规则应设置为零
lambda0 (float, optional) – 规则数量的正则化,默认为 0.0
lambda1 (float, optional) – 文字数量的正则化,默认为 0.0
cat_cols (Optional[List], optional) – 分类列集合,默认为 None
negations (bool, optional) – 包含文字的否定,默认为 True
num_thresh (int, optional) – 用于离散化连续变量的 bin 数量,默认为 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 (Optional[Dict], optional) – 手动覆盖连续特征的阈值,以如下字典形式给出,仅适用于唯一值多于 num_thresh 的连续特征 thresh_override = {column_name: np.linspace(0, 100, 10)}
- fit(x, o=None)[source]#
拟合规则以表征支持度(如果未提供 O)或表征重叠度,后一种情况下 O 应是一个向量,用 1 表示重叠,用 0 表示非重叠。
此函数主要是 OverlapBooleanRule 估计器的包装器,确保特征在输入规则集估计器之前被二值化,构建用于支持度表征的参考样本等。
- 参数:
x (Pandas DataFrame or Numpy Array, shape (n, d)) – 协变量样本
o (Pandas DataFrame or Numpy Array, shape (n, )) – 指示样本是否属于重叠区域的二元指标,默认为 None。如果提供,应与 x 长度相同
- predict(x)[source]#
预测 X 是否位于重叠区域(1 = True)。
- 参数:
x (Pandas DataFrame or Numpy Array, shape (n, d)) – 协变量样本
- predict_rules(x)[source]#
预测被 x 激活的规则
- 参数:
x (Pandas DataFrame or Numpy Array, shape (n, d)) – 协变量样本
- 返回:
具有二元值的矩阵,形状为 (n, r),其中 r 是估计器考虑的规则总数,1 表示样本匹配该规则,0 表示不匹配。
- 返回类型:
Numpy Array, 形状 (n, r)
- rules(as_str: bool = False, transform: Callable[[str, float], float] | None = None, fmt: str = '%.3f', labels: Dict[str, str] = {})[source]#
返回估计器学习到的规则。
- 参数:
as_str (bool, optional) – 如果为 True,返回字符串,否则返回字典,默认为 False
transform (Optional[Callable[[str, float], float]], optional) – 一个函数,接受规则和阈值的键值对并转换值。此函数用于重新缩放标准化数据,默认为 None
fmt (str, optional) – 浮点数的格式字符串,用于打印带阈值的规则,默认为 “%.3f”
labels (Dict[str, str], optional) – 将原始特征名称映射到打印规则时显示名称的字典,此处未指定的任何特征将默认为原始名称,默认为 {}
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). Characterization of Overlap in Observational Studies. 载于 S. Chiappa & R. Calandra (编), 第二十三届人工智能与统计学国际会议论文集 (第 108 卷, 页码 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]#
格式化一个“原子”,即布尔规则中的单个文字。
- 参数:
f (str) – 特征名称
o (str) – 运算符,以下之一 [“<=”, “>”, “>=”, “<”, “==”, “not”, “”]
v (Optional[Union[str, float]]) – [“<=”, “>”, “>=”, “<”, “==”] 的比较值
fmt (str) – 浮点数的格式字符串,默认为 “%.3f”
- 返回:
格式化后的原子
- 返回类型:
str
- dowhy.causal_refuters.overrule.utils.rule_str(C: List, fmt: str = '%.3f') str[source]#
将规则转换为字符串。
- 参数:
C (List) – 规则列表,其中每个元素是一个列表(单个规则),包含一组原子。
fmt (str) – 浮点数的格式字符串,默认为 “%.3f”
- 返回:
格式化后的规则
- 返回类型:
str
- dowhy.causal_refuters.overrule.utils.sampleUnif(x, n: int = 10000, seed: int | None = None)[source]#
从样本 X 每列的最大值/最小值之间的均匀分布生成样本。
这些用于估计支持度,因为规则下的样本数量提供了体积的度量。此函数专门用于连续变量,而 sample_reference 处理一般情况,并在必要时调用此函数。
- 参数:
x (Pandas Dataframe or Numpy Array) – 2D 样本数组,其中每列对应一个特征。
n (int, optional) – int,默认为 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 的列上的均匀分布生成样本。
- 参数:
x (Pandas Dataframe or Numpy Array) – 2D 样本数组,其中每列对应一个特征。
n (Optional[int], optional) – 要抽取的样本数量,默认为提供的样本数量。
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}}