We introduce a recursive variant of URFs, which we call
adversarial random forest (ARF). The goal of this algo-
rithm is to render data jointly independent within each leaf.
We achieve this by ﬁrst ﬁtting an ordinary URF f (0) with
synthetic data ˜X(0). We compute the coverage of each leaf
w.r.t. original data, then generate a new synthetic dataset
by sampling from marginals within random leaves selected
with probability proportional to this coverage. Call the re-
sulting n× d matrix ˜X(1). A new classiﬁer f (1) is trained to
distinguish X from ˜X(1). If OOB accuracy for this model
is sufﬁciently low, then the ARF has converged, and we
move forward with splits from f (0). Otherwise, we iterate
the procedure, drawing a new synthetic dataset from the
splits learned by f (1) and evaluating performance via a new
classiﬁer. The loop repeats until convergence (see Alg. 1).
ARFs bear some obvious resemblance to GANs. The “gen-
erator” is a simple sampling scheme that draws from the
Adversarial Random Forests for Density Estimation and Generative Modeling