blob: 0e47651b734f9b1ca5fbbf7e86dd790c2ce0c580 [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>SSVDSolver (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="SSVDSolver (Mahout Map-Reduce 0.13.0 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance 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/SSVDSolver.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/math/hadoop/stochasticsvd/SSVDHelper.html" title="class in org.apache.mahout.math.hadoop.stochasticsvd"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/UJob.html" title="class in org.apache.mahout.math.hadoop.stochasticsvd"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html" target="_top">Frames</a></li>
<li><a href="SSVDSolver.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><a href="#constructor.summary">Constr</a>&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><a href="#constructor.detail">Constr</a>&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.math.hadoop.stochasticsvd</div>
<h2 title="Class SSVDSolver" class="title">Class SSVDSolver</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.math.hadoop.stochasticsvd.SSVDSolver</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public final class <span class="typeNameLabel">SSVDSolver</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">Stochastic SVD solver (API class).
<p/>
<p/>
Implementation details are in my working notes in MAHOUT-376
(https://issues.apache.org/jira/browse/MAHOUT-376).
<p/>
<p/>
As of the time of this writing, I don't have benchmarks for this method in
comparison to other methods. However, non-hadoop differentiating
characteristics of this method are thought to be :
<LI>"faster" and precision is traded off in favor of speed. However, there's
lever in terms of "oversampling parameter" p. Higher values of p produce
better precision but are trading off speed (and minimum RAM requirement).
This also means that this method is almost guaranteed to be less precise than
Lanczos unless full rank SVD decomposition is sought.
<LI>"more scale" -- can presumably take on larger problems than Lanczos one
(not confirmed by benchmark at this time)
<p/>
<p/>
<p/>
Specifically in regards to this implementation, <i>I think</i> couple of
other differentiating points are:
<LI>no need to specify input matrix height or width in command line, it is
what it gets to be.
<LI>supports any Writable as DRM row keys and copies them to correspondent
rows of U matrix;
<LI>can request U or V or U<sub>&sigma;</sub>=U* &Sigma;<sup>0.5</sup> or
V<sub>&sigma;</sub>=V* &Sigma;<sup>0.5</sup> none of which would require pass
over input A and these jobs are parallel map-only jobs.
<p/>
<p/>
<p/>
This class is central public API for SSVD solver. The use pattern is as
follows:
<p/>
<UL>
<LI>create the solver using constructor and supplying computation parameters.
<LI>set optional parameters thru setter methods.
<LI>call <a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#run--"><code>run()</code></a>.
<LI> <a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#getUPath--"><code>getUPath()</code></a> (if computed) returns the path to the directory
containing m x k U matrix file(s).
<LI> <a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#getVPath--"><code>getVPath()</code></a> (if computed) returns the path to the directory
containing n x k V matrix file(s).
<p/>
</UL></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#SSVDSolver-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.Path:A-org.apache.hadoop.fs.Path-int-int-int-int-">SSVDSolver</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
org.apache.hadoop.fs.Path[]&nbsp;inputPath,
org.apache.hadoop.fs.Path&nbsp;outputPath,
int&nbsp;ablockRows,
int&nbsp;k,
int&nbsp;p,
int&nbsp;reduceTasks)</code>
<div class="block">create new SSVD solver.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== 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="t2" class="tableTab"><span><a href="javascript:show(2);">Instance 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>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#getAbtBlockHeight--">getAbtBlockHeight</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#getOuterBlockHeight--">getOuterBlockHeight</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>org.apache.hadoop.fs.Path</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#getPcaMeanPath--">getPcaMeanPath</a></span>()</code>
<div class="block">Optional.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#getQ--">getQ</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="http://mahout.apache.org/mahout-math/apidocs/org/apache/mahout/math/Vector.html?is-external=true" title="class or interface in org.apache.mahout.math">Vector</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#getSingularValues--">getSingularValues</a></span>()</code>
<div class="block">This contains k+p singular values resulted from the solver run.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#getuHalfSigmaPath--">getuHalfSigmaPath</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#getUPath--">getUPath</a></span>()</code>
<div class="block">returns U path (if computation were requested and successful).</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#getuSigmaPath--">getuSigmaPath</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#getvHalfSigmaPath--">getvHalfSigmaPath</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#getVPath--">getVPath</a></span>()</code>
<div class="block">return V path ( if computation was requested and successful ) .</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#getvSigmaPath--">getvSigmaPath</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#isBroadcast--">isBroadcast</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#isOverwrite--">isOverwrite</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#run--">run</a></span>()</code>
<div class="block">run all SSVD jobs.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#setAbtBlockHeight-int-">setAbtBlockHeight</a></span>(int&nbsp;abtBlockHeight)</code>
<div class="block">the block height of Y_i during power iterations.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#setBroadcast-boolean-">setBroadcast</a></span>(boolean&nbsp;broadcast)</code>
<div class="block">If this property is true, use DestributedCache mechanism to broadcast some
stuff around.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#setComputeU-boolean-">setComputeU</a></span>(boolean&nbsp;val)</code>
<div class="block">The setting controlling whether to compute U matrix of low rank SSVD.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#setComputeV-boolean-">setComputeV</a></span>(boolean&nbsp;val)</code>
<div class="block">Setting controlling whether to compute V matrix of low-rank SSVD.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#setcUHalfSigma-boolean-">setcUHalfSigma</a></span>(boolean&nbsp;cUHat)</code>&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#setcUSigma-boolean-">setcUSigma</a></span>(boolean&nbsp;cUSigma)</code>&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#setcVHalfSigma-boolean-">setcVHalfSigma</a></span>(boolean&nbsp;cVHat)</code>&nbsp;</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#setcVSigma-boolean-">setcVSigma</a></span>(boolean&nbsp;cVSigma)</code>&nbsp;</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#setMinSplitSize-int-">setMinSplitSize</a></span>(int&nbsp;size)</code>
<div class="block">Sometimes, if requested A blocks become larger than a split, we may need to
use that to ensure at least k+p rows of A get into a split.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#setOuterBlockHeight-int-">setOuterBlockHeight</a></span>(int&nbsp;outerBlockHeight)</code>
<div class="block">The height of outer blocks during Q'A multiplication.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#setOverwrite-boolean-">setOverwrite</a></span>(boolean&nbsp;overwrite)</code>
<div class="block">if true, driver to clean output folder first if exists.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#setPcaMeanPath-org.apache.hadoop.fs.Path-">setPcaMeanPath</a></span>(org.apache.hadoop.fs.Path&nbsp;pcaMeanPath)</code>&nbsp;</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html#setQ-int-">setQ</a></span>(int&nbsp;q)</code>
<div class="block">sets q, amount of additional power iterations to increase precision
(0..2!).</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">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="SSVDSolver-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.Path:A-org.apache.hadoop.fs.Path-int-int-int-int-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SSVDSolver</h4>
<pre>public&nbsp;SSVDSolver(org.apache.hadoop.conf.Configuration&nbsp;conf,
org.apache.hadoop.fs.Path[]&nbsp;inputPath,
org.apache.hadoop.fs.Path&nbsp;outputPath,
int&nbsp;ablockRows,
int&nbsp;k,
int&nbsp;p,
int&nbsp;reduceTasks)</pre>
<div class="block">create new SSVD solver. Required parameters are passed to constructor to
ensure they are set. Optional parameters can be set using setters .
<p/></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conf</code> - hadoop configuration</dd>
<dd><code>inputPath</code> - Input path (should be compatible with DistributedRowMatrix as of
the time of this writing).</dd>
<dd><code>outputPath</code> - Output path containing U, V and singular values vector files.</dd>
<dd><code>ablockRows</code> - The vertical hight of a q-block (bigger value require more memory
in mappers+ perhaps larger <code>minSplitSize</code> values</dd>
<dd><code>k</code> - desired rank</dd>
<dd><code>p</code> - SSVD oversampling parameter</dd>
<dd><code>reduceTasks</code> - Number of reduce tasks (where applicable)</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getQ--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQ</h4>
<pre>public&nbsp;int&nbsp;getQ()</pre>
</li>
</ul>
<a name="setQ-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setQ</h4>
<pre>public&nbsp;void&nbsp;setQ(int&nbsp;q)</pre>
<div class="block">sets q, amount of additional power iterations to increase precision
(0..2!). Defaults to 0.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>q</code> - </dd>
</dl>
</li>
</ul>
<a name="setComputeU-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setComputeU</h4>
<pre>public&nbsp;void&nbsp;setComputeU(boolean&nbsp;val)</pre>
<div class="block">The setting controlling whether to compute U matrix of low rank SSVD.
Default true.</div>
</li>
</ul>
<a name="setComputeV-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setComputeV</h4>
<pre>public&nbsp;void&nbsp;setComputeV(boolean&nbsp;val)</pre>
<div class="block">Setting controlling whether to compute V matrix of low-rank SSVD.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>val</code> - true if we want to output V matrix. Default is true.</dd>
</dl>
</li>
</ul>
<a name="setcUHalfSigma-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setcUHalfSigma</h4>
<pre>public&nbsp;void&nbsp;setcUHalfSigma(boolean&nbsp;cUHat)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cUHat</code> - whether produce U*Sigma^0.5 as well (default false)</dd>
</dl>
</li>
</ul>
<a name="setcVHalfSigma-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setcVHalfSigma</h4>
<pre>public&nbsp;void&nbsp;setcVHalfSigma(boolean&nbsp;cVHat)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cVHat</code> - whether produce V*Sigma^0.5 as well (default false)</dd>
</dl>
</li>
</ul>
<a name="setcUSigma-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setcUSigma</h4>
<pre>public&nbsp;void&nbsp;setcUSigma(boolean&nbsp;cUSigma)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cUSigma</code> - whether produce U*Sigma output as well (default false)</dd>
</dl>
</li>
</ul>
<a name="setcVSigma-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setcVSigma</h4>
<pre>public&nbsp;void&nbsp;setcVSigma(boolean&nbsp;cVSigma)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cVSigma</code> - whether produce V*Sigma output as well (default false)</dd>
</dl>
</li>
</ul>
<a name="setMinSplitSize-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMinSplitSize</h4>
<pre>public&nbsp;void&nbsp;setMinSplitSize(int&nbsp;size)</pre>
<div class="block">Sometimes, if requested A blocks become larger than a split, we may need to
use that to ensure at least k+p rows of A get into a split. This is
requirement necessary to obtain orthonormalized Q blocks of SSVD.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>size</code> - the minimum split size to use</dd>
</dl>
</li>
</ul>
<a name="getSingularValues--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSingularValues</h4>
<pre>public&nbsp;<a href="http://mahout.apache.org/mahout-math/apidocs/org/apache/mahout/math/Vector.html?is-external=true" title="class or interface in org.apache.mahout.math">Vector</a>&nbsp;getSingularValues()</pre>
<div class="block">This contains k+p singular values resulted from the solver run.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>singlular values (largest to smallest)</dd>
</dl>
</li>
</ul>
<a name="getUPath--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUPath</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getUPath()</pre>
<div class="block">returns U path (if computation were requested and successful).</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>U output hdfs path, or null if computation was not completed for
whatever reason.</dd>
</dl>
</li>
</ul>
<a name="getVPath--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVPath</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getVPath()</pre>
<div class="block">return V path ( if computation was requested and successful ) .</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>V output hdfs path, or null if computation was not completed for
whatever reason.</dd>
</dl>
</li>
</ul>
<a name="getuSigmaPath--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getuSigmaPath</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getuSigmaPath()</pre>
</li>
</ul>
<a name="getuHalfSigmaPath--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getuHalfSigmaPath</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getuHalfSigmaPath()</pre>
</li>
</ul>
<a name="getvSigmaPath--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getvSigmaPath</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getvSigmaPath()</pre>
</li>
</ul>
<a name="getvHalfSigmaPath--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getvHalfSigmaPath</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getvHalfSigmaPath()</pre>
</li>
</ul>
<a name="isOverwrite--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isOverwrite</h4>
<pre>public&nbsp;boolean&nbsp;isOverwrite()</pre>
</li>
</ul>
<a name="setOverwrite-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setOverwrite</h4>
<pre>public&nbsp;void&nbsp;setOverwrite(boolean&nbsp;overwrite)</pre>
<div class="block">if true, driver to clean output folder first if exists.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>overwrite</code> - </dd>
</dl>
</li>
</ul>
<a name="getOuterBlockHeight--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOuterBlockHeight</h4>
<pre>public&nbsp;int&nbsp;getOuterBlockHeight()</pre>
</li>
</ul>
<a name="setOuterBlockHeight-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setOuterBlockHeight</h4>
<pre>public&nbsp;void&nbsp;setOuterBlockHeight(int&nbsp;outerBlockHeight)</pre>
<div class="block">The height of outer blocks during Q'A multiplication. Higher values allow
to produce less keys for combining and shuffle and sort therefore somewhat
improving running time; but require larger blocks to be formed in RAM (so
setting this too high can lead to OOM).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>outerBlockHeight</code> - </dd>
</dl>
</li>
</ul>
<a name="getAbtBlockHeight--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAbtBlockHeight</h4>
<pre>public&nbsp;int&nbsp;getAbtBlockHeight()</pre>
</li>
</ul>
<a name="setAbtBlockHeight-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAbtBlockHeight</h4>
<pre>public&nbsp;void&nbsp;setAbtBlockHeight(int&nbsp;abtBlockHeight)</pre>
<div class="block">the block height of Y_i during power iterations. It is probably important
to set it higher than default 200,000 for extremely sparse inputs and when
more ram is available. y_i block height and ABt job would occupy approx.
abtBlockHeight x (k+p) x sizeof (double) (as dense).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>abtBlockHeight</code> - </dd>
</dl>
</li>
</ul>
<a name="isBroadcast--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isBroadcast</h4>
<pre>public&nbsp;boolean&nbsp;isBroadcast()</pre>
</li>
</ul>
<a name="setBroadcast-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setBroadcast</h4>
<pre>public&nbsp;void&nbsp;setBroadcast(boolean&nbsp;broadcast)</pre>
<div class="block">If this property is true, use DestributedCache mechanism to broadcast some
stuff around. May improve efficiency. Default is false.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>broadcast</code> - </dd>
</dl>
</li>
</ul>
<a name="getPcaMeanPath--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPcaMeanPath</h4>
<pre>public&nbsp;org.apache.hadoop.fs.Path&nbsp;getPcaMeanPath()</pre>
<div class="block">Optional. Single-vector file path for a vector (aka xi in MAHOUT-817
working notes) to be subtracted from each row of input.
<p/>
<p/>
Brute force approach would force would turn input into a dense input, which
is often not very desirable. By supplying this offset to SSVD solver, we
can avoid most of that overhead due to increased input density.
<p/>
<p/>
The vector size for this offest is n (width of A input). In PCA and R this
is known as "column means", but in this case it can be any offset of row
vectors of course to propagate into SSVD solution.
<p/></div>
</li>
</ul>
<a name="setPcaMeanPath-org.apache.hadoop.fs.Path-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPcaMeanPath</h4>
<pre>public&nbsp;void&nbsp;setPcaMeanPath(org.apache.hadoop.fs.Path&nbsp;pcaMeanPath)</pre>
</li>
</ul>
<a name="run--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>run</h4>
<pre>public&nbsp;void&nbsp;run()
throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">run all SSVD jobs.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if I/O condition occurs.</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/SSVDSolver.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/math/hadoop/stochasticsvd/SSVDHelper.html" title="class in org.apache.mahout.math.hadoop.stochasticsvd"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/mahout/math/hadoop/stochasticsvd/UJob.html" title="class in org.apache.mahout.math.hadoop.stochasticsvd"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/mahout/math/hadoop/stochasticsvd/SSVDSolver.html" target="_top">Frames</a></li>
<li><a href="SSVDSolver.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><a href="#constructor.summary">Constr</a>&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><a href="#constructor.detail">Constr</a>&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>