econml.grf.CausalForest

class econml.grf.CausalForest(n_estimators=100, *, criterion='mse', max_depth=None, min_samples_split=10, min_samples_leaf=5, min_weight_fraction_leaf=0.0, min_var_fraction_leaf=None, min_var_leaf_on_val=False, max_features='auto', min_impurity_decrease=0.0, max_samples=0.45, min_balancedness_tol=0.45, honest=True, inference=True, fit_intercept=True, subforest_size=4, n_jobs=- 1, random_state=None, verbose=0, warm_start=False)[source]

基类:econml.grf._base_grf.BaseGRF

一个因果森林 [cf1]。它拟合一个解决局部矩方程问题的森林。

E[ (Y - <theta(x), T> - beta(x)) (T;1) | X=x] = 0

树中的每个节点包含参数 theta(x) 的局部估计,适用于落入该叶子内的 X 的每个区域。

参数
  • n_estimators (int, default 100) – 树的数量

  • criterion ({"mse", "het"}, default “mse”) – 用于衡量分裂质量的函数。支持的准则包括用于线性矩估计树的均方误差(“mse”)和用于异质性得分(“het”)的准则。

    • “mse” 准则寻找最小化得分的分裂点

      sum_{child} E[(Y - <theta(child), T> - beta(child))^2 | X=child] weight(child)
      

      在内部,对于多于两种处理的情况或对于 fit_intercept=True 的两种处理情况,出于计算目的,此准则通过计算更简单的变体进行近似。特别是,它被以下内容替换

      sum_{child} weight(child) * rho(child).T @ E[(T;1) @ (T;1).T | X in child] @ rho(child)
      

      其中

      rho(child) := E[(T;1) @ (T;1).T | X in parent]^{-1}
                              * E[(Y - <theta(x), T> - beta(x)) (T;1) | X in child]
      

      这可以被视为一种诱导异质性的得分,但更侧重于子节点雅可比矩阵 E[(T;1) @ (T;1).T | X in child] 具有较大最小特征值的得分,这导致估计值的方差更小,参数的识别更强。

    • “het” 准则寻找最大化纯参数异质性得分的分裂点

      sum_{child} weight(child) * rho(child)[:n_T].T @ rho(child)[:n_T]
      

      这可以被视为对理想异质性得分的近似

      weight(left) * weight(right) || theta(left) - theta(right)||_2^2 / weight(parent)^2
      

      [cf1] 中所述

  • max_depth (int, default None) – 树的最大深度。如果为 None,则节点会一直扩展,直到所有叶子节点都是纯的,或者直到所有叶子节点包含的样本少于 min_samples_split。

  • min_samples_split (int 或 float, default 10) – 分裂内部节点所需的最小样本数

    • 如果为 int,则将 min_samples_split 视为最小数量。

    • 如果为 float,则 min_samples_split 是一个比例,每个分裂所需的最小样本数为 ceil(min_samples_split * n_samples)

  • min_samples_leaf (int 或 float, default 5) – 叶子节点所需的最小样本数。只有当分裂点在左右分支中都至少留下 min_samples_leaf 个训练样本时,才会考虑该分裂点。这可能会平滑模型,尤其是在回归问题中。

    • 如果为 int,则将 min_samples_leaf 视为最小数量。

    • 如果为 float,则 min_samples_leaf 是一个比例,每个节点所需的最小样本数为 ceil(min_samples_leaf * n_samples)

  • min_weight_fraction_leaf (float, default 0.0) – 叶子节点所需的样本总权重(所有输入样本)的最小加权比例。未提供 sample_weight 时,样本权重相等。

  • min_var_fraction_leaf (None 或 float in (0, 1], default None) – 对每个叶子中应包含的处理向量变化的某个代理设置约束,该变化以整个样本处理向量总方差的百分比表示。这避免了在处理方差很小因而局部参数未得到很好识别且方差很高的情况下进行分裂。方差的代理因准则不同而异,主要是出于计算效率的原因。

    • 如果 criterion='het',则此约束转换为

      for all i in {1, ..., T.shape[1]}:
          E[T[i]^2 | X in leaf] > `min_var_fraction_leaf` * E[T[i]^2]
      

      T 是残差处理(即中心化)时,这转化为要求

      for all i in {1, ..., T.shape[1]}:
          Var(T[i] | X in leaf) > `min_var_fraction_leaf` * Var(T[i])
      
    • 如果 criterion='mse',由于该准则为每个候选分裂存储更多关于叶子的信息,因此此约束进一步对每种处理不同坐标的成对相关性施加约束,即

      for all i neq j:
        sqrt(Var(T[i]|X in leaf) * Var(T[j]|X in leaf) * (1 - rho(T[i], T[j]| in leaf)^2))
            > `min_var_fraction_leaf` sqrt(Var(T[i]) * Var(T[j]) * (1 - rho(T[i], T[j])^2))
      

      其中 rho(X, Y) 是两个随机变量 X, Y 的 Pearson 相关系数。因此,此约束也强制要求叶子内的任意两对处理不能高度共线性。这种额外约束主要在输入处理多于两种的情况下有效,并且避免了由于处理的局部共线性导致参数估计方差较大的叶子。

  • min_var_leaf_on_val (bool, default False) – 是否也应在诚实分裂的验证集上强制执行 min_var_fraction_leaf 约束。如果 min_var_leaf=None,则此标志不起作用。将其设置为 True 应谨慎进行,因为它部分违反了诚实结构,因为使用了验证集的处理变量来指导树的分裂结构。然而,这是一种良性依赖,因为它只使用处理 T 的局部相关结构来决定分裂是否可行。

  • max_features (int, float, {“auto”, “sqrt”, “log2”}, 或 None, default None) – 在寻找最佳分裂时要考虑的特征数量

    • 如果为 int,则在每个分裂点考虑 max_features 个特征。

    • 如果为 float,则 max_features 是一个比例,每个分裂点考虑 int(max_features * n_features) 个特征。

    • 如果为 “auto”,则 max_features=n_features

    • 如果为 “sqrt”,则 max_features=sqrt(n_features)

    • 如果为 “log2”,则 max_features=log2(n_features)

    • 如果为 None,则 max_features=n_features

    注意:寻找分裂点不会停止,直到找到至少一个有效的节点样本分区,即使它需要实际检查超过 max_features 个特征。

  • min_impurity_decrease (float, default 0.0) – 如果分裂导致的杂质减少大于或等于此值,则该节点将被分裂。加权杂质减少公式如下

    N_t / N * (impurity - N_t_R / N_t * right_impurity
                        - N_t_L / N_t * left_impurity)
    

    其中 N 是总样本数,N_t 是当前节点的样本数,N_t_L 是左子节点的样本数,N_t_R 是右子节点的样本数。NN_tN_t_RN_t_L 都指加权和,如果传递了 sample_weight 的话。

  • max_samples (int 或 float in (0, 1], default .45,) – 用于训练每棵树的子样本数量

    • 如果为 int,则每棵树使用 max_samples 个样本进行训练,这些样本是从所有样本中无放回抽样得到的

    • 如果为 float,则每棵树使用 ceil(max_samples * n_samples) 个样本进行训练,这些样本是从所有样本中无放回抽样得到的。

    如果 inference=True,则 max_samples 必须是小于 n_samples//2 的整数,或者是小于或等于 0.5 的 float。

  • min_balancedness_tol (float in [0, .5], default .45) – 我们可以容忍的分裂不平衡程度。这确保每个分裂在分裂的两侧至少留下 (.5 - min_balancedness_tol) 比例的样本;或者在 sample_weight 不为 None 时,至少留下样本总权重的该比例。默认值确保父节点权重的至少 5% 落在分裂的每一侧。设置为 0.0 表示不强制平衡,设置为 0.5 表示完全平衡的分裂。为了使正式的推断理论有效,这必须是任何大于零的有界正数。

  • honest (bool, default True) – 每棵树是否应以诚实的方式进行训练,即训练集被分成两个大小相等的子集,训练集和验证集。训练集中的所有样本用于创建分裂结构,验证集中的所有样本用于计算树中每个节点的值。

  • inference (bool, default True) – 是否启用推断(即置信区间构建和估计值不确定性量化)。如果 inference=True,则估计器使用小袋 Bootstrap 方法计算参数向量的协方差,并采用客观贝叶斯去偏校正以确保方差量为正。

  • fit_intercept (bool, default True) – 是否应拟合截距扰动参数 beta(x)。如果 fit_intercept=False,则在此文档字符串中的所有计算中,处理变量后不附加 (;1)。如果 fit_intercept=True,则将常数处理 (;1) 附加到每个处理向量后,并且此常数处理前面的系数是截距 beta(x)。beta(x) 被视为一个扰动参数,不会由 predict(X)、predict_and_var(X) 或 predict_var(X) 方法返回。使用 predict_full(X) 也可以恢复截距项。

  • subforest_size (int, default 4,) – 小袋 Bootstrap 计算中使用的每个子森林中的树数量。参数 n_estimators 必须能被 subforest_size 整除。通常应该是一个小的常数。

  • n_jobs (int 或 None, default -1) – 用于并行计算的并行作业数量;遵循 joblib 语义。n_jobs=-1 表示所有可用的 CPU 核。n_jobs=None 表示不进行并行计算。

  • random_state (int, RandomState instance, 或 None, default None) – 控制估计器的随机性。在每次分裂时,特征总是被随机置换。当 max_features < n_features 时,算法将在每个分裂点随机选择 max_features 个特征,然后在其中找到最佳分裂点。但是找到的最佳分裂点可能在不同的运行中有所不同,即使 max_features=n_features 也是如此。这是因为如果多个分裂点的准则改进相同,并且必须随机选择一个分裂点。为了在拟合过程中获得确定性行为,random_state 必须固定为一个整数。

  • verbose (int, default 0) – 控制拟合和预测时的详细程度。

  • warm_start (bool, default False) – 设置为 True 时,重用上次 fit 调用的解决方案并向集成中添加更多估计器,否则,只拟合一个全新的森林。如果为 True,则不可用 oob_predict 方法进行袋外预测。

