blob: 94db26758ec0ead2f152ecc9d40ef9fc953c0395 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_121) on Fri Apr 14 22:11:36 PDT 2017 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>HmmEvaluator (Mahout Map-Reduce 0.13.0 API)</title>
<meta name="date" content="2017-04-14">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="HmmEvaluator (Mahout Map-Reduce 0.13.0 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/HmmEvaluator.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/mahout/classifier/sequencelearning/hmm/HmmAlgorithms.html" title="class in org.apache.mahout.classifier.sequencelearning.hmm"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/mahout/classifier/sequencelearning/hmm/HmmModel.html" title="class in org.apache.mahout.classifier.sequencelearning.hmm"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/mahout/classifier/sequencelearning/hmm/HmmEvaluator.html" target="_top">Frames</a></li>
<li><a href="HmmEvaluator.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.mahout.classifier.sequencelearning.hmm</div>
<h2 title="Class HmmEvaluator" class="title">Class HmmEvaluator</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.mahout.classifier.sequencelearning.hmm.HmmEvaluator</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public final class <span class="typeNameLabel">HmmEvaluator</span>
extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">The HMMEvaluator class offers several methods to evaluate an HMM Model. The
following use-cases are covered: 1) Generate a sequence of output states from
a given model (prediction). 2) Compute the likelihood that a given model
generated a given sequence of output states (model likelihood). 3) Compute
the most likely hidden sequence for a given model and a given observed
sequence (decoding).</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static int[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/classifier/sequencelearning/hmm/HmmEvaluator.html#decode-org.apache.mahout.classifier.sequencelearning.hmm.HmmModel-int:A-boolean-">decode</a></span>(<a href="../../../../../../org/apache/mahout/classifier/sequencelearning/hmm/HmmModel.html" title="class in org.apache.mahout.classifier.sequencelearning.hmm">HmmModel</a>&nbsp;model,
int[]&nbsp;observations,
boolean&nbsp;scaled)</code>
<div class="block">Returns the most likely sequence of hidden states for the given model and
observation</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/classifier/sequencelearning/hmm/HmmEvaluator.html#modelLikelihood-org.apache.mahout.classifier.sequencelearning.hmm.HmmModel-int:A-boolean-">modelLikelihood</a></span>(<a href="../../../../../../org/apache/mahout/classifier/sequencelearning/hmm/HmmModel.html" title="class in org.apache.mahout.classifier.sequencelearning.hmm">HmmModel</a>&nbsp;model,
int[]&nbsp;outputSequence,
boolean&nbsp;scaled)</code>
<div class="block">Returns the likelihood that a given output sequence was produced by the
given model.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/classifier/sequencelearning/hmm/HmmEvaluator.html#modelLikelihood-org.apache.mahout.classifier.sequencelearning.hmm.HmmModel-int:A-org.apache.mahout.math.Matrix-boolean-">modelLikelihood</a></span>(<a href="../../../../../../org/apache/mahout/classifier/sequencelearning/hmm/HmmModel.html" title="class in org.apache.mahout.classifier.sequencelearning.hmm">HmmModel</a>&nbsp;model,
int[]&nbsp;outputSequence,
<a href="http://mahout.apache.org/mahout-math/apidocs/org/apache/mahout/math/Matrix.html?is-external=true" title="class or interface in org.apache.mahout.math">Matrix</a>&nbsp;beta,
boolean&nbsp;scaled)</code>
<div class="block">Computes the likelihood that a given output sequence was computed by a
given model.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/classifier/sequencelearning/hmm/HmmEvaluator.html#modelLikelihood-org.apache.mahout.math.Matrix-boolean-">modelLikelihood</a></span>(<a href="http://mahout.apache.org/mahout-math/apidocs/org/apache/mahout/math/Matrix.html?is-external=true" title="class or interface in org.apache.mahout.math">Matrix</a>&nbsp;alpha,
boolean&nbsp;scaled)</code>
<div class="block">Computes the likelihood that a given output sequence was computed by a
given model using the alpha values computed by the forward algorithm.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static int[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/classifier/sequencelearning/hmm/HmmEvaluator.html#predict-org.apache.mahout.classifier.sequencelearning.hmm.HmmModel-int-">predict</a></span>(<a href="../../../../../../org/apache/mahout/classifier/sequencelearning/hmm/HmmModel.html" title="class in org.apache.mahout.classifier.sequencelearning.hmm">HmmModel</a>&nbsp;model,
int&nbsp;steps)</code>
<div class="block">Predict a sequence of steps output states for the given HMM model</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static int[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/classifier/sequencelearning/hmm/HmmEvaluator.html#predict-org.apache.mahout.classifier.sequencelearning.hmm.HmmModel-int-long-">predict</a></span>(<a href="../../../../../../org/apache/mahout/classifier/sequencelearning/hmm/HmmModel.html" title="class in org.apache.mahout.classifier.sequencelearning.hmm">HmmModel</a>&nbsp;model,
int&nbsp;steps,
long&nbsp;seed)</code>
<div class="block">Predict a sequence of steps output states for the given HMM model</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="predict-org.apache.mahout.classifier.sequencelearning.hmm.HmmModel-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>predict</h4>
<pre>public static&nbsp;int[]&nbsp;predict(<a href="../../../../../../org/apache/mahout/classifier/sequencelearning/hmm/HmmModel.html" title="class in org.apache.mahout.classifier.sequencelearning.hmm">HmmModel</a>&nbsp;model,
int&nbsp;steps)</pre>
<div class="block">Predict a sequence of steps output states for the given HMM model</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>model</code> - The Hidden Markov model used to generate the output sequence</dd>
<dd><code>steps</code> - Size of the generated output sequence</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>integer array containing a sequence of steps output state IDs,
generated by the specified model</dd>
</dl>
</li>
</ul>
<a name="predict-org.apache.mahout.classifier.sequencelearning.hmm.HmmModel-int-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>predict</h4>
<pre>public static&nbsp;int[]&nbsp;predict(<a href="../../../../../../org/apache/mahout/classifier/sequencelearning/hmm/HmmModel.html" title="class in org.apache.mahout.classifier.sequencelearning.hmm">HmmModel</a>&nbsp;model,
int&nbsp;steps,
long&nbsp;seed)</pre>
<div class="block">Predict a sequence of steps output states for the given HMM model</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>model</code> - The Hidden Markov model used to generate the output sequence</dd>
<dd><code>steps</code> - Size of the generated output sequence</dd>
<dd><code>seed</code> - seed to use for the RNG</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>integer array containing a sequence of steps output state IDs,
generated by the specified model</dd>
</dl>
</li>
</ul>
<a name="modelLikelihood-org.apache.mahout.classifier.sequencelearning.hmm.HmmModel-int:A-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>modelLikelihood</h4>
<pre>public static&nbsp;double&nbsp;modelLikelihood(<a href="../../../../../../org/apache/mahout/classifier/sequencelearning/hmm/HmmModel.html" title="class in org.apache.mahout.classifier.sequencelearning.hmm">HmmModel</a>&nbsp;model,
int[]&nbsp;outputSequence,
boolean&nbsp;scaled)</pre>
<div class="block">Returns the likelihood that a given output sequence was produced by the
given model. Internally, this function calls the forward algorithm to
compute the alpha values and then uses the overloaded function to compute
the actual model likelihood.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>model</code> - Model to base the likelihood on.</dd>
<dd><code>outputSequence</code> - Sequence to compute likelihood for.</dd>
<dd><code>scaled</code> - Use log-scaled parameters for computation. This is computationally
more expensive, but offers better numerically stability in case of
long output sequences</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Likelihood that the given model produced the given sequence</dd>
</dl>
</li>
</ul>
<a name="modelLikelihood-org.apache.mahout.math.Matrix-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>modelLikelihood</h4>
<pre>public static&nbsp;double&nbsp;modelLikelihood(<a href="http://mahout.apache.org/mahout-math/apidocs/org/apache/mahout/math/Matrix.html?is-external=true" title="class or interface in org.apache.mahout.math">Matrix</a>&nbsp;alpha,
boolean&nbsp;scaled)</pre>
<div class="block">Computes the likelihood that a given output sequence was computed by a
given model using the alpha values computed by the forward algorithm.
// TODO I am a bit confused here - where is the output sequence referenced in the comment above in the code?</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>alpha</code> - Matrix of alpha values</dd>
<dd><code>scaled</code> - Set to true if the alpha values are log-scaled.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>model likelihood.</dd>
</dl>
</li>
</ul>
<a name="modelLikelihood-org.apache.mahout.classifier.sequencelearning.hmm.HmmModel-int:A-org.apache.mahout.math.Matrix-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>modelLikelihood</h4>
<pre>public static&nbsp;double&nbsp;modelLikelihood(<a href="../../../../../../org/apache/mahout/classifier/sequencelearning/hmm/HmmModel.html" title="class in org.apache.mahout.classifier.sequencelearning.hmm">HmmModel</a>&nbsp;model,
int[]&nbsp;outputSequence,
<a href="http://mahout.apache.org/mahout-math/apidocs/org/apache/mahout/math/Matrix.html?is-external=true" title="class or interface in org.apache.mahout.math">Matrix</a>&nbsp;beta,
boolean&nbsp;scaled)</pre>
<div class="block">Computes the likelihood that a given output sequence was computed by a
given model.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>model</code> - model to compute sequence likelihood for.</dd>
<dd><code>outputSequence</code> - sequence to base computation on.</dd>
<dd><code>beta</code> - beta parameters.</dd>
<dd><code>scaled</code> - set to true if betas are log-scaled.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>likelihood of the outputSequence given the model.</dd>
</dl>
</li>
</ul>
<a name="decode-org.apache.mahout.classifier.sequencelearning.hmm.HmmModel-int:A-boolean-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>decode</h4>
<pre>public static&nbsp;int[]&nbsp;decode(<a href="../../../../../../org/apache/mahout/classifier/sequencelearning/hmm/HmmModel.html" title="class in org.apache.mahout.classifier.sequencelearning.hmm">HmmModel</a>&nbsp;model,
int[]&nbsp;observations,
boolean&nbsp;scaled)</pre>
<div class="block">Returns the most likely sequence of hidden states for the given model and
observation</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>model</code> - model to use for decoding.</dd>
<dd><code>observations</code> - integer Array containing a sequence of observed state IDs</dd>
<dd><code>scaled</code> - Use log-scaled computations, this requires higher computational
effort but is numerically more stable for large observation
sequences</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>integer array containing the most likely sequence of hidden state
IDs</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/HmmEvaluator.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/mahout/classifier/sequencelearning/hmm/HmmAlgorithms.html" title="class in org.apache.mahout.classifier.sequencelearning.hmm"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/mahout/classifier/sequencelearning/hmm/HmmModel.html" title="class in org.apache.mahout.classifier.sequencelearning.hmm"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/mahout/classifier/sequencelearning/hmm/HmmEvaluator.html" target="_top">Frames</a></li>
<li><a href="HmmEvaluator.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2008&#x2013;2017 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>