docstr: Fit Causal RandomForest
  Args:
      X: (np.ndarray), feature matrix
      treatment: (np.ndarray), treatment vector
      y: (np.ndarray), outcome vector
  Returns:
       self
docstr_tok: ["Fit","Causal","RandomForest","Args",":","X",":","(","np.ndarray",")",",","feature","matrix","treatment",":","(","np.ndarray",")",",","treatment","vector","y",":","(","np.ndarray",")",",","outcome","vector","Returns",":","self"]
code: def fit(self, X: np.ndarray, treatment: np.ndarray, y: np.ndarray):
      """
      Fit Causal RandomForest
      Args:
          X: (np.ndarray), feature matrix
          treatment: (np.ndarray), treatment vector
          y: (np.ndarray), outcome vector
      Returns:
           self
      """
      X, y, w = self._estimator._prepare_data(
          X=X, y=y, treatment=treatment
      )
      return self._fit(X=X, y=y, sample_weight=w)
  
imports: from typing import Union
  import numpy
  import forestci
  from joblib import Parallel, delayed
  from warnings import catch_warnings, simplefilter, warn
  from sklearn.exceptions import DataConversionWarning
  from sklearn.utils.validation import check_random_state, _check_sample_weight
  from sklearn.utils.multiclass import type_of_target
  from sklearn import __version__
  from sklearn.ensemble._forest import DOUBLE, DTYPE, MAX_INT
  from sklearn.ensemble._forest import ForestRegressor
  from sklearn.ensemble._forest import compute_sample_weight, issparse
  from sklearn.ensemble._forest import _generate_sample_indices, _get_n_samples_bootstrap
  from .causaltree import CausalTreeRegressor
label_desc: Use image node_id 3 for calling the CausalRandomForestRegressor obj's underlying member method code with example usage: obj.fit(X, treatment, y) and returns: self