feature_importances_

基于特征产生的参数异质性数量计算特征重要性。异质性越高,特征越重要。特征的重要性计算为特征产生的(标准化)总异质性。选择该特征的每个分裂点都增加了

parent_weight * (left_weight * right_weight)
    * mean((value_left[k] - value_right[k])**2) / parent_weight**2

到特征的重要性中。每个这样的量也按分裂的深度进行加权。默认情况下,深度小于 max_depth=4 的分裂点不用于此计算,并且每个深度为 depth 的分裂点都通过 1 / (1 + `depth`)**2.0 进行重新加权。请参阅方法 feature_importances,该方法允许更改这些默认值。

类型

形状为 (n_features,) 的 ndarray

estimators_

拟合的树。

类型

类型为 GRFTree 的对象列表

参考文献

cf1(1,2)

Athey, Susan, Julie Tibshirani 和 Stefan Wager。“Generalized random forests.” The Annals of Statistics 47.2 (2019): 1148-1178 https://arxiv.org/pdf/1610.01271.pdf

__init__(n_estimators=100, *, criterion='mse', max_depth=None, min_samples_split=10, min_samples_leaf=5, min_weight_fraction_leaf=0.0, min_var_fraction_leaf=None, min_var_leaf_on_val=False, max_features='auto', min_impurity_decrease=0.0, max_samples=0.45, min_balancedness_tol=0.45, honest=True, inference=True, fit_intercept=True, subforest_size=4, n_jobs=- 1, random_state=None, verbose=0, warm_start=False)[source]

