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.geometric_median(x: ndarray) ndarray[source]#
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.general.variance_of_deviations(randomized_predictions: ndarray, baseline_values: ndarray) ndarray[source]#
dowhy.gcm.util.general.variance_of_matching_values(randomized_predictions: ndarray, baseline_values: ndarray) ndarray[source]#

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()。

dowhy.gcm.util.plotting.plot_adjacency_matrix(adjacency_matrix: DataFrame, is_directed: bool, filename: str | None = None, display_plot: bool = True) None[source]#

已弃用,请改用 dowhy.utils.plotting.plot_adjacency_matrix()。

模块内容#