The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

arf: Adversarial random forests

CRAN status check-standard

Introduction

Adversarial random forests (ARFs) recursively partition data into fully factorized leaves, where features are jointly independent. The procedure is iterative, with alternating rounds of generation and discrimination. Data become increasingly realistic at each round, until original and synthetic samples can no longer be reliably distinguished. This is useful for several unsupervised learning tasks, such as density estimation and data synthesis. Methods for both are implemented in this package. ARFs naturally handle unstructured data with mixed continuous and categorical covariates. They inherit many of the benefits of RFs, including speed, flexibility, and solid performance with default parameters.

Installation

The arf package is available on CRAN:

install.packages("arf")

To install the development version from GitHub using devtools, run:

devtools::install_github("bips-hb/arf")

Examples

Using Fisher’s iris dataset, we train an ARF and estimate distribution parameters:

# Train the ARF
arf <- adversarial_rf(iris)

# Estimate distribution parameters
psi <- forde(arf, iris)

Density estimation

To estimate log-likelihoods:

mean(lik(arf, psi, iris))

Generative modeling

To generate 100 synthetic samples:

forge(psi, 100)

Conditional expectations

To estimate the mean of some variable(s), optionally conditioned on some event(s):

evi <- data.frame(Species = "setosa")
expct(psi, query = "Sepal.Length", evidence = evi)

For more detailed examples, see the package vignette.

Python library

A Python implementation of ARF, arfpy, is available on PyPI. For the development version, see here.

References

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.