方法

__init__([n_estimators, criterion, ...])

apply(X)

将森林中的树应用于 X,返回叶子索引。

decision_path(X)

返回森林中的决策路径。

feature_importances([max_depth, ...])

基于特征产生的参数异质性数量计算特征重要性。异质性越高,特征越重要。特征的重要性计算为特征产生的(标准化)总异质性。对于每棵树和选择该特征的每个分裂点都增加了::。

fit(X, T, y, *[, sample_weight])

从训练集 (X, T, y) 构建一个因果森林。

get_params([deep])

获取此估计器的参数。

get_subsample_inds()

使用相同的伪随机性重新生成与 fit 时相同的示例样本索引。

oob_predict(Xtrain)

返回每个训练数据点的相关输出预测,其中只包含了未使用该数据点的树。

predict(X[, interval, alpha])

返回 X 中每个 x 的相关拟合局部参数的前缀,即 theta(x)[1..n_relevant_outputs]。

predict_alpha_and_jac(X[, slice, parallel])

使用森林作为核权重,返回条件雅可比 E[J | X=x] 和条件 alpha E[A | X=x] 的值,即。

其中 w[i] 是样本权重(如果 sample_weight 为 None,则为 1.0)。

predict_and_var(X)

返回 X 中每个 x 的相关拟合局部参数的前缀,即 theta(x)[1..n_relevant_outputs] 及其协方差矩阵。

