dowhy.causal_refuters.overrule.BCS 包#
子模块#
dowhy.causal_refuters.overrule.BCS.beam_search 模块#
用于优化的Beam搜索工具。
本模块实现了来自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.BCS.beam_search.PricingInstance(rp, rn, Xp, Xn, v0, z0)[source]#
基础类:
object定价问题的实例。
更多详情,请参阅:
Dash, S., Gunluk, O., 和 Wei, D. (2018). 通过列生成实现布尔决策规则。 在 Bengio, S., Wallach, H., Larochelle, H., Grauman, K., Cesa-Bianchi, N., 和 Garnett, R., 编辑的《神经信息处理系统进展》第31卷中, 第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]#
使用Beam搜索生成定价问题的解决方案。
- Parameters:
r – 成本向量(残差)
X – DataFrame中的二进制特征
lambda0 (float) – 项的固定成本
lambda1 (float) – 每个文字的成本
K (int, optional) – 返回的最大解决方案数量,默认为1
UB (float, optional) – 解的初始上界,默认为0
D (int, optional) – 最大度数,默认为10
B (int, 可选) – 波束宽度,默认为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). 观察研究中的重叠特征。在 S. Chiappa & R. Calandra (Eds.), 第二十三届国际人工智能与统计会议论文集 (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用于将分类和有序(包括连续)特征二值化的转换器。
请注意,在学习布尔规则之前,所有特征都被转换为二进制变量。
初始化用于二值化分类和有序(包括连续)特征的转换器
- Parameters:
colCateg (List[str], optional) – 分类列的列表,默认为 [],'object' 数据类型自动被视为分类
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 模块#
重叠布尔规则。
本模块实现了来自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.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风格的重叠布尔规则类
学习以析取范式描述的布尔规则来描述正类。
- Parameters:
alpha (float, optional) – 确保包含在规则中的正样本比例,默认为 0.95
lambda0 (float, optional) – 规则数量的正则化,默认为 1e-2
lambda1 (float, optional) – 正则化项,针对字面量数量,默认值为 1e-2
K (int, optional) – 在束搜索期间返回的最大结果数,默认为20
D (int, 可选) – 每次束搜索迭代的最大额外规则数,默认为20
B (int, optional) – 光束搜索的宽度,默认为10
iterMax (int, 可选) – 列生成的最大迭代次数,默认为10
eps (float, optional) – 比较时的数值容差,默认为1e-6
silent (bool) – 静默非优化器输出,默认为 False
verbose (bool, optional) – 详细的优化器输出,默认为 False
solver (str, optional) – CVXPY 用于解决线性规划松弛的线性规划求解器,默认为‘ECOS’
rounding (str, optional) – 执行舍入的策略,可以是‘greedy’或‘greedy_sweep’,默认为‘greedy_sweep’
- fit(X: DataFrame, y: ndarray | DataFrame)[source]#
将模型拟合到训练数据。
- Parameters:
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比例的正样本。
- Parameters:
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)。
- Parameters:
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无论如何都会产生影响,因为我们在这里只考虑通过列生成生成的规则。