dowhy.gcm.util 包#

子模块#

dowhy.gcm.util.catboost_encoder 模块#

class dowhy.gcm.util.catboost_encoder.CatBoostEncoder(p: float = 1, alpha: float | None = None)[源代码]#

基础类:object

实现了来自

“CatBoost:支持分类特征的梯度提升”,Dorogush等人(2018年)。

Catboost编码器是一种用于分类特征的目标编码器。在此实现中,我们遵循https://arxiv.org/pdf/1810.11363.pdf中的公式(1)。

参见https://arxiv.org/pdf/1810.11363.pdf中的公式(1)

Parameters:
  • p – 方程中的 p 参数。这权重了给定 alpha 的影响。

  • alpha – 方程中的Alpha参数。如果未给出,则按照“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编码器。

Parameters:
  • X – 输入的分类数据。

  • Y – 目标数据(连续或分类)

  • use_alpha_when_unique – 如果为True,当类别仅出现一次时使用alpha值。

fit_transform(X: ndarray, Y: ndarray, use_alpha_when_unique: bool = True) ndarray[source]#
Parameters:
  • X – 输入的分类数据。

  • Y – 目标数据(连续或分类)。

  • use_alpha_when_unique – 如果为True,当类别仅出现一次时使用alpha值。

Returns:

基于给定的Y进行Catboost编码输入。

transform(X: ndarray, Y: ndarray | None = None, use_alpha_when_unique: bool = True) ndarray[source]#

将Catboost编码器应用于数据。

Parameters:
  • X – 输入的分类数据。

  • Y – 如果提供了目标数据,则使用此数据代替拟合数据。

  • use_alpha_when_unique – 如果为True,当类别仅出现一次时使用alpha值。

Returns:

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[源代码]#
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][来源]#
dowhy.gcm.util.general.fit_one_hot_encoders(X: ndarray) Dict[int, OneHotEncoder][source]#

将独热编码器适配到X中的每个分类列。分类输入需要是字符串,即分类列仅由字符串组成。

Parameters:

X – 输入数据矩阵。

Returns:

将列索引映射到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来检查所有列是否都是分类列。

注意:一个包含混合数据类型的 np 矩阵可能会在内部将数值列转换为字符串,反之亦然。为了确保给定的数据保持原始数据类型,请考虑使用 dtype 'object' 进行转换/初始化。例如:np.array([[1, 'True', '0', 0.2], [3, 'False', '1', 2.3]], dtype=object)

Parameters:

X – 用于检查所有列是否为分类的输入数组。

Returns:

如果输入的所有列都是分类的,则为True,否则为False。

dowhy.gcm.util.general.is_categorical(X: ndarray) bool[source]#

检查所有给定的列是否都是分类的,即字符串或布尔值。只有当所有列都是分类的时,此方法才会返回True。或者,考虑使用has_categorical来检查是否有任何列是分类的。

注意:一个包含混合数据类型的 np 矩阵可能会在内部将数值列转换为字符串,反之亦然。为了确保给定的数据保持原始数据类型,请考虑使用 dtype 'object' 进行转换/初始化。例如:np.array([[1, 'True', '0', 0.2], [3, 'False', '1', 2.3]], dtype=object)

Parameters:

X – 用于检查所有列是否为分类的输入数组。

Returns:

如果输入的所有列都是分类的,则为True,否则为False。

dowhy.gcm.util.general.is_discrete(X: ndarray) bool[source]#

检查给定数组中的所有值是否都是离散的。

Parameters:

X – 要检查的输入数组。

Returns:

如果输入中的所有值都是离散的,则为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模块中设置随机种子。

Parameters:

random_seed – numpy和random模块的随机种子。

Returns:

dowhy.gcm.util.general.setdiff2d(ar1: ndarray, ar2: ndarray, assume_unique: bool = False) ndarray[source]#

此方法将numpy的setdiff1d推广到二维,即它可以比较任意长度的向量。更多详情请参见 https://numpy.org/doc/stable/reference/generated/numpy.setdiff1d.html

dowhy.gcm.util.general.shape_into_2d(*args)[source]#

如有必要,将numpy输入重塑为2D矩阵。

Example:

数组([1, 2, 3]) -> 数组([[1], [2], [3]]) 2 -> 数组([[2]])

Parameters:

args – 该函数期望输入为numpy数组,并返回它们的重塑(2D)版本(如果需要)。

Returns:

输入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[源代码]#

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

模块内容#