predict_full(X[, interval, alpha])

返回 X 中每个 x 的拟合局部参数,即 theta(x)。

predict_interval(X[, alpha])

返回 X 中每个 x 的相关拟合局部参数的置信区间,即 theta(x)[1..n_relevant_outputs]。

predict_moment_and_var(X, parameter[, ...])

返回每个样本的条件期望矩向量的值以及每个样本给定参数估计值。

其中条件期望基于森林权重进行估计,即

其中 w[i] 是样本权重(如果 sample_weight 为 None,则为 1.0),以及局部矩向量在树之间的方差

其中条件期望基于森林权重进行估计,即

predict_projection(X, projector)

返回 X 中每个 x 的相关拟合局部参数的前缀(即 theta(x)[1..n_relevant_outputs])与投影向量 projector(x) 的内积,即::。

predict_projection_and_var(X, projector)

以及 mu(x) 的方差。

predict_projection_var(X, projector)

返回 X 中每个 x 的相关拟合局部参数的前缀(即 theta(x)[1..n_relevant_outputs])与投影向量 projector(x) 的内积的方差,即::。

predict_tree_average(X)

返回每个 X 的相关拟合局部参数的前缀,即 theta(X)[1..n_relevant_outputs]。此方法仅返回每棵树估计的参数平均值。predict 应该优于 pred_tree_average,因为它在树之间执行更稳定的平均。

predict_tree_average_full(X)

返回每个 X 的拟合局部参数,即 theta(X)。此方法仅返回每棵树估计的参数平均值。predict_full 应该优于 pred_tree_average_full,因为它在树之间执行更稳定的平均。

predict_var(X)

返回 X 中每个 x 的相关拟合局部参数前缀的协方差矩阵。

属性

feature_importances_

apply(X)

将森林中的树应用于 X,返回叶子索引。

参数

X (形状为 (n_samples, n_features) 的 array_like) – 输入样本。在内部,它将被转换为 dtype=np.float64

返回

X_leaves – 对于 X 中的每个数据点 x 以及森林中的每棵树,返回 x 最终所在的叶子节点的索引。

返回类型

形状为 (n_samples, n_estimators) 的 ndarray

decision_path(X)

返回森林中的决策路径。

参数

X (形状为 (n_samples, n_features) 的 array_like) – 输入样本。在内部,它将被转换为 dtype=np.float64

返回

  • indicator (形状为 (n_samples, n_nodes) 的稀疏矩阵) – 返回一个节点指示矩阵,其中非零元素表示样本通过了这些节点。该矩阵是 CSR 格式。

  • n_nodes_ptr (形状为 (n_estimators + 1,) 的 ndarray) – indicator[n_nodes_ptr[i]:n_nodes_ptr[i+1]] 中的列给出了第 i 个估计器的指示值。

feature_importances(max_depth=4, depth_decay_exponent=2.0)

基于特征产生的参数异质性数量计算特征重要性。异质性越高,特征越重要。特征的重要性计算为特征产生的(标准化)总异质性。对于每棵树和选择该特征的每个分裂点都增加了

parent_weight * (left_weight * right_weight)
    * mean((value_left[k] - value_right[k])**2) / parent_weight**2

到特征的重要性中。每个这样的量也按分裂的深度进行加权。这些重要性在树层面进行标准化,然后在树之间进行平均。

