R: CRF - Conditional Random Fields

CRF-package {CRF} | R Documentation

## CRF - Conditional Random Fields

### Description

Library of Conditional Random Fields model

### Details

CRF is R package for various computational tasks of conditional random fields as well as other probabilistic undirected graphical models of discrete data with pairwise and unary potentials. The decoding/inference/sampling tasks are implemented for general discrete undirected graphical models with pairwise potentials. The training task is less general, focusing on conditional random fields with log-linear potentials and a fixed structure. The code is written entirely in R and C++. The initial version is ported from UGM written by Mark Schmidt.

Decoding: Computing the most likely configuration

- `decode.exact` Exact decoding for small graphs with brute-force search

- `decode.chain` Exact decoding for chain-structured graphs with the Viterbi algorithm

- `decode.tree` Exact decoding for tree- and forest-structured graphs with max-product belief propagation

- `decode.conditional` Conditional decoding (takes another decoding method as input)

- `decode.cutset` Exact decoding for graphs with a small cutset using cutset conditioning

- `decode.junction` Exact decoding for low-treewidth graphs using junction trees

- `decode.sample` Approximate decoding using sampling (takes a sampling method as input)

- `decode.marginal` Approximate decoding using inference (takes an inference method as input)

- `decode.lbp` Approximate decoding using max-product loopy belief propagation

- `decode.trbp` Approximate decoding using max-product tree-reweighted belief propagtion

- `decode.greedy` Approximate decoding with greedy algorithm

- `decode.icm` Approximate decoding with the iterated conditional modes algorithm

- `decode.block` Approximate decoding with the block iterated conditional modes algorithm

- `decode.ilp` Exact decoding with an integer linear programming formulation and approximate using LP relaxation

Inference: Computing the partition function and marginal probabilities

- `infer.exact` Exact inference for small graphs with brute-force counting

- `infer.chain` Exact inference for chain-structured graphs with the forward-backward algorithm

- `infer.tree` Exact inference for tree- and forest-structured graphs with sum-product belief propagation

- `infer.conditional` Conditional inference (takes another inference method as input)

- `infer.cutset` Exact inference for graphs with a small cutset using cutset conditioning

- `infer.junction` Exact decoding for low-treewidth graphs using junction trees

- `infer.sample` Approximate inference using sampling (takes a sampling method as input)

- `infer.lbp` Approximate inference using sum-product loopy belief propagation

- `infer.trbp` Approximate inference using sum-product tree-reweighted belief propagation

Sampling: Generating samples from the distribution

- `sample.exact` Exact sampling for small graphs with brute-force inverse cumulative distribution

- `sample.chain` Exact sampling for chain-structured graphs with the forward-filter backward-sample algorithm

- `sample.tree` Exact sampling for tree- and forest-structured graphs with sum-product belief propagation and backward-sampling

- `sample.conditional` Conditional sampling (takes another sampling method as input)

- `sample.cutset` Exact sampling for graphs with a small cutset using cutset conditioning

- `sample.junction` Exact sampling for low-treewidth graphs using junction trees

- `sample.gibbs` Approximate sampling using a single-site Gibbs sampler

Training: Given data, computing the most likely estimates of the parameters

- `train.crf` Train CRF model

- `train.mrf` Train MRF model

Tools: Tools for building and manipulating CRF data

- `make.crf` Generate CRF from the adjacent matrix

- `make.features` Make the data structure of CRF features

- `make.par` Make the data structure of CRF parameters

- `duplicate.crf` Duplicate an existing CRF

- `clamp.crf` Generate clamped CRF by fixing the states of some nodes

- `clamp.reset` Reset clamped CRF by changing the states of clamped nodes

- `sub.crf` Generate sub CRF by selecting some nodes

- `mrf.update` Update node and edge potentials of MRF model

- `crf.update` Update node and edge potentials of CRF model

### Author(s)

Ling-Yun Wu wulingyun@gmail.com

### References

J. Lafferty, A. McCallum, and F. Pereira. Conditional random fields: Probabilistic models for segmenting and labeling sequence data. In the proceedings of International Conference on Machine Learning (ICML), pp. 282-289, 2001.

Mark Schmidt. UGM: A Matlab toolbox for probabilistic undirected graphical models. http://www.cs.ubc.ca/~schmidtm/Software/UGM.html, 2007.

### Examples

    library(CRF)
    data(Small)
    decode.exact(Small$crf)
    infer.exact(Small$crf)
    sample.exact(Small$crf, 100)

[Package CRF version 0.4-3 Index]