dowhy.causal_refuters.overrule 包#
子包#
- dowhy.causal_refuters.overrule.BCS package
- Submodules
- 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()
- Module contents
子模块#
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 DataFrame 或 Numpy Array, 形状 (n, d)) – 协变量样本
o (Pandas DataFrame 或 Numpy Array, 形状 (n, )) – 二进制指示器,用于指示样本是否属于重叠区域,默认为 None。如果提供,应与 x 的长度相同。
- predict(x)[source]#
预测X是否位于重叠区域(1 = 真)。
- Parameters:
x (Pandas DataFrame 或 Numpy Array, 形状 (n, d)) – 协变量样本
- predict_rules(x)[source]#
预测由x激活的规则
- Parameters:
x (Pandas DataFrame 或 Numpy 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) – 字典映射,从原始特征名称到打印规则时的显示名称,任何未在此指定的特征将默认使用原始名称,默认为 {}
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 Dataframe 或 Numpy 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 Dataframe 或 Numpy 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}}