参数
  • max_depth (int, default 4) – 深度大于 max_depth 的分裂不用于此计算

  • depth_decay_exponent (double, default 2.0) – 每个分裂对总得分的贡献通过 1 / (1 + depth)**2.0 进行重新加权。

返回

feature_importances_ – 每个特征诱导的标准化总参数异质性重要性

返回类型

形状为 (n_features,) 的 ndarray

fit(X, T, y, *, sample_weight=None)[source]

从训练集 (X, T, y) 构建一个因果森林。

参数
  • X (形状为 (n_samples, n_features) 的 array_like) – 训练输入样本。在内部,其 dtype 将被转换为 dtype=np.float64

  • T (形状为 (n_samples, n_treatments) 的 array_like) – 每个样本的处理向量

  • y (形状为 (n_samples,) 或 (n_samples, n_outcomes) 的 array_like) – 每个样本的结果值。

  • sample_weight (形状为 (n_samples,) 的 array_like, default None) – 样本权重。如果为 None,则样本权重相等。在每个节点中搜索分裂点时,会忽略会创建净零或负权重子节点的分裂。

返回

self

返回类型

对象

get_params(deep=True)

获取此估计器的参数。

参数

deep (bool, default=True) – 如果为 True,将返回此估计器和包含的子对象(也是估计器)的参数。

返回

params – 参数名称映射到其值。

返回类型

dict

get_subsample_inds()

使用相同的伪随机性重新生成与 fit 时相同的示例样本索引。

oob_predict(Xtrain)

返回每个训练数据点的相关输出预测,其中只包含了未使用该数据点的树。如果估计器使用 warm_start=True 进行训练,则此方法不可用。

参数

Xtrain (形状为 (n_training_samples, n_features) 的矩阵) – 必须是拟合时传递给森林的完全相同的 X 矩阵。

返回

oob_preds – 每个训练点的相关输出参数的袋外预测

返回类型

形状为 (n_training_samples, n_relevant_outputs) 的矩阵

predict(X, interval=False, alpha=0.05)

返回 X 中每个 x 的相关拟合局部参数的前缀,即 theta(x)[1..n_relevant_outputs]。

参数
  • X (形状为 (n_samples, n_features) 的 array_like) – 输入样本。在内部,它将被转换为 dtype=np.float64

  • interval (bool, default False) – 是否也返回置信区间

  • alpha (float in (0, 1), default 0.05) – 置信区间的置信水平。返回对称的 (alpha/2, 1-alpha/2) 置信区间。

返回

  • theta(X)[1, .., n_relevant_outputs] (形状为 (n_samples, n_relevant_outputs) 的 array_like) – X 的每一行的估计相关参数

  • lb(x), ub(x) (形状为 (n_samples, n_relevant_outputs) 的 array_like) – 每个参数的置信区间下限和上限。如果 interval=False 则省略返回值。

predict_alpha_and_jac(X, slice=None, parallel=True)

使用森林作为核权重,返回条件雅可比 E[J | X=x] 和条件 alpha E[A | X=x] 的值,即。

alpha(x) = (1/n_trees) sum_{trees} (1/ |leaf(x)|) sum_{val sample i in leaf(x)} w[i] A[i]
jac(x) = (1/n_trees) sum_{trees} (1/ |leaf(x)|) sum_{val sample i in leaf(x)} w[i] J[i]

其中 w[i] 是样本权重(如果 sample_weight 为 None,则为 1.0)。

参数
  • X (形状为 (n_samples, n_features) 的 array_like) – 输入样本。在内部,它将被转换为 dtype=np.float64

  • slice (list of int 或 None, default None) – 如果不为 None,则仅使用 slice 中的索引对应的树来计算均值和方差。

  • parallel (bool , default True) – 是否应使用并行计算进行平均。并行计算会增加一些开销,但在树数量很多时会更快。

返回

  • alpha (形状为 (n_samples, n_outputs) 的 array_like) – X 中每个样本 x 的估计条件 A,alpha(x)

  • jac (形状为 (n_samples, n_outputs, n_outputs) 的 array_like) – X 中每个样本 x 的估计条件 J,jac(x)

predict_and_var(X)

predict_and_var(X)

参数

