Files
mlpack/doc/html/hmm_8hpp_source.html
T

142 lines
36 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>mlpack: src/mlpack/methods/hmm/hmm.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="extra-stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mlpack
&#160;<span id="projectnumber">master</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_44a936ef30fc126706c6284a2fc0c990.html">mlpack</a></li><li class="navelem"><a class="el" href="dir_3cfbf900288ec2fe8dd2c2c8482f216e.html">methods</a></li><li class="navelem"><a class="el" href="dir_693d33d6e5a445ae210c2bf5cba9783a.html">hmm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">hmm.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="hmm_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#ifndef MLPACK_METHODS_HMM_HMM_HPP</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#define MLPACK_METHODS_HMM_HMM_HPP</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="prereqs_8hpp.html">mlpack/prereqs.hpp</a>&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="discrete__distribution_8hpp.html">mlpack/core/dists/discrete_distribution.hpp</a>&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemlpack.html">mlpack</a> {</div><div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="namespacemlpack_1_1hmm.html"> 21</a></span>&#160;<span class="keyword">namespace </span>hmm {</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Distribution = distribution::DiscreteDistribution&gt;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classmlpack_1_1hmm_1_1HMM.html"> 85</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmlpack_1_1hmm_1_1HMM.html">HMM</a></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;{</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#a4f260bb135a8f032e2127d4370afa49e">HMM</a>(<span class="keyword">const</span> <span class="keywordtype">size_t</span> states = 0,</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">const</span> Distribution emissions = Distribution(),</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#ae320d8bc5e9eb7b9790eaf6f58630ac8">tolerance</a> = 1e-5);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#a4f260bb135a8f032e2127d4370afa49e">HMM</a>(<span class="keyword">const</span> arma::vec&amp; <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#a805ace4cf28eda53e89111e2ccda681f">initial</a>,</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">const</span> arma::mat&amp; <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#ac1ad3d62307dda6c0f65baba216e6bcf">transition</a>,</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">const</span> std::vector&lt;Distribution&gt;&amp; <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#ab2a10159d760f051148ed24dbbad5f31">emission</a>,</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#ae320d8bc5e9eb7b9790eaf6f58630ac8">tolerance</a> = 1e-5);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#a222f6678e895293c0ddc3ebc86928f63">Train</a>(<span class="keyword">const</span> std::vector&lt;arma::mat&gt;&amp; dataSeq);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#a222f6678e895293c0ddc3ebc86928f63">Train</a>(<span class="keyword">const</span> std::vector&lt;arma::mat&gt;&amp; dataSeq,</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">const</span> std::vector&lt;arma::Row&lt;size_t&gt; &gt;&amp; stateSeq);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#aaf771c62844f8f3b62ce3dde31b6106d">Estimate</a>(<span class="keyword">const</span> arma::mat&amp; dataSeq,</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; arma::mat&amp; stateProb,</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; arma::mat&amp; forwardProb,</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; arma::mat&amp; backwardProb,</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; arma::vec&amp; scales) <span class="keyword">const</span>;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#aaf771c62844f8f3b62ce3dde31b6106d">Estimate</a>(<span class="keyword">const</span> arma::mat&amp; dataSeq,</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; arma::mat&amp; stateProb) <span class="keyword">const</span>;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#a4716c89b2a2a064de6ed46f102de7d31">Generate</a>(<span class="keyword">const</span> <span class="keywordtype">size_t</span> length,</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; arma::mat&amp; dataSequence,</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; arma::Row&lt;size_t&gt;&amp; stateSequence,</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> startState = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#a40e667a6b5508c6d7853d53454a9d590">Predict</a>(<span class="keyword">const</span> arma::mat&amp; dataSeq,</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; arma::Row&lt;size_t&gt;&amp; stateSeq) <span class="keyword">const</span>;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#a83a6f6f0d75fae4f29e9c7e06d353f1d">LogLikelihood</a>(<span class="keyword">const</span> arma::mat&amp; dataSeq) <span class="keyword">const</span>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#acca74c35fb8ac24b2c08bfd6b064a170">Filter</a>(<span class="keyword">const</span> arma::mat&amp; dataSeq,</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; arma::mat&amp; filterSeq,</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordtype">size_t</span> ahead = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#a5cd79332ac5cdb89f6c59d07e81fae07">Smooth</a>(<span class="keyword">const</span> arma::mat&amp; dataSeq,</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; arma::mat&amp; smoothSeq) <span class="keyword">const</span>;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="classmlpack_1_1hmm_1_1HMM.html#a5895f1863dbe0c3c63d9f80a27e42f9b"> 301</a></span>&#160; <span class="keyword">const</span> arma::vec&amp; <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#a5895f1863dbe0c3c63d9f80a27e42f9b">Initial</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#a805ace4cf28eda53e89111e2ccda681f">initial</a>; }</div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="classmlpack_1_1hmm_1_1HMM.html#a9025c20d583d42d99372a8c4621875bc"> 303</a></span>&#160; arma::vec&amp; <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#a9025c20d583d42d99372a8c4621875bc">Initial</a>() { <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#a805ace4cf28eda53e89111e2ccda681f">initial</a>; }</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="classmlpack_1_1hmm_1_1HMM.html#a152eda3c0efaaf3d9eb82a23e2e3b2e1"> 306</a></span>&#160; <span class="keyword">const</span> arma::mat&amp; <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#a152eda3c0efaaf3d9eb82a23e2e3b2e1">Transition</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#ac1ad3d62307dda6c0f65baba216e6bcf">transition</a>; }</div><div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="classmlpack_1_1hmm_1_1HMM.html#a531b08fc79e3d429ec382e901b92eca6"> 308</a></span>&#160; arma::mat&amp; <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#a531b08fc79e3d429ec382e901b92eca6">Transition</a>() { <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#ac1ad3d62307dda6c0f65baba216e6bcf">transition</a>; }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="classmlpack_1_1hmm_1_1HMM.html#ae61af6d903e3e47357b56ee130bc4b9d"> 311</a></span>&#160; <span class="keyword">const</span> std::vector&lt;Distribution&gt;&amp; <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#ae61af6d903e3e47357b56ee130bc4b9d">Emission</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#ab2a10159d760f051148ed24dbbad5f31">emission</a>; }</div><div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="classmlpack_1_1hmm_1_1HMM.html#ab321be39937ca1f9e07d7d0aafef84b5"> 313</a></span>&#160; std::vector&lt;Distribution&gt;&amp; <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#ab321be39937ca1f9e07d7d0aafef84b5">Emission</a>() { <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#ab2a10159d760f051148ed24dbbad5f31">emission</a>; }</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;</div><div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="classmlpack_1_1hmm_1_1HMM.html#ad21ef93bc0c453d74f6b0bc0234e312b"> 316</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#ad21ef93bc0c453d74f6b0bc0234e312b">Dimensionality</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#a94bbb69cd0c3b800a18962faee4190bd">dimensionality</a>; }</div><div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="classmlpack_1_1hmm_1_1HMM.html#a5bfe57d1c239278113cac519f9da2106"> 318</a></span>&#160; <span class="keywordtype">size_t</span>&amp; <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#a5bfe57d1c239278113cac519f9da2106">Dimensionality</a>() { <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#a94bbb69cd0c3b800a18962faee4190bd">dimensionality</a>; }</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="classmlpack_1_1hmm_1_1HMM.html#ab6b9e56d21ec7c68f51bcd0c6262663d"> 321</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#ab6b9e56d21ec7c68f51bcd0c6262663d">Tolerance</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#ae320d8bc5e9eb7b9790eaf6f58630ac8">tolerance</a>; }</div><div class="line"><a name="l00323"></a><span class="lineno"><a class="line" href="classmlpack_1_1hmm_1_1HMM.html#ab588ae02998cf353e819f2ef8613e481"> 323</a></span>&#160; <span class="keywordtype">double</span>&amp; <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#ab588ae02998cf353e819f2ef8613e481">Tolerance</a>() { <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#ae320d8bc5e9eb7b9790eaf6f58630ac8">tolerance</a>; }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Archive&gt;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#a582f0300253e5821eba931ad2127422f">Serialize</a>(Archive&amp; ar, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> version);</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="comment">// Helper functions.</span></div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#a9f751f398d07b15c0da8b824d48f5eb1">Forward</a>(<span class="keyword">const</span> arma::mat&amp; dataSeq,</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; arma::vec&amp; scales,</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; arma::mat&amp; forwardProb) <span class="keyword">const</span>;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#a1e3846b8b11eef1ac72a71911f068d4a">Backward</a>(<span class="keyword">const</span> arma::mat&amp; dataSeq,</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keyword">const</span> arma::vec&amp; scales,</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; arma::mat&amp; backwardProb) <span class="keyword">const</span>;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div><div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="classmlpack_1_1hmm_1_1HMM.html#ab2a10159d760f051148ed24dbbad5f31"> 363</a></span>&#160; std::vector&lt;Distribution&gt; <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#ab2a10159d760f051148ed24dbbad5f31">emission</a>;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="classmlpack_1_1hmm_1_1HMM.html#ac1ad3d62307dda6c0f65baba216e6bcf"> 366</a></span>&#160; arma::mat <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#ac1ad3d62307dda6c0f65baba216e6bcf">transition</a>;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00370"></a><span class="lineno"><a class="line" href="classmlpack_1_1hmm_1_1HMM.html#a805ace4cf28eda53e89111e2ccda681f"> 370</a></span>&#160; arma::vec <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#a805ace4cf28eda53e89111e2ccda681f">initial</a>;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div><div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="classmlpack_1_1hmm_1_1HMM.html#a94bbb69cd0c3b800a18962faee4190bd"> 373</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#a94bbb69cd0c3b800a18962faee4190bd">dimensionality</a>;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;</div><div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="classmlpack_1_1hmm_1_1HMM.html#ae320d8bc5e9eb7b9790eaf6f58630ac8"> 376</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#ae320d8bc5e9eb7b9790eaf6f58630ac8">tolerance</a>;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;};</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;} <span class="comment">// namespace hmm</span></div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;} <span class="comment">// namespace mlpack</span></div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="comment">// Include implementation.</span></div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="preprocessor">#include &quot;hmm_impl.hpp&quot;</span></div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html_a9025c20d583d42d99372a8c4621875bc"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html#a9025c20d583d42d99372a8c4621875bc">mlpack::hmm::HMM::Initial</a></div><div class="ttdeci">arma::vec &amp; Initial()</div><div class="ttdoc">Modify the vector of initial state probabilities. </div><div class="ttdef"><b>Definition:</b> <a href="hmm_8hpp_source.html#l00303">hmm.hpp:303</a></div></div>
<div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html_ad21ef93bc0c453d74f6b0bc0234e312b"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html#ad21ef93bc0c453d74f6b0bc0234e312b">mlpack::hmm::HMM::Dimensionality</a></div><div class="ttdeci">size_t Dimensionality() const </div><div class="ttdoc">Get the dimensionality of observations. </div><div class="ttdef"><b>Definition:</b> <a href="hmm_8hpp_source.html#l00316">hmm.hpp:316</a></div></div>
<div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html_ab2a10159d760f051148ed24dbbad5f31"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html#ab2a10159d760f051148ed24dbbad5f31">mlpack::hmm::HMM::emission</a></div><div class="ttdeci">std::vector&lt; Distribution &gt; emission</div><div class="ttdoc">Set of emission probability distributions; one for each state. </div><div class="ttdef"><b>Definition:</b> <a href="hmm_8hpp_source.html#l00363">hmm.hpp:363</a></div></div>
<div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html_a5cd79332ac5cdb89f6c59d07e81fae07"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html#a5cd79332ac5cdb89f6c59d07e81fae07">mlpack::hmm::HMM::Smooth</a></div><div class="ttdeci">void Smooth(const arma::mat &amp;dataSeq, arma::mat &amp;smoothSeq) const </div><div class="ttdoc">HMM smoothing. </div></div>
<div class="ttc" id="namespacemlpack_html"><div class="ttname"><a href="namespacemlpack.html">mlpack</a></div><div class="ttdoc">Linear algebra utility functions, generally performed on matrices or vectors. </div><div class="ttdef"><b>Definition:</b> <a href="binarize_8hpp_source.html#l00018">binarize.hpp:18</a></div></div>
<div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html_a5895f1863dbe0c3c63d9f80a27e42f9b"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html#a5895f1863dbe0c3c63d9f80a27e42f9b">mlpack::hmm::HMM::Initial</a></div><div class="ttdeci">const arma::vec &amp; Initial() const </div><div class="ttdoc">Return the vector of initial state probabilities. </div><div class="ttdef"><b>Definition:</b> <a href="hmm_8hpp_source.html#l00301">hmm.hpp:301</a></div></div>
<div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html_a5bfe57d1c239278113cac519f9da2106"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html#a5bfe57d1c239278113cac519f9da2106">mlpack::hmm::HMM::Dimensionality</a></div><div class="ttdeci">size_t &amp; Dimensionality()</div><div class="ttdoc">Set the dimensionality of observations. </div><div class="ttdef"><b>Definition:</b> <a href="hmm_8hpp_source.html#l00318">hmm.hpp:318</a></div></div>
<div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html_a152eda3c0efaaf3d9eb82a23e2e3b2e1"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html#a152eda3c0efaaf3d9eb82a23e2e3b2e1">mlpack::hmm::HMM::Transition</a></div><div class="ttdeci">const arma::mat &amp; Transition() const </div><div class="ttdoc">Return the transition matrix. </div><div class="ttdef"><b>Definition:</b> <a href="hmm_8hpp_source.html#l00306">hmm.hpp:306</a></div></div>
<div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html_ab321be39937ca1f9e07d7d0aafef84b5"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html#ab321be39937ca1f9e07d7d0aafef84b5">mlpack::hmm::HMM::Emission</a></div><div class="ttdeci">std::vector&lt; Distribution &gt; &amp; Emission()</div><div class="ttdoc">Return a modifiable emission probability matrix reference. </div><div class="ttdef"><b>Definition:</b> <a href="hmm_8hpp_source.html#l00313">hmm.hpp:313</a></div></div>
<div class="ttc" id="prereqs_8hpp_html"><div class="ttname"><a href="prereqs_8hpp.html">prereqs.hpp</a></div><div class="ttdoc">The core includes that mlpack expects; standard C++ includes and Armadillo. </div></div>
<div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html_a9f751f398d07b15c0da8b824d48f5eb1"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html#a9f751f398d07b15c0da8b824d48f5eb1">mlpack::hmm::HMM::Forward</a></div><div class="ttdeci">void Forward(const arma::mat &amp;dataSeq, arma::vec &amp;scales, arma::mat &amp;forwardProb) const </div><div class="ttdoc">The Forward algorithm (part of the Forward-Backward algorithm). </div></div>
<div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html_ae320d8bc5e9eb7b9790eaf6f58630ac8"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html#ae320d8bc5e9eb7b9790eaf6f58630ac8">mlpack::hmm::HMM::tolerance</a></div><div class="ttdeci">double tolerance</div><div class="ttdoc">Tolerance of Baum-Welch algorithm. </div><div class="ttdef"><b>Definition:</b> <a href="hmm_8hpp_source.html#l00376">hmm.hpp:376</a></div></div>
<div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html_a805ace4cf28eda53e89111e2ccda681f"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html#a805ace4cf28eda53e89111e2ccda681f">mlpack::hmm::HMM::initial</a></div><div class="ttdeci">arma::vec initial</div><div class="ttdoc">Initial state probability vector. </div><div class="ttdef"><b>Definition:</b> <a href="hmm_8hpp_source.html#l00370">hmm.hpp:370</a></div></div>
<div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html_ab588ae02998cf353e819f2ef8613e481"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html#ab588ae02998cf353e819f2ef8613e481">mlpack::hmm::HMM::Tolerance</a></div><div class="ttdeci">double &amp; Tolerance()</div><div class="ttdoc">Modify the tolerance of the Baum-Welch algorithm. </div><div class="ttdef"><b>Definition:</b> <a href="hmm_8hpp_source.html#l00323">hmm.hpp:323</a></div></div>
<div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html_a83a6f6f0d75fae4f29e9c7e06d353f1d"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html#a83a6f6f0d75fae4f29e9c7e06d353f1d">mlpack::hmm::HMM::LogLikelihood</a></div><div class="ttdeci">double LogLikelihood(const arma::mat &amp;dataSeq) const </div><div class="ttdoc">Compute the log-likelihood of the given data sequence. </div></div>
<div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html_ab6b9e56d21ec7c68f51bcd0c6262663d"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html#ab6b9e56d21ec7c68f51bcd0c6262663d">mlpack::hmm::HMM::Tolerance</a></div><div class="ttdeci">double Tolerance() const </div><div class="ttdoc">Get the tolerance of the Baum-Welch algorithm. </div><div class="ttdef"><b>Definition:</b> <a href="hmm_8hpp_source.html#l00321">hmm.hpp:321</a></div></div>
<div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html">mlpack::hmm::HMM</a></div><div class="ttdoc">A class that represents a Hidden Markov Model with an arbitrary type of emission distribution. </div><div class="ttdef"><b>Definition:</b> <a href="hmm_8hpp_source.html#l00085">hmm.hpp:85</a></div></div>
<div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html_ae61af6d903e3e47357b56ee130bc4b9d"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html#ae61af6d903e3e47357b56ee130bc4b9d">mlpack::hmm::HMM::Emission</a></div><div class="ttdeci">const std::vector&lt; Distribution &gt; &amp; Emission() const </div><div class="ttdoc">Return the emission distributions. </div><div class="ttdef"><b>Definition:</b> <a href="hmm_8hpp_source.html#l00311">hmm.hpp:311</a></div></div>
<div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html_a4716c89b2a2a064de6ed46f102de7d31"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html#a4716c89b2a2a064de6ed46f102de7d31">mlpack::hmm::HMM::Generate</a></div><div class="ttdeci">void Generate(const size_t length, arma::mat &amp;dataSequence, arma::Row&lt; size_t &gt; &amp;stateSequence, const size_t startState=0) const </div><div class="ttdoc">Generate a random data sequence of the given length. </div></div>
<div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html_a40e667a6b5508c6d7853d53454a9d590"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html#a40e667a6b5508c6d7853d53454a9d590">mlpack::hmm::HMM::Predict</a></div><div class="ttdeci">double Predict(const arma::mat &amp;dataSeq, arma::Row&lt; size_t &gt; &amp;stateSeq) const </div><div class="ttdoc">Compute the most probable hidden state sequence for the given data sequence, using the Viterbi algori...</div></div>
<div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html_aaf771c62844f8f3b62ce3dde31b6106d"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html#aaf771c62844f8f3b62ce3dde31b6106d">mlpack::hmm::HMM::Estimate</a></div><div class="ttdeci">double Estimate(const arma::mat &amp;dataSeq, arma::mat &amp;stateProb, arma::mat &amp;forwardProb, arma::mat &amp;backwardProb, arma::vec &amp;scales) const </div><div class="ttdoc">Estimate the probabilities of each hidden state at each time step for each given data observation...</div></div>
<div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html_a1e3846b8b11eef1ac72a71911f068d4a"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html#a1e3846b8b11eef1ac72a71911f068d4a">mlpack::hmm::HMM::Backward</a></div><div class="ttdeci">void Backward(const arma::mat &amp;dataSeq, const arma::vec &amp;scales, arma::mat &amp;backwardProb) const </div><div class="ttdoc">The Backward algorithm (part of the Forward-Backward algorithm). </div></div>
<div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html_a222f6678e895293c0ddc3ebc86928f63"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html#a222f6678e895293c0ddc3ebc86928f63">mlpack::hmm::HMM::Train</a></div><div class="ttdeci">void Train(const std::vector&lt; arma::mat &gt; &amp;dataSeq)</div><div class="ttdoc">Train the model using the Baum-Welch algorithm, with only the given unlabeled observations. </div></div>
<div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html_a94bbb69cd0c3b800a18962faee4190bd"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html#a94bbb69cd0c3b800a18962faee4190bd">mlpack::hmm::HMM::dimensionality</a></div><div class="ttdeci">size_t dimensionality</div><div class="ttdoc">Dimensionality of observations. </div><div class="ttdef"><b>Definition:</b> <a href="hmm_8hpp_source.html#l00373">hmm.hpp:373</a></div></div>
<div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html_a531b08fc79e3d429ec382e901b92eca6"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html#a531b08fc79e3d429ec382e901b92eca6">mlpack::hmm::HMM::Transition</a></div><div class="ttdeci">arma::mat &amp; Transition()</div><div class="ttdoc">Return a modifiable transition matrix reference. </div><div class="ttdef"><b>Definition:</b> <a href="hmm_8hpp_source.html#l00308">hmm.hpp:308</a></div></div>
<div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html_a582f0300253e5821eba931ad2127422f"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html#a582f0300253e5821eba931ad2127422f">mlpack::hmm::HMM::Serialize</a></div><div class="ttdeci">void Serialize(Archive &amp;ar, const unsigned int version)</div><div class="ttdoc">Serialize the object. </div></div>
<div class="ttc" id="discrete__distribution_8hpp_html"><div class="ttname"><a href="discrete__distribution_8hpp.html">discrete_distribution.hpp</a></div></div>
<div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html_acca74c35fb8ac24b2c08bfd6b064a170"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html#acca74c35fb8ac24b2c08bfd6b064a170">mlpack::hmm::HMM::Filter</a></div><div class="ttdeci">void Filter(const arma::mat &amp;dataSeq, arma::mat &amp;filterSeq, size_t ahead=0) const </div><div class="ttdoc">HMM filtering. </div></div>
<div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html_a4f260bb135a8f032e2127d4370afa49e"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html#a4f260bb135a8f032e2127d4370afa49e">mlpack::hmm::HMM::HMM</a></div><div class="ttdeci">HMM(const size_t states=0, const Distribution emissions=Distribution(), const double tolerance=1e-5)</div><div class="ttdoc">Create the Hidden Markov Model with the given number of hidden states and the given default distribut...</div></div>
<div class="ttc" id="classmlpack_1_1hmm_1_1HMM_html_ac1ad3d62307dda6c0f65baba216e6bcf"><div class="ttname"><a href="classmlpack_1_1hmm_1_1HMM.html#ac1ad3d62307dda6c0f65baba216e6bcf">mlpack::hmm::HMM::transition</a></div><div class="ttdeci">arma::mat transition</div><div class="ttdoc">Transition probability matrix. </div><div class="ttdef"><b>Definition:</b> <a href="hmm_8hpp_source.html#l00366">hmm.hpp:366</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
<script type="text/javascript">
var x = document.getElementsByClassName("formulaDsp");
var i;
for (i = 0; i < x.length; i++)
{
x[i].width /= 4;
}
</script>
</html>