dowhy.gcm.util 包#
子模块#
dowhy.gcm.util.catboost_encoder 模块#
- class dowhy.gcm.util.catboost_encoder.CatBoostEncoder(p: float = 1, alpha: float | None = None)[source]#
基类:
object
实现以下论文中提出的方法
“CatBoost: gradient boosting with categorical features support”,Dorogush 等人 (2018)。
Catboost 编码器是一种用于处理分类特征的目标编码器。在此实现中,我们遵循 https://arxiv.org/pdf/1810.11363.pdf 中的公式 (1)。
参见 https://arxiv.org/pdf/1810.11363.pdf 中的公式 (1)。
- 参数:
p – 公式中的 p 参数。此参数权衡给定 alpha 的影响。
alpha – 公式中的 Alpha 参数。如果给定 None,则使用全局均值,如 “A preprocessing scheme for high-cardinality categorical attributes in classification and prediction problems”,Micci-Barreca (2001) 中所建议。
- fit(X: ndarray, Y: ndarray, use_alpha_when_unique: bool = True) None [source]#
遵循 https://arxiv.org/pdf/1810.11363.pdf 中的公式 (1) 拟合 Catboost 编码器。
- 参数:
X – 输入的分类数据。
Y – 目标数据(连续或分类)。
use_alpha_when_unique – 如果为 True,当某个类别只出现一次时,使用 alpha 值。
- fit_transform(X: ndarray, Y: ndarray, use_alpha_when_unique: bool = True) ndarray [source]#
- 参数:
X – 输入的分类数据。
Y – 目标数据(连续或分类)。
use_alpha_when_unique – 如果为 True,当某个类别只出现一次时,使用 alpha 值。
- 返回值:
基于给定 Y 的 Catboost 编码输入。
- transform(X: ndarray, Y: ndarray | None = None, use_alpha_when_unique: bool = True) ndarray [source]#
将 Catboost 编码器应用于数据。
- 参数:
X – 输入的分类数据。
Y – 如果提供了目标数据,则使用此数据代替拟合数据。
use_alpha_when_unique – 如果为 True,当某个类别只出现一次时,使用 alpha 值。
- 返回值:
Catboost 编码的输入。如果提供了 Y,它会给每一行一个时间索引,并且只使用之前观察到的数据来估计编码。如果没有提供 Y,则使用之前为每个类别拟合的平均值。这可以看作是将整个训练数据集作为过去的观察结果来使用。
dowhy.gcm.util.general 模块#
- dowhy.gcm.util.general.apply_catboost_encoding(X: ndarray, catboost_encoder_map: Dict[int, CatBoostEncoder], Y: ndarray | None = None) ndarray [source]#
- dowhy.gcm.util.general.apply_one_hot_encoding(X: ndarray, one_hot_encoder_map: Dict[int, OneHotEncoder]) ndarray [source]#
- dowhy.gcm.util.general.auto_apply_encoders(X: ndarray, encoder_map: Dict[int, OneHotEncoder | CatBoostEncoder], Y: ndarray | None = None) ndarray [source]#
- dowhy.gcm.util.general.auto_fit_encoders(X: ndarray, Y: ndarray | None = None, catboost_threshold: int = 7) Dict[int, OneHotEncoder | CatBoostEncoder] [source]#
- dowhy.gcm.util.general.fit_catboost_encoders(X: ndarray, Y: ndarray) Dict[int, CatBoostEncoder] [source]#
- dowhy.gcm.util.general.fit_one_hot_encoders(X: ndarray) Dict[int, OneHotEncoder] [source]#
将独热编码器拟合到 X 中的每个分类列。分类输入需要是字符串,即分类列只包含字符串。
- 参数:
X – 输入数据矩阵。
- 返回值:
将列索引映射到 scikit OneHotEncoder 的字典。
- dowhy.gcm.util.general.has_categorical(X: ndarray) bool [source]#
检查给定列中是否有任何列是分类的,即字符串或布尔值。如果任何一列是分类的,此方法将返回 True。或者,可以使用 is_categorical 检查所有列是否都是分类的。
注意:包含混合数据类型的 numpy 矩阵可能会在内部将数字列转换为字符串,反之亦然。为了确保给定数据保留原始数据类型,请考虑使用 dtype 'object' 进行转换/初始化。例如:np.array([[1, 'True', '0', 0.2], [3, 'False', '1', 2.3]], dtype=object)
- 参数:
X – 用于检查是否有分类列的输入数组。
- 返回值:
如果输入的任何列是分类的,则返回 True,否则返回 False。
- dowhy.gcm.util.general.is_categorical(X: ndarray) bool [source]#
检查给定列中是否所有列都是分类的,即字符串或布尔值。只有当所有列都是分类的,此方法才会返回 True。或者,可以使用 has_categorical 检查是否有任何列是分类的。
注意:包含混合数据类型的 numpy 矩阵可能会在内部将数字列转换为字符串,反之亦然。为了确保给定数据保留原始数据类型,请考虑使用 dtype 'object' 进行转换/初始化。例如:np.array([[1, 'True', '0', 0.2], [3, 'False', '1', 2.3]], dtype=object)
- 参数:
X – 用于检查是否有分类列的输入数组。
- 返回值:
如果输入的任何列是分类的,则返回 True,否则返回 False。
- dowhy.gcm.util.general.is_discrete(X: ndarray) bool [source]#
检查给定数组中的所有值是否都是离散的。
- 参数:
X – 要检查的输入数组。
- 返回值:
如果输入中的所有值都是离散的,则返回 True,否则返回 False。
- dowhy.gcm.util.general.means_difference(randomized_predictions: ndarray, baseline_values: ndarray) ndarray [source]#
- dowhy.gcm.util.general.set_random_seed(random_seed: int) None [source]#
在 numpy 和 random 模块中设置随机种子。
- 参数:
random_seed – numpy 和 random 模块的随机种子。
- 返回值:
None
- dowhy.gcm.util.general.setdiff2d(ar1: ndarray, ar2: ndarray, assume_unique: bool = False) ndarray [source]#
此方法将 numpy 的 setdiff1d 推广到 2d,即比较任意长度的向量。更多详情请参见 https://numpy.com.cn/doc/stable/reference/generated/numpy.setdiff1d.html。
- dowhy.gcm.util.general.shape_into_2d(*args)[source]#
如有必要,将 numpy 输入转换为 2D 矩阵。
- 示例
array([1, 2, 3]) -> array([[1], [2], [3]]) 2 -> array([[2]])
- 参数:
args – 该函数期望 numpy 数组作为输入,并返回其重塑后的(2D)版本(如有必要)。
- 返回值:
输入 numpy 数组的重塑版本。例如,给定 1D 输入 X、Y 和 Z,shape_into_2d(X, Y, Z) 将它们重塑为 2D 并返回。如果输入已经是 2D,则不会修改并按原样返回。
dowhy.gcm.util.plotting 模块#
- dowhy.gcm.util.plotting.bar_plot(values: Dict[str, float], uncertainties: Dict[str, Tuple[float, float]] | None = None, ylabel: str = '', filename: str | None = None, display_plot: bool = True, figure_size: List[int] | None = None, bar_width: float = 0.8, xticks: List[str] | None = None, xticks_rotation: int = 90, sort_names: bool = True) None [source]#
已弃用,请改用 dowhy.utils.plotting.bar_plot()。
- dowhy.gcm.util.plotting.plot(causal_graph: Graph, causal_strengths: Dict[Tuple[Any, Any], float] | None = None, colors: Dict[Any | Tuple[Any, Any], str] | None = None, filename: str | None = None, display_plot: bool = True, figure_size: List[int] | None = None, **kwargs) None [source]#
已弃用,请改用 dowhy.utils.plotting.plot()。