Library of Conditional Random Fields model
package
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
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.