X (形状为 (n_samples, n_features) 的 array_like) – 输入样本。在内部,它将被转换为 dtype=np.float64

返回

  • theta(x)[1, .., n_relevant_outputs] (形状为 (n_samples, n_relevant_outputs) 的 array_like) – X 的每一行的估计相关参数

  • var(theta(x)) (形状为 (n_samples, n_relevant_outputs, n_relevant_outputs) 的 array_like) – theta(x)[1, .., n_relevant_outputs] 的协方差

predict_full(X, interval=False, alpha=0.05)

predict_full(X[, interval, alpha])

参数
  • X (形状为 (n_samples, n_features) 的 array_like) – 输入样本。在内部,它将被转换为 dtype=np.float64

  • interval (bool, default False) – 是否也返回置信区间

  • alpha (float in (0, 1), default 0.05) – 置信区间的置信水平。返回对称的 (alpha/2, 1-alpha/2) 置信区间。

返回

  • theta(x) (形状为 (n_samples, n_outputs) 的 array_like) – X 的每一行 x 的估计相关参数

  • lb(x), ub(x) (形状为 (n_samples, n_outputs) 的 array_like) – 每个参数的置信区间下限和上限。如果 interval=False 则省略返回值。

predict_interval(X, alpha=0.05)

predict_interval(X[, alpha])

参数
  • X (形状为 (n_samples, n_features) 的 array_like) – 输入样本。在内部,它将被转换为 dtype=np.float64

  • alpha (float in (0, 1), default 0.05) – 置信区间的置信水平。返回对称的 (alpha/2, 1-alpha/2) 置信区间。

返回

lb(x), ub(x) – 每个参数的置信区间下限和上限。如果 interval=False 则省略返回值。

返回类型

形状为 (n_samples, n_relevant_outputs) 的 array_like

predict_moment_and_var(X, parameter, slice=None, parallel=True)

返回每个样本的条件期望矩向量的值以及每个样本给定参数估计值

M(x; theta(x)) := E[J | X=x] theta(x) - E[A | X=x]

其中条件期望基于森林权重进行估计,即

