142 lines
36 KiB
HTML
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
|
|
 <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 Page</span></a></li>
|
|
<li><a href="pages.html"><span>Related 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 List</span></a></li>
|
|
<li><a href="globals.html"><span>File 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> </div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#ifndef MLPACK_METHODS_HMM_HMM_HPP</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#define MLPACK_METHODS_HMM_HMM_HPP</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <<a class="code" href="prereqs_8hpp.html">mlpack/prereqs.hpp</a>></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <<a class="code" href="discrete__distribution_8hpp.html">mlpack/core/dists/discrete_distribution.hpp</a>></span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <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> <span class="keyword">namespace </span>hmm {</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">template</span><<span class="keyword">typename</span> Distribution = distribution::DiscreteDistribution></div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classmlpack_1_1hmm_1_1HMM.html"> 85</a></span> <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> {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <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>  <span class="keyword">const</span> Distribution emissions = Distribution(),</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <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> </div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#a4f260bb135a8f032e2127d4370afa49e">HMM</a>(<span class="keyword">const</span> arma::vec& <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>  <span class="keyword">const</span> arma::mat& <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>  <span class="keyword">const</span> std::vector<Distribution>& <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>  <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> </div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <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<arma::mat>& dataSeq);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <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<arma::mat>& dataSeq,</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keyword">const</span> std::vector<arma::Row<size_t> >& stateSeq);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <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& dataSeq,</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  arma::mat& stateProb,</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  arma::mat& forwardProb,</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  arma::mat& backwardProb,</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  arma::vec& scales) <span class="keyword">const</span>;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <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& dataSeq,</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  arma::mat& stateProb) <span class="keyword">const</span>;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <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>  arma::mat& dataSequence,</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  arma::Row<size_t>& stateSequence,</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <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> </div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <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& dataSeq,</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  arma::Row<size_t>& stateSeq) <span class="keyword">const</span>;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> </div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <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& dataSeq) <span class="keyword">const</span>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <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& dataSeq,</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  arma::mat& filterSeq,</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <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> </div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <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& dataSeq,</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  arma::mat& smoothSeq) <span class="keyword">const</span>;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span> </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>  <span class="keyword">const</span> arma::vec& <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>  arma::vec& <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> </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>  <span class="keyword">const</span> arma::mat& <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>  arma::mat& <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> </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>  <span class="keyword">const</span> std::vector<Distribution>& <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>  std::vector<Distribution>& <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> </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>  <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>  <span class="keywordtype">size_t</span>& <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> </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>  <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>  <span class="keywordtype">double</span>& <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> </div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keyword">template</span><<span class="keyword">typename</span> Archive></div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keywordtype">void</span> <a class="code" href="classmlpack_1_1hmm_1_1HMM.html#a582f0300253e5821eba931ad2127422f">Serialize</a>(Archive& 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> </div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="keyword">protected</span>:</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="comment">// Helper functions.</span></div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <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& dataSeq,</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  arma::vec& scales,</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  arma::mat& forwardProb) <span class="keyword">const</span>;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span> </div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <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& dataSeq,</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="keyword">const</span> arma::vec& scales,</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  arma::mat& backwardProb) <span class="keyword">const</span>;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span> </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>  std::vector<Distribution> <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> </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>  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> </div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <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>  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> </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>  <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> </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>  <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> };</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span> </div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span> } <span class="comment">// namespace hmm</span></div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span> } <span class="comment">// namespace mlpack</span></div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span> </div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="comment">// Include implementation.</span></div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="preprocessor">#include "hmm_impl.hpp"</span></div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> </div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <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 & 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< Distribution > 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 &dataSeq, arma::mat &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 & 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 & 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 & 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< Distribution > & 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 &dataSeq, arma::vec &scales, arma::mat &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 & 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 &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< Distribution > & 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 &dataSequence, arma::Row< size_t > &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 &dataSeq, arma::Row< size_t > &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 &dataSeq, arma::mat &stateProb, arma::mat &forwardProb, arma::mat &backwardProb, arma::vec &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 &dataSeq, const arma::vec &scales, arma::mat &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< arma::mat > &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 & 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 &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 &dataSeq, arma::mat &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  <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>
|