M_tree(x; theta(x)) := (1/ |leaf(x)|) sum_{val sample i in leaf(x)} w[i] (J[i] theta(x) - A[i])
M(x; theta(x) = (1/n_trees) sum_{trees} M_tree(x; theta(x))

其中 w[i] 是样本权重(如果 sample_weight 为 None,则为 1.0),以及局部矩向量在树之间的方差

Var(M_tree(x; theta(x))) = (1/n_trees) sum_{trees} M_tree(x; theta(x)) @ M_tree(x; theta(x)).T
参数
  • X (形状为 (n_samples, n_features) 的 array_like) – 输入样本。在内部,它将被转换为 dtype=np.float64

  • parameter (形状为 (n_samples, n_outputs) 的 array_like) – X 中每个样本 x 的参数 theta(x) 的估计值

  • slice (list of int 或 None, default None) – 如果不为 None,则仅使用 slice 中的索引对应的树来计算均值和方差。

  • parallel (bool , default True) – 是否应使用并行计算进行平均。并行计算会增加一些开销,但在树数量很多时会更快。

返回

  • moment (形状为 (n_samples, n_outputs) 的 array_like) – X 中每个样本 x 的估计条件矩 M(x; theta(x))

  • moment_var (形状为 (n_samples, n_outputs) 的 array_like) – 条件矩 Var(M_tree(x; theta(x))) 在树之间的方差,适用于每个样本 x

predict_projection(X, projector)

返回 X 中每个 x 的相关拟合局部参数的前缀(即 theta(x)[1..n_relevant_outputs])与投影向量 projector(x) 的内积,即

mu(x) := <theta(x)[1..n_relevant_outputs], projector(x)>
参数
  • X (形状为 (n_samples, n_features) 的 array_like) – 输入样本。在内部,它将被转换为 dtype=np.float64

  • projector (形状为 (n_samples, n_relevant_outputs) 的 array_like) – X 中每个样本 x 的投影向量

返回

mu(x) – X 的每一行 x 的相关参数与投影向量的估计内积

返回类型

形状为 (n_samples, 1) 的 array_like

predict_projection_and_var(X, projector)

返回 X 中每个 x 的相关拟合局部参数的前缀(即 theta(x)[1..n_relevant_outputs])与投影向量 projector(x) 的内积,即

mu(x) := <theta(x)[1..n_relevant_outputs], projector(x)>

以及 mu(x) 的方差。

参数
  • X (形状为 (n_samples, n_features) 的 array_like) – 输入样本。在内部,它将被转换为 dtype=np.float64

  • projector (形状为 (n_samples, n_relevant_outputs) 的 array_like) – X 中每个样本 x 的投影向量

返回

  • mu(x) (形状为 (n_samples, 1) 的 array_like) – X 的每一行 x 的相关参数与投影向量的估计内积

  • var(mu(x)) (形状为 (n_samples, 1) 的 array_like) – 估计内积的方差

predict_projection_var(X, projector)

返回 X 中每个 x 的相关拟合局部参数的前缀(即 theta(x)[1..n_relevant_outputs])与投影向量 projector(x) 的内积的方差,即::。

Var(mu(x)) for mu(x) := <theta(x)[1..n_relevant_outputs], projector(x)>
参数
  • X (形状为 (n_samples, n_features) 的 array_like) – 输入样本。在内部,它将被转换为 dtype=np.float64

  • projector (形状为 (n_samples, n_relevant_outputs) 的 array_like) – X 中每个样本 x 的投影向量

返回

var(mu(x)) – 估计内积的方差

返回类型

形状为 (n_samples, 1) 的 array_like

predict_tree_average(X)

返回每个 X 的相关拟合局部参数的前缀,即 theta(X)[1..n_relevant_outputs]。此方法仅返回每棵树估计的参数平均值。predict 应该优于 pred_tree_average,因为它在树之间执行更稳定的平均。

参数

X (形状为 (n_samples, n_features) 的 array_like) – 输入样本。在内部,它将被转换为 dtype=np.float64

返回

theta(X)[1, .., n_relevant_outputs] – X 的每一行的估计相关参数

返回类型

形状为 (n_samples, n_relevant_outputs) 的 array_like

predict_tree_average_full(X)

返回每个 X 的拟合局部参数,即 theta(X)。此方法仅返回每棵树估计的参数平均值。predict_full 应该优于 pred_tree_average_full,因为它在树之间执行更稳定的平均。

参数

X (形状为 (n_samples, n_features) 的 array_like) – 输入样本。在内部,它将被转换为 dtype=np.float64

返回

theta(X) – X 的每一行的估计相关参数

返回类型

形状为 (n_samples, n_outputs) 的 array_like

predict_var(X)

返回每个 X 的相关拟合局部参数的前缀,即 theta(X)[1..n_relevant_outputs]。此方法仅返回每棵树估计的参数平均值。predict 应该优于 pred_tree_average,因为它在树之间执行更稳定的平均。

参数

X (形状为 (n_samples, n_features) 的 array_like) – 输入样本。在内部,它将被转换为 dtype=np.float64

返回

var(theta(x)) – theta(x)[1, .., n_relevant_outputs] 的协方差

返回类型

形状为 (n_samples, n_relevant_outputs, n_relevant_outputs) 的 array_like

prediction_stderr(X)

返回每个 X 的拟合局部参数,即 theta(X)。此方法仅返回每棵树估计的参数平均值。predict_full 应该优于 pred_tree_average_full,因为它在树之间执行更稳定的平均。

参数

X (形状为 (n_samples, n_features) 的 array_like) – 输入样本。在内部,它将被转换为 dtype=np.float64

返回

std(theta(x)) – 对于 i in {1, .., n_relevant_outputs},每个 theta(x)[i] 的标准差

返回类型

形状为 (n_samples, n_relevant_outputs) 的 array_like

set_params(**params)

返回 X 中每个 x 的相关拟合局部参数前缀的协方差矩阵。

此方法适用于简单估计器以及嵌套对象(例如 Pipeline)。后者具有形如 <component>__<parameter> 的参数,因此可以更新嵌套对象的每个组件。

参数

**params (dict) – 估计器参数。

返回

self – 估计器实例。

返回类型

估计器实例