You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@madlib.apache.org by xt...@apache.org on 2016/04/07 23:47:28 UTC

[25/51] [abbrv] [partial] incubator-madlib-site git commit: Update doc for 1.9 release

http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/c506dd05/docs/latest/group__grp__recursive__partitioning.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__recursive__partitioning.html b/docs/latest/group__grp__recursive__partitioning.html
deleted file mode 100644
index 1ad86f0..0000000
--- a/docs/latest/group__grp__recursive__partitioning.html
+++ /dev/null
@@ -1,141 +0,0 @@
-<!-- HTML header for doxygen 1.8.4-->
-<!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.10"/>
-<meta name="keywords" content="madlib,postgres,greenplum,machine learning,data mining,deep learning,ensemble methods,data science,market basket analysis,affinity analysis,pca,lda,regression,elastic net,huber white,proportional hazards,k-means,latent dirichlet allocation,bayes,support vector machines,svm"/>
-<title>MADlib: Tree Methods</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="navtree.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtreedata.js"></script>
-<script type="text/javascript" src="navtree.js"></script>
-<script type="text/javascript">
-  $(document).ready(initResizable);
-  $(window).load(resizeHeight);
-</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>
-<script type="text/x-mathjax-config">
-  MathJax.Hub.Config({
-    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
-    jax: ["input/TeX","output/HTML-CSS"],
-});
-</script><script src="../mathjax/MathJax.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-<link href="madlib_extra.css" rel="stylesheet" type="text/css"/>
-<!-- google analytics -->
-<script>
-  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-  ga('create', 'UA-45382226-1', 'auto');
-  ga('send', 'pageview');
-</script>
-</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="projectlogo"><a href="http://madlib.incubator.apache.org"><img alt="Logo" src="madlib.png" height="50" style="padding-left:0.5em;" border="0"/ ></a></td>
-  <td style="padding-left: 0.5em;">
-   <div id="projectname">
-   <span id="projectnumber">1.7dev</span>
-   </div>
-   <div id="projectbrief">User Documentation</div>
-  </td>
-   <td>        <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>
-</td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
-</div><!-- top -->
-<div id="side-nav" class="ui-resizable side-nav-resizable">
-  <div id="nav-tree">
-    <div id="nav-tree-contents">
-      <div id="nav-sync" class="sync"></div>
-    </div>
-  </div>
-  <div id="splitbar" style="-moz-user-select:none;" 
-       class="ui-resizable-handle">
-  </div>
-</div>
-<script type="text/javascript">
-$(document).ready(function(){initNavTree('group__grp__recursive__partitioning.html','');});
-</script>
-<div id="doc-content">
-<!-- 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 class="header">
-  <div class="summary">
-<a href="#groups">Modules</a>  </div>
-  <div class="headertitle">
-<div class="title">Tree Methods</div>  </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
-Modules</h2></td></tr>
-<tr class="memitem:group__grp__decision__tree"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__grp__decision__tree.html">Decision Tree</a></td></tr>
-<tr class="memdesc:group__grp__decision__tree"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decision Trees. Decision trees use a tree-based predictive model to predict the value of a target variable based on several input variables. <br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:group__grp__random__forest"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__grp__random__forest.html">Random Forest</a></td></tr>
-<tr class="memdesc:group__grp__random__forest"><td class="mdescLeft">&#160;</td><td class="mdescRight">Random forests are an ensemble learning method for classification (and regression) that operate by constructing a multitude of decision trees at training time and outputting the class that is the mode of the classes output by individual trees. <br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>A collection of recursive partitioning (tree) methods. </p>
-</div><!-- contents -->
-</div><!-- doc-content -->
-<!-- start footer part -->
-<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
-  <ul>
-    <li class="footer">Generated on Mon Jul 27 2015 20:27:22 for MADlib by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.10 </li>
-  </ul>
-</div>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/c506dd05/docs/latest/group__grp__recursive__partitioning.js
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__recursive__partitioning.js b/docs/latest/group__grp__recursive__partitioning.js
deleted file mode 100644
index 076622e..0000000
--- a/docs/latest/group__grp__recursive__partitioning.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var group__grp__recursive__partitioning =
-[
-    [ "Decision Tree", "group__grp__decision__tree.html", null ],
-    [ "Random Forest", "group__grp__random__forest.html", null ]
-];
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/c506dd05/docs/latest/group__grp__regml.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__regml.html b/docs/latest/group__grp__regml.html
index 19ca454..5d00bde 100644
--- a/docs/latest/group__grp__regml.html
+++ b/docs/latest/group__grp__regml.html
@@ -24,14 +24,8 @@
 <script type="text/javascript">
   $(document).ready(function() { init_search(); });
 </script>
-<script type="text/x-mathjax-config">
-  MathJax.Hub.Config({
-    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
-    jax: ["input/TeX","output/HTML-CSS"],
-});
-</script><script src="../mathjax/MathJax.js"></script>
 <!-- hack in the navigation tree -->
-<script type="text/javascript" src="navtree_hack.js"></script>
+<script type="text/javascript" src="eigen_navtree_hacks.js"></script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="madlib_extra.css" rel="stylesheet" type="text/css"/>
 <!-- google analytics -->
@@ -40,7 +34,7 @@
   (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
   m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
   })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-  ga('create', 'UA-45382226-1', 'auto');
+  ga('create', 'UA-45382226-1', 'madlib.net');
   ga('send', 'pageview');
 </script>
 </head>
@@ -50,10 +44,10 @@
 <table cellspacing="0" cellpadding="0">
  <tbody>
  <tr style="height: 56px;">
-  <td id="projectlogo"><a href="http://madlib.incubator.apache.org"><img alt="Logo" src="madlib.png" height="50" style="padding-left:0.5em;" border="0"/ ></a></td>
+  <td id="projectlogo"><a href="http://madlib.net"><img alt="Logo" src="madlib.png" height="50" style="padding-left:0.5em;" border="0"/ ></a></td>
   <td style="padding-left: 0.5em;">
    <div id="projectname">
-   <span id="projectnumber">1.8</span>
+   <span id="projectnumber">1.9</span>
    </div>
    <div id="projectbrief">User Documentation for MADlib</div>
   </td>
@@ -158,7 +152,7 @@ Modules</h2></td></tr>
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated on Mon Jul 27 2015 20:37:45 for MADlib by
+    <li class="footer">Generated on Thu Apr 7 2016 14:24:10 for MADlib by
     <a href="http://www.doxygen.org/index.html">
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.10 </li>
   </ul>

http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/c506dd05/docs/latest/group__grp__rf.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__rf.html b/docs/latest/group__grp__rf.html
index 12dba0e..5a5991d 100644
--- a/docs/latest/group__grp__rf.html
+++ b/docs/latest/group__grp__rf.html
@@ -24,14 +24,8 @@
 <script type="text/javascript">
   $(document).ready(function() { init_search(); });
 </script>
-<script type="text/x-mathjax-config">
-  MathJax.Hub.Config({
-    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
-    jax: ["input/TeX","output/HTML-CSS"],
-});
-</script><script src="../mathjax/MathJax.js"></script>
 <!-- hack in the navigation tree -->
-<script type="text/javascript" src="navtree_hack.js"></script>
+<script type="text/javascript" src="eigen_navtree_hacks.js"></script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="madlib_extra.css" rel="stylesheet" type="text/css"/>
 <!-- google analytics -->
@@ -40,7 +34,7 @@
   (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
   m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
   })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-  ga('create', 'UA-45382226-1', 'auto');
+  ga('create', 'UA-45382226-1', 'madlib.net');
   ga('send', 'pageview');
 </script>
 </head>
@@ -50,10 +44,10 @@
 <table cellspacing="0" cellpadding="0">
  <tbody>
  <tr style="height: 56px;">
-  <td id="projectlogo"><a href="http://madlib.incubator.apache.org"><img alt="Logo" src="madlib.png" height="50" style="padding-left:0.5em;" border="0"/ ></a></td>
+  <td id="projectlogo"><a href="http://madlib.net"><img alt="Logo" src="madlib.png" height="50" style="padding-left:0.5em;" border="0"/ ></a></td>
   <td style="padding-left: 0.5em;">
    <div id="projectname">
-   <span id="projectnumber">1.8</span>
+   <span id="projectnumber">1.9</span>
    </div>
    <div id="projectbrief">User Documentation for MADlib</div>
   </td>
@@ -115,427 +109,12 @@ $(document).ready(function(){initNavTree('group__grp__rf.html','');});
 <div class="title">Random Forest (old implementation)<div class="ingroups"><a class="el" href="group__grp__deprecated.html">Deprecated Modules</a></div></div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="toc"><b>Contents</b> </p><ul>
-<li>
-<a href="#train">Training Function</a> </li>
-<li>
-<a href="#classify">Classification Function</a> </li>
-<li>
-<a href="#score">Scoring Function</a> </li>
-<li>
-<a href="#display">Display Function</a> </li>
-<li>
-<a href="#clean">Cleaning Function</a> </li>
-<li>
-<a href="#examples">Examples</a> </li>
-<li>
-<a href="#literature">Literature</a> </li>
-<li>
-<a href="#related">Related Topics</a> </li>
-</ul>
-</div><dl class="section warning"><dt>Warning</dt><dd><em> This is an old implementation of random forests. For a newer implementation, please see <a class="el" href="group__grp__random__forest.html">Random Forest</a></em></dd></dl>
-<p>A random forest (RF) is an ensemble classifier that consists of many decision trees and outputs the class that is voted by the majority of the individual trees.</p>
-<p>It has the following well-known advantages:</p><ul>
-<li>Overall, RF produces better accuracy.</li>
-<li>It can be very efficient for large data sets. Trees of an RF can be trained in parallel.</li>
-<li>It can handle thousands of input attributes without attribute deletion.</li>
-</ul>
-<p>This module provides an implementation of the random forest algorithm described in [1].</p>
-<p>The implementation supports:</p><ul>
-<li>Building random forests</li>
-<li>Multiple split critera, including: . Information Gain . Gini Coefficient . Gain Ratio</li>
-<li>Random forest Classification/Scoring</li>
-<li>Random forest Display</li>
-<li>Continuous and Discrete features</li>
-<li>Equal frequency discretization for continuous features</li>
-<li>Missing value handling</li>
-<li>Sampling with replacement</li>
-</ul>
-<dl class="section user"><dt>Input</dt><dd></dd></dl>
-<p>The <b>data to classify</b> is expected to be of the same form as <b>training data</b>, except that it does not need a class column.</p>
-<p><a class="anchor" id="train"></a></p><dl class="section user"><dt>Training Function</dt><dd></dd></dl>
-<p>Run the training algorithm on the source data. </p><pre class="syntax">
-rf_train( split_criterion,
-          training_table_name,
-          result_rf_table_name,
-          num_trees,
-          features_per_node,
-          sampling_percentage,
-          continuous_feature_names,
-          feature_col_names,
-          id_col_name,
-          class_col_name,
-          how2handle_missing_value,
-          max_tree_depth,
-          node_prune_threshold,
-          node_split_threshold,
-          verbosity
-        )
-</pre><p> <b>Arguments</b> </p><dl class="arglist">
-<dt>split_criterion </dt>
-<dd><p class="startdd">The name of the split criterion that should be used for tree construction. The valid values are ‘infogain’, ‘gainratio’, and ‘gini’. It can't be NULL. Information gain(infogain) and gini index(gini) are biased toward multivalued attributes. Gain ratio(gainratio) adjusts for this bias. However, it tends to prefer unbalanced splits in which one partition is much smaller than the others.</p>
-<p class="enddd"></p>
-</dd>
-<dt>training_table_name </dt>
-<dd><p class="startdd">The name of the table/view with the training data. It can't be NULL and must exist.</p>
-<p>The <b>training data</b> is expected to be of the following form: </p><pre>{TABLE|VIEW} <em>trainingSource</em> (
-    ...
-    <em>id</em> INT|BIGINT,
-    <em>feature1</em> SUPPORTED_DATA_TYPE,
-    <em>feature2</em> SUPPORTED_DATA_TYPE,
-    <em>feature3</em> SUPPORTED_DATA_TYPE,
-    ....................
-    <em>featureN</em> SUPPORTED_DATA_TYPE,
-    <em>class</em>    SUPPORTED_DATA_TYPE,
-    ...
-)</pre><p>SUPPORTED_DATA_TYPE can be any of the following: SMALLINT, INT, BIGINT, FLOAT8, REAL, DECIMAL, INET, CIDR, MACADDR, BOOLEAN, CHAR, VARCHAR, TEXT, "char", DATE, TIME, TIMETZ, TIMESTAMP, TIMESTAMPTZ, and INTERVAL. </p>
-<p class="enddd"></p>
-</dd>
-<dt>result_rf_table_name </dt>
-<dd><p class="startdd">The name of the table where the resulting trees are stored. It can not be NULL and must not exist.</p>
-<p class="enddd">The output table stores an abstract object (representing the model) used for further classification. The table has the following columns: </p><table  class="output">
-<tr>
-<th>id</th><td></td></tr>
-<tr>
-<th>tree_location</th><td></td></tr>
-<tr>
-<th>feature</th><td></td></tr>
-<tr>
-<th>probability</th><td></td></tr>
-<tr>
-<th>ebp_coeff</th><td></td></tr>
-<tr>
-<th>maxclass</th><td></td></tr>
-<tr>
-<th>split_gain</th><td></td></tr>
-<tr>
-<th>live</th><td></td></tr>
-<tr>
-<th>cat_size</th><td></td></tr>
-<tr>
-<th>parent_id</th><td></td></tr>
-<tr>
-<th>lmc_nid</th><td></td></tr>
-<tr>
-<th>lmc_fval</th><td></td></tr>
-<tr>
-<th>is_feature_cont</th><td></td></tr>
-<tr>
-<th>split_value</th><td></td></tr>
-<tr>
-<th>tid</th><td></td></tr>
-<tr>
-<th>dp_ids </th><td></td></tr>
-</table>
-</dd>
-<dt>num_trees </dt>
-<dd>The number of trees to be trained. If it's NULL, 10 will be used.  </dd>
-<dt>features_per_node </dt>
-<dd>The number of features to be considered when finding a best split. If it's NULL, sqrt(p), where p is the number of features, will be used. </dd>
-<dt>sampling_percentage </dt>
-<dd>The percentage of records sampled to train a tree. If it's NULL, 0.632 bootstrap will be used continuous_feature_names A comma-separated list of the names of the features whose values are continuous. NULL means there are no continuous features. </dd>
-<dt>feature_col_names </dt>
-<dd>A comma-separated list of names of the table columns, each of which defines a feature. NULL means all the columns except the ID and Class columns will be treated as features.  </dd>
-<dt>id_col_name </dt>
-<dd>The name of the column containing id of each record. It can't be NULL. </dd>
-<dt>class_col_name </dt>
-<dd>The name of the column containing correct class of each record. It can't be NULL. </dd>
-<dt>how2handle_missing_value </dt>
-<dd>The way to handle missing value. The valid values are 'explicit' and 'ignore'. It can't be NULL. </dd>
-<dt>max_tree_depth</dt>
-<dd>The maximum tree depth. It can't be NULL. </dd>
-<dt>node_prune_threshold </dt>
-<dd>The minimum percentage of the number of records required in a child node. It can't be NULL. The range of it is in [0.0, 1.0]. This threshold only applies to the non-root nodes. Therefore, if the percentage(p) between the sampled training set size of a tree (the number of rows) and the total training set size is less than or equal to the value of this parameter, then the tree only has one node (the root node); if its value is 1, then the percentage p is less than or equal to 1 definitely. Therefore, the tree only has one node (the root node). if its value is 0, then no nodes will be pruned by this parameter. </dd>
-<dt>node_split_threshold </dt>
-<dd>The minimum percentage of the number of records required in a node in order for a further split to be possible. It can't be NULL. The range of it is in [0.0, 1.0]. If the percentage(p) between the sampled training set size of a tree (the number of rows) and the total training set size is less than the value of this parameter, then the root node will be a leaf one. Therefore, the trained tree only has one node. If the percentage p is equal to the value of this parameter, then the trained tree only has two levels, since only the root node will grow. (the root node); if its value is 0, then trees can grow extensively. </dd>
-<dt>verbosity </dt>
-<dd>Greater than 0 means this function runs in verbose mode. It can't be NULL. </dd>
-</dl>
-<p><a class="anchor" id="classify"></a></p><dl class="section user"><dt>Classification Function</dt><dd></dd></dl>
-<p>The classification function creates the result_table with the classification results. </p><pre class="syntax">
-rf_classify( rf_table_name,
-             classification_table_name,
-             result_table_name)
-</pre><p><a class="anchor" id="score"></a></p><dl class="section user"><dt>Scoring Function</dt><dd></dd></dl>
-<p>The scoring function gives a ratio of correctly classified items in the validation data set. </p><pre class="syntax">
-rf_score( rf_table_name,
-          validation_table_name,
-          verbosity)
-</pre><p><a class="anchor" id="display"></a></p><dl class="section user"><dt>Display Function</dt><dd></dd></dl>
-<p>The display tree function displays the trained trees in a human-readable format. </p><pre class="syntax">
-rf_display( rf_table_name
-          )
-</pre><p><a class="anchor" id="clean"></a></p><dl class="section user"><dt>Cleaning Function</dt><dd></dd></dl>
-<p>The clean tree function cleans up the learned model and metadata. </p><pre class="syntax">
-rf_clean( rf_table_name
-        )
-</pre><p><a class="anchor" id="examples"></a></p><dl class="section user"><dt>Examples</dt><dd></dd></dl>
-<ol type="1">
-<li>Prepare an input table. <pre class="example">
-SELECT * FROM golf_data ORDER BY id;
-</pre> Result: <pre class="result">
- id | outlook  | temperature | humidity | windy  |    class
-&#160;---+----------+-------------+----------+--------+--------------
-  1 | sunny    |          85 |       85 |  false |  Do not Play
-  2 | sunny    |          80 |       90 |  true  |  Do not Play
-  3 | overcast |          83 |       78 |  false |  Play
-  4 | rain     |          70 |       96 |  false |  Play
-  5 | rain     |          68 |       80 |  false |  Play
-  6 | rain     |          65 |       70 |  true  |  Do not Play
-  7 | overcast |          64 |       65 |  true  |  Play
-  8 | sunny    |          72 |       95 |  false |  Do not Play
-  9 | sunny    |          69 |       70 |  false |  Play
- 10 | rain     |          75 |       80 |  false |  Play
- 11 | sunny    |          75 |       70 |  true  |  Play
- 12 | overcast |          72 |       90 |  true  |  Play
- 13 | overcast |          81 |       75 |  false |  Play
- 14 | rain     |          71 |       80 |  true  |  Do not Play
-(14 rows)
-</pre></li>
-<li>Train the random forest. <pre class="example">
-SELECT * FROM madlib.rf_clean('trained_tree_infogain');
-SELECT * FROM madlib.rf_train(
-    'infogain',
-    'golf_data',
-    'trained_tree_infogain',
-    10,
-    NULL,
-    0.632,
-    'temperature,humidity',
-    'outlook,temperature,humidity,windy',
-    'id',
-    'class',
-    'explicit',
-    10,
-    0.0,
-    0.0,
-    0);
-</pre> Result: <pre class="result">
- training_time  | num_of_samples | num_trees | features_per_node | num_tree_nodes | max_tree_depth | split_criterion |    acs_time     |    acc_time     |    olap_time    |   update_time   |    best_time
-&#160;---------------+--------------+-----------+-------------------+----------------+----------------+-----------------+-----------------+-----------------+-----------------+-----------------+-----------------
- 00:00:03.60498 |           14 |        10 |                 3 |             71 |              6 | infogain        | 00:00:00.154991 | 00:00:00.404411 | 00:00:00.736876 | 00:00:00.374084 | 00:00:01.722658
-(1 row)
-</pre></li>
-<li>Check the table records that hold the random forest. <pre class="example">
-SELECT * FROM trained_tree_infogain ORDER BY tid, id;
-</pre> <pre class="result">
- id | tree_location | feature |    probability    | ebp_coeff | maxclass |     split_gain     | live | cat_size | parent_id | lmc_nid | lmc_fval | is_feature_cont | split_value | tid | dp_ids
-&#160;---+---------------+---------+-------------------+-----------+----------+--------------------+------+----------+-----------+---------+----------+-----------------+-------------+-----+--------
-  1 | {0}           |       3 | 0.777777777777778 |         1 |        2 |  0.197530864197531 |    0 |        9 |         0 |      24 |        1 | f               |             |   1 |
- 24 | {0,1}         |       4 |                 1 |         1 |        2 |                  0 |    0 |        4 |         1 |         |          | f               |             |   1 | {3}
- 25 | {0,2}         |       4 |                 1 |         1 |        2 |                  0 |    0 |        2 |         1 |         |          | f               |             |   1 | {3}
- 26 | {0,3}         |       2 | 0.666666666666667 |         1 |        1 |  0.444444444444444 |    0 |        3 |         1 |      42 |        1 | t               |          70 |   1 | {3}
- 42 | {0,3,1}       |       4 |                 1 |         1 |        2 |                  0 |    0 |        1 |        26 |         |          | f               |             |   1 |
- 43 | {0,3,2}       |       4 |                 1 |         1 |        1 |                  0 |    0 |        2 |        26 |         |          | f               |             |   1 |
-  2 | {0}           |       2 | 0.555555555555556 |         1 |        1 |   0.17636684303351 |    0 |        9 |         0 |      11 |        1 | t               |          65 |   2 |
- 11 | {0,1}         |       4 |                 1 |         1 |        2 |                  0 |    0 |        2 |         2 |         |          | f               |             |   2 |
- 12 | {0,2}         |       4 | 0.714285714285714 |         1 |        1 |  0.217687074829932 |    0 |        7 |         2 |      44 |        1 | f               |             |   2 |
- 44 | {0,2,1}       |       3 | 0.666666666666667 |         1 |        2 |  0.444444444444444 |    0 |        3 |        12 |      57 |        1 | f               |             |   2 | {4}
- 45 | {0,2,2}       |       3 |                 1 |         1 |        1 |                  0 |    0 |        4 |        12 |         |          | f               |             |   2 | {4}
- 57 | {0,2,1,1}     |       2 |                 1 |         1 |        2 |                  0 |    0 |        1 |        44 |         |          | t               |          78 |   2 | {4,3}
- 58 | {0,2,1,2}     |       2 |                 1 |         1 |        2 |                  0 |    0 |        1 |        44 |         |          | t               |          96 |   2 | {4,3}
- 59 | {0,2,1,3}     |       2 |                 1 |         1 |        1 |                  0 |    0 |        1 |        44 |         |          | t               |          85 |   2 | {4,3}
-  3 | {0}           |       2 | 0.777777777777778 |         1 |        2 |  0.197530864197531 |    0 |        9 |         0 |      27 |        1 | t               |          80 |   3 |
- 27 | {0,1}         |       4 |                 1 |         1 |        2 |                  0 |    0 |        6 |         3 |         |          | f               |             |   3 |
- 28 | {0,2}         |       2 | 0.666666666666667 |         1 |        1 |  0.444444444444444 |    0 |        3 |         3 |      46 |        1 | t               |          90 |   3 |
- 46 | {0,2,1}       |       4 |                 1 |         1 |        1 |                  0 |    0 |        2 |        28 |         |          | f               |             |   3 |
- 47 | {0,2,2}       |       4 |                 1 |         1 |        2 |                  0 |    0 |        1 |        28 |         |          | f               |             |   3 |
-  4 | {0}           |       4 | 0.888888888888889 |         1 |        2 | 0.0493827160493827 |    0 |        9 |         0 |      13 |        1 | f               |             |   4 |
- 13 | {0,1}         |       3 |                 1 |         1 |        2 |                  0 |    0 |        6 |         4 |         |          | f               |             |   4 | {4}
- 14 | {0,2}         |       3 | 0.666666666666667 |         1 |        2 |  0.444444444444444 |    0 |        3 |         4 |      48 |        1 | f               |             |   4 | {4}
- 48 | {0,2,1}       |       2 |                 1 |         1 |        2 |                  0 |    0 |        2 |        14 |         |          | t               |          90 |   4 | {4,3}
- 49 | {0,2,2}       |       2 |                 1 |         1 |        1 |                  0 |    0 |        1 |        14 |         |          | t               |          80 |   4 | {4,3}
-  5 | {0}           |       2 | 0.888888888888889 |         1 |        2 |  0.197530864197531 |    0 |        9 |         0 |      29 |        1 | t               |          90 |   5 |
- 29 | {0,1}         |       4 |                 1 |         1 |        2 |                  0 |    0 |        8 |         5 |         |          | f               |             |   5 |
- 30 | {0,2}         |       3 |                 1 |         1 |        1 |                  0 |    0 |        1 |         5 |         |          | f               |             |   5 |
-  6 | {0}           |       3 | 0.555555555555556 |         1 |        2 |  0.345679012345679 |    0 |        9 |         0 |      15 |        1 | f               |             |   6 |
- 15 | {0,1}         |       4 |                 1 |         1 |        2 |                  0 |    0 |        3 |         6 |         |          | f               |             |   6 | {3}
- 16 | {0,2}         |       4 | 0.666666666666667 |         1 |        2 |  0.444444444444444 |    0 |        3 |         6 |      51 |        1 | f               |             |   6 | {3}
- 17 | {0,3}         |       4 |                 1 |         1 |        1 |                  0 |    0 |        3 |         6 |         |          | f               |             |   6 | {3}
- 51 | {0,2,1}       |       2 |                 1 |         1 |        2 |                  0 |    0 |        2 |        16 |         |          | t               |          96 |   6 | {3,4}
- 52 | {0,2,2}       |       2 |                 1 |         1 |        1 |                  0 |    0 |        1 |        16 |         |          | t               |          70 |   6 | {3,4}
-  7 | {0}           |       4 | 0.666666666666667 |         1 |        2 |  0.253968253968254 |    0 |        9 |         0 |      31 |        1 | f               |             |   7 |
- 31 | {0,1}         |       2 | 0.857142857142857 |         1 |        2 |  0.102040816326531 |    0 |        7 |         7 |      36 |        1 | t               |          80 |   7 | {4}
- 32 | {0,2}         |       3 |                 1 |         1 |        1 |                  0 |    0 |        2 |         7 |         |          | f               |             |   7 | {4}
- 36 | {0,1,1}       |       4 |                 1 |         1 |        2 |                  0 |    0 |        5 |        31 |         |          | f               |             |   7 |
- 37 | {0,1,2}       |       2 |               0.5 |         1 |        2 |                0.5 |    0 |        2 |        31 |      60 |        1 | t               |          95 |   7 |
- 60 | {0,1,2,1}     |       4 |                 1 |         1 |        1 |                  0 |    0 |        1 |        37 |         |          | f               |             |   7 |
- 61 | {0,1,2,2}     |       4 |                 1 |         1 |        2 |                  0 |    0 |        1 |        37 |         |          | f               |             |   7 |
-  8 | {0}           |       3 | 0.777777777777778 |         1 |        2 | 0.0864197530864197 |    0 |        9 |         0 |      18 |        1 | f               |             |   8 |
- 18 | {0,1}         |       4 |                 1 |         1 |        2 |                  0 |    0 |        4 |         8 |         |          | f               |             |   8 | {3}
- 19 | {0,2}         |       4 | 0.666666666666667 |         1 |        2 |  0.444444444444444 |    0 |        3 |         8 |      38 |        1 | f               |             |   8 | {3}
- 20 | {0,3}         |       2 |               0.5 |         1 |        2 |                0.5 |    0 |        2 |         8 |      53 |        1 | t               |          70 |   8 | {3}
- 38 | {0,2,1}       |       2 |                 1 |         1 |        2 |                  0 |    0 |        2 |        19 |         |          | t               |          80 |   8 | {3,4}
- 39 | {0,2,2}       |       2 |                 1 |         1 |        1 |                  0 |    0 |        1 |        19 |         |          | t               |          80 |   8 | {3,4}
- 53 | {0,3,1}       |       4 |                 1 |         1 |        2 |                  0 |    0 |        1 |        20 |         |          | f               |             |   8 |
- 54 | {0,3,2}       |       4 |                 1 |         1 |        1 |                  0 |    0 |        1 |        20 |         |          | f               |             |   8 |
-  9 | {0}           |       3 | 0.555555555555556 |         1 |        2 |  0.327160493827161 |    0 |        9 |         0 |      33 |        1 | f               |             |   9 |
- 33 | {0,1}         |       4 |                 1 |         1 |        2 |                  0 |    0 |        2 |         9 |         |          | f               |             |   9 | {3}
- 34 | {0,2}         |       4 |              0.75 |         1 |        2 |              0.375 |    0 |        4 |         9 |      55 |        1 | f               |             |   9 | {3}
- 35 | {0,3}         |       4 |                 1 |         1 |        1 |                  0 |    0 |        3 |         9 |         |          | f               |             |   9 | {3}
- 55 | {0,2,1}       |       2 |                 1 |         1 |        2 |                  0 |    0 |        3 |        34 |         |          | t               |          96 |   9 | {3,4}
- 56 | {0,2,2}       |       2 |                 1 |         1 |        1 |                  0 |    0 |        1 |        34 |         |          | t               |          70 |   9 | {3,4}
- 10 | {0}           |       3 | 0.666666666666667 |         1 |        2 |  0.277777777777778 |    0 |        9 |         0 |      21 |        1 | f               |             |  10 |
- 21 | {0,1}         |       4 |                 1 |         1 |        2 |                  0 |    0 |        1 |        10 |         |          | f               |             |  10 | {3}
- 22 | {0,2}         |       4 |                 1 |         1 |        2 |                  0 |    0 |        4 |        10 |         |          | f               |             |  10 | {3}
- 23 | {0,3}         |       2 |              0.75 |         1 |        1 |              0.375 |    0 |        4 |        10 |      40 |        1 | t               |          70 |  10 | {3}
- 40 | {0,3,1}       |       4 |                 1 |         1 |        2 |                  0 |    0 |        1 |        23 |         |          | f               |             |  10 |
- 41 | {0,3,2}       |       4 |                 1 |         1 |        1 |                  0 |    0 |        3 |        23 |         |          | f               |             |  10 |
-(60 rows)
-</pre></li>
-<li>Display the random forest in a human readable format. <pre class="example">
-SELECT * FROM madlib.rf_display( 'trained_tree_infogain'
-                               );
-</pre> Result: <pre class="result">
-                                             rf_display
-&#160;----------------------------------------------------------------------------------------------------
-&#160;
- Tree 1
-     Root Node  : class( Play)   num_elements(9)  predict_prob(0.777777777777778)
-         outlook:  = overcast  : class( Play)   num_elements(4)  predict_prob(1)
-         outlook:  = rain  : class( Play)   num_elements(2)  predict_prob(1)
-         outlook:  = sunny  : class( Do not Play)   num_elements(3)  predict_prob(0.666666666666667)
-             humidity:  &lt;= 70  : class( Play)   num_elements(1)  predict_prob(1)
-             humidity:  &gt; 70  : class( Do not Play)   num_elements(2)  predict_prob(1)
-&#160;
- Tree 2
-     Root Node  : class( Do not Play)   num_elements(9)  predict_prob(0.555555555555556)
-         humidity:  &lt;= 65  : class( Play)   num_elements(2)  predict_prob(1)
-         humidity:  &gt; 65  : class( Do not Play)   num_elements(7)  predict_prob(0.714285714285714)
-             windy:  =  false  : class( Play)   num_elements(3)  predict_prob(0.666666666666667)
-                 outlook:  = overcast  : class( Play)   num_elements(1)  predict_prob(1)
-                 outlook:  = rain  : class( Play)   num_elements(1)  predict_prob(1)
-                 outlook:  = sunny  : class( Do not Play)   num_elements(1)  predict_prob(1)
-             windy:  =  true  : class( Do not Play)   num_elements(4)  predict_prob(1)
-&#160;
- Tree 3
-     Root Node  : class( Play)   num_elements(9)  predict_prob(0.777777777777778)
-         humidity:  &lt;= 80  : class( Play)   num_elements(6)  predict_prob(1)
-         humidity:  &gt; 80  : class( Do not Play)   num_elements(3)  predict_prob(0.666666666666667)
-             humidity:  &lt;= 90  : class( Do not Play)   num_elements(2)  predict_prob(1)
-             humidity:  &gt; 90  : class( Play)   num_elements(1)  predict_prob(1)
-&#160;
- Tree 4
-     Root Node  : class( Play)   num_elements(9)  predict_prob(0.888888888888889)
-         windy:  =  false  : class( Play)   num_elements(6)  predict_prob(1)
-         windy:  =  true  : class( Play)   num_elements(3)  predict_prob(0.666666666666667)
-             outlook:  = overcast  : class( Play)   num_elements(2)  predict_prob(1)
-             outlook:  = rain  : class( Do not Play)   num_elements(1)  predict_prob(1)
-&#160;
- Tree 5
-     Root Node  : class( Play)   num_elements(9)  predict_prob(0.888888888888889)
-         humidity:  &lt;= 90  : class( Play)   num_elements(8)  predict_prob(1)
-         humidity:  &gt; 90  : class( Do not Play)   num_elements(1)  predict_prob(1)
-&#160;
- Tree 6
-     Root Node  : class( Play)   num_elements(9)  predict_prob(0.555555555555556)
-         outlook:  = overcast  : class( Play)   num_elements(3)  predict_prob(1)
-         outlook:  = rain  : class( Play)   num_elements(3)  predict_prob(0.666666666666667)
-             windy:  =  false  : class( Play)   num_elements(2)  predict_prob(1)
-             windy:  =  true  : class( Do not Play)   num_elements(1)  predict_prob(1)
-         outlook:  = sunny  : class( Do not Play)   num_elements(3)  predict_prob(1)
-&#160;
- Tree 7
-     Root Node  : class( Play)   num_elements(9)  predict_prob(0.666666666666667)
-         windy:  =  false  : class( Play)   num_elements(7)  predict_prob(0.857142857142857)
-             humidity:  &lt;= 80  : class( Play)   num_elements(5)  predict_prob(1)
-             humidity:  &gt; 80  : class( Play)   num_elements(2)  predict_prob(0.5)
-                 humidity:  &lt;= 95  : class( Do not Play)   num_elements(1)  predict_prob(1)
-                 humidity:  &gt; 95  : class( Play)   num_elements(1)  predict_prob(1)
-         windy:  =  true  : class( Do not Play)   num_elements(2)  predict_prob(1)
-&#160;
- Tree 8
-     Root Node  : class( Play)   num_elements(9)  predict_prob(0.777777777777778)
-         outlook:  = overcast  : class( Play)   num_elements(4)  predict_prob(1)
-         outlook:  = rain  : class( Play)   num_elements(3)  predict_prob(0.666666666666667)
-             windy:  =  false  : class( Play)   num_elements(2)  predict_prob(1)
-             windy:  =  true  : class( Do not Play)   num_elements(1)  predict_prob(1)
-         outlook:  = sunny  : class( Play)   num_elements(2)  predict_prob(0.5)
-             humidity:  &lt;= 70  : class( Play)   num_elements(1)  predict_prob(1)
-             humidity:  &gt; 70  : class( Do not Play)   num_elements(1)  predict_prob(1)
-&#160;
- Tree 9
-     Root Node  : class( Play)   num_elements(9)  predict_prob(0.555555555555556)
-         outlook:  = overcast  : class( Play)   num_elements(2)  predict_prob(1)
-         outlook:  = rain  : class( Play)   num_elements(4)  predict_prob(0.75)
-             windy:  =  false  : class( Play)   num_elements(3)  predict_prob(1)
-             windy:  =  true  : class( Do not Play)   num_elements(1)  predict_prob(1)
-         outlook:  = sunny  : class( Do not Play)   num_elements(3)  predict_prob(1)
-&#160;
- Tree 10
-     Root Node  : class( Play)   num_elements(9)  predict_prob(0.666666666666667)
-         outlook:  = overcast  : class( Play)   num_elements(1)  predict_prob(1)
-         outlook:  = rain  : class( Play)   num_elements(4)  predict_prob(1)
-         outlook:  = sunny  : class( Do not Play)   num_elements(4)  predict_prob(0.75)
-             humidity:  &lt;= 70  : class( Play)   num_elements(1)  predict_prob(1)
-             humidity:  &gt; 70  : class( Do not Play)   num_elements(3)  predict_prob(1)
-(10 rows)
-</pre></li>
-<li>Classify data with the learned model. <pre class="example">
-SELECT * FROM madlib.rf_classify( 'trained_tree_infogain',
-                                  'golf_data',
-                                  'classification_result'
-                                );
-</pre> Result: <pre class="result">
- input_set_size | classification_time
-&#160;---------------+---------------------
-             14 | 00:00:02.215017
-(1 row)
-</pre></li>
-<li>Check the classification results. <pre class="example">
-SELECT t.id, t.outlook, t.temperature, t.humidity, t.windy, c.class
-FROM classification_result c, golf_data t
-WHERE t.id=c.id ORDER BY id;
-</pre> Result: <pre class="result">
- id | outlook  | temperature | humidity | windy  |    class
-&#160;---+----------+-------------+----------+--------+--------------
-  1 | sunny    |          85 |       85 |  false |  Do not Play
-  2 | sunny    |          80 |       90 |  true  |  Do not Play
-  3 | overcast |          83 |       78 |  false |  Play
-  4 | rain     |          70 |       96 |  false |  Play
-  5 | rain     |          68 |       80 |  false |  Play
-  6 | rain     |          65 |       70 |  true  |  Do not Play
-  7 | overcast |          64 |       65 |  true  |  Play
-  8 | sunny    |          72 |       95 |  false |  Do not Play
-  9 | sunny    |          69 |       70 |  false |  Play
- 10 | rain     |          75 |       80 |  false |  Play
- 11 | sunny    |          75 |       70 |  true  |  Do not Play
- 12 | overcast |          72 |       90 |  true  |  Play
- 13 | overcast |          81 |       75 |  false |  Play
- 14 | rain     |          71 |       80 |  true  |  Do not Play
-(14 rows)
-</pre></li>
-<li>Score the data against a validation set. <pre class="example">
-SELECT * FROM madlib.rf_score( 'trained_tree_infogain',
-                               'golf_data',
-                               0
-                             );
-</pre> Result: <pre class="result">
-     rf_score
-&#160;------------------
- 0.928571428571429
-(1 row)
-</pre></li>
-<li>Clean up the random forest and other auxiliary information: <pre class="example">
-SELECT madlib.rf_clean( 'trained_tree_infogain'
-                      );
-</pre> Result: <pre class="result">
- rf_clean
-&#160;---------
- t
-(1 row)
-</pre></li>
-</ol>
-<p><a class="anchor" id="literature"></a></p><dl class="section user"><dt>Literature</dt><dd></dd></dl>
-<p>[1] <a href="http://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm">http://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm</a></p>
-<p>[2] <a href="http://en.wikipedia.org/wiki/Discretization_of_continuous_features">http://en.wikipedia.org/wiki/Discretization_of_continuous_features</a></p>
-<p><a class="anchor" id="related"></a></p><dl class="section user"><dt>Related Topics</dt><dd>File <a class="el" href="rf_8sql__in.html" title="random forest APIs and main control logic written in PL/PGSQL ">rf.sql_in</a> documenting the SQL functions. </dd></dl>
 </div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated on Mon Jul 27 2015 20:37:46 for MADlib by
+    <li class="footer">Generated on Thu Apr 7 2016 14:24:11 for MADlib by
     <a href="http://www.doxygen.org/index.html">
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.10 </li>
   </ul>

http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/c506dd05/docs/latest/group__grp__robust.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__robust.html b/docs/latest/group__grp__robust.html
index acd0283..abe5c06 100644
--- a/docs/latest/group__grp__robust.html
+++ b/docs/latest/group__grp__robust.html
@@ -24,14 +24,8 @@
 <script type="text/javascript">
   $(document).ready(function() { init_search(); });
 </script>
-<script type="text/x-mathjax-config">
-  MathJax.Hub.Config({
-    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
-    jax: ["input/TeX","output/HTML-CSS"],
-});
-</script><script src="../mathjax/MathJax.js"></script>
 <!-- hack in the navigation tree -->
-<script type="text/javascript" src="navtree_hack.js"></script>
+<script type="text/javascript" src="eigen_navtree_hacks.js"></script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="madlib_extra.css" rel="stylesheet" type="text/css"/>
 <!-- google analytics -->
@@ -40,7 +34,7 @@
   (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
   m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
   })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-  ga('create', 'UA-45382226-1', 'auto');
+  ga('create', 'UA-45382226-1', 'madlib.net');
   ga('send', 'pageview');
 </script>
 </head>
@@ -50,10 +44,10 @@
 <table cellspacing="0" cellpadding="0">
  <tbody>
  <tr style="height: 56px;">
-  <td id="projectlogo"><a href="http://madlib.incubator.apache.org"><img alt="Logo" src="madlib.png" height="50" style="padding-left:0.5em;" border="0"/ ></a></td>
+  <td id="projectlogo"><a href="http://madlib.net"><img alt="Logo" src="madlib.png" height="50" style="padding-left:0.5em;" border="0"/ ></a></td>
   <td style="padding-left: 0.5em;">
    <div id="projectname">
-   <span id="projectnumber">1.8</span>
+   <span id="projectnumber">1.9</span>
    </div>
    <div id="projectbrief">User Documentation for MADlib</div>
   </td>
@@ -407,20 +401,20 @@ hessian       | {{2.78043065745405,-2.25848560642669},{-2.25848560642669,8.50472
 </pre></li>
 </ol>
 <p><a class="anchor" id="background"></a></p><dl class="section user"><dt>Technical Background</dt><dd></dd></dl>
-<p>When doing regression analysis, we are sometimes interested in the variance of the computed coefficients \( \boldsymbol c \). While the built-in regression functions provide variance estimates, we may prefer a <em>robust</em> variance estimate.</p>
+<p>When doing regression analysis, we are sometimes interested in the variance of the computed coefficients <img class="formulaInl" alt="$ \boldsymbol c $" src="form_78.png"/>. While the built-in regression functions provide variance estimates, we may prefer a <em>robust</em> variance estimate.</p>
 <p>The robust variance calculation can be expressed in a sandwich formation, which is the form </p><p class="formulaDsp">
-\[ S( \boldsymbol c) = B( \boldsymbol c) M( \boldsymbol c) B( \boldsymbol c) \]
+<img class="formulaDsp" alt="\[ S( \boldsymbol c) = B( \boldsymbol c) M( \boldsymbol c) B( \boldsymbol c) \]" src="form_372.png"/>
 </p>
-<p> where \( B( \boldsymbol c)\) and \( M( \boldsymbol c)\) are matrices. The \( B( \boldsymbol c) \) matrix, also known as the bread, is relatively straight forward, and can be computed as </p><p class="formulaDsp">
-\[ B( \boldsymbol c) = n\left(\sum_i^n -H(y_i, x_i, \boldsymbol c) \right)^{-1} \]
+<p> where <img class="formulaInl" alt="$ B( \boldsymbol c)$" src="form_373.png"/> and <img class="formulaInl" alt="$ M( \boldsymbol c)$" src="form_374.png"/> are matrices. The <img class="formulaInl" alt="$ B( \boldsymbol c) $" src="form_375.png"/> matrix, also known as the bread, is relatively straight forward, and can be computed as </p><p class="formulaDsp">
+<img class="formulaDsp" alt="\[ B( \boldsymbol c) = n\left(\sum_i^n -H(y_i, x_i, \boldsymbol c) \right)^{-1} \]" src="form_376.png"/>
 </p>
-<p> where \( H \) is the hessian matrix.</p>
-<p>The \( M( \boldsymbol c)\) matrix has several variations, each with different robustness properties. The form implemented here is the Huber-White sandwich operator, which takes the form </p><p class="formulaDsp">
-\[ M_{H} =\frac{1}{n} \sum_i^n \psi(y_i,x_i, \boldsymbol c)^T \psi(y_i,x_i, \boldsymbol c). \]
+<p> where <img class="formulaInl" alt="$ H $" src="form_107.png"/> is the hessian matrix.</p>
+<p>The <img class="formulaInl" alt="$ M( \boldsymbol c)$" src="form_374.png"/> matrix has several variations, each with different robustness properties. The form implemented here is the Huber-White sandwich operator, which takes the form </p><p class="formulaDsp">
+<img class="formulaDsp" alt="\[ M_{H} =\frac{1}{n} \sum_i^n \psi(y_i,x_i, \boldsymbol c)^T \psi(y_i,x_i, \boldsymbol c). \]" src="form_377.png"/>
 </p>
 <p>The above method for calculating robust variance (Huber-White estimates) is implemented for linear regression, logistic regression, and multinomial logistic regression. It is useful in calculating variances in a dataset with potentially noisy outliers. The Huber-White implemented here is identical to the "HC0" sandwich operator in the R module "sandwich".</p>
-<p>When multinomial logistic regression is computed before the multinomial robust regression, it uses a default reference category of zero and the regression coefficients are included in the output table. The regression coefficients in the output are in the same order as the multinomial logistic regression function, which is described below. For a problem with \( K \) dependent variables \( (1, ..., K) \) and \( J \) categories \( (0, ..., J-1) \), let \( {m_{k,j}} \) denote the coefficient for dependent variable \( k \) and category \( j \) . The output is \( {m_{k_1, j_0}, m_{k_1, j_1} \ldots m_{k_1, j_{J-1}}, m_{k_2, j_0}, m_{k_2, j_1} \ldots m_{k_K, j_{J-1}}} \). The order is NOT CONSISTENT with the multinomial regression marginal effect calculation with function <em>marginal_mlogregr</em>. This is deliberate because the interfaces of all multinomial regressions (robust, clustered, ...) will be moved to match that used in marginal.</p>
-<p>The robust variance of Cox proportional hazards is more complex because coeeficients are trained by maximizing a partial log-likelihood. Therefore, one cannot directly use the formula for \( M( \boldsymbol c) \) as in Huber-White robust estimator. Extra terms are needed. See [4] for details.</p>
+<p>When multinomial logistic regression is computed before the multinomial robust regression, it uses a default reference category of zero and the regression coefficients are included in the output table. The regression coefficients in the output are in the same order as the multinomial logistic regression function, which is described below. For a problem with <img class="formulaInl" alt="$ K $" src="form_117.png"/> dependent variables <img class="formulaInl" alt="$ (1, ..., K) $" src="form_118.png"/> and <img class="formulaInl" alt="$ J $" src="form_119.png"/> categories <img class="formulaInl" alt="$ (0, ..., J-1) $" src="form_120.png"/>, let <img class="formulaInl" alt="$ {m_{k,j}} $" src="form_121.png"/> denote the coefficient for dependent variable <img class="formulaInl" alt="$ k $" src="form_97.png"/> and category <img class="formulaInl" alt="$ j $" src="form_122.png"/> . The output is <img class="formulaInl" alt="$ {m_{k_1, j_0}, m_{k_1, j_1} \ldots m_{k_1, j_{J-1}}, m_{k_2,
  j_0}, m_{k_2, j_1} \ldots m_{k_K, j_{J-1}}} $" src="form_322.png"/>. The order is NOT CONSISTENT with the multinomial regression marginal effect calculation with function <em>marginal_mlogregr</em>. This is deliberate because the interfaces of all multinomial regressions (robust, clustered, ...) will be moved to match that used in marginal.</p>
+<p>The robust variance of Cox proportional hazards is more complex because coeeficients are trained by maximizing a partial log-likelihood. Therefore, one cannot directly use the formula for <img class="formulaInl" alt="$ M( \boldsymbol c) $" src="form_378.png"/> as in Huber-White robust estimator. Extra terms are needed. See [4] for details.</p>
 <p><a class="anchor" id="literature"></a></p><dl class="section user"><dt>Literature</dt><dd></dd></dl>
 <p>[1] vce(cluster) function in STATA: <a href="http://www.stata.com/help.cgi?vce_option">http://www.stata.com/help.cgi?vce_option</a></p>
 <p>[2] clustered estimators in R: <a href="http://people.su.se/~ma/clustering.pdf">http://people.su.se/~ma/clustering.pdf</a></p>
@@ -432,7 +426,7 @@ hessian       | {{2.78043065745405,-2.25848560642669},{-2.25848560642669,8.50472
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated on Mon Jul 27 2015 20:37:45 for MADlib by
+    <li class="footer">Generated on Thu Apr 7 2016 14:24:10 for MADlib by
     <a href="http://www.doxygen.org/index.html">
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.10 </li>
   </ul>

http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/c506dd05/docs/latest/group__grp__sample.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__sample.html b/docs/latest/group__grp__sample.html
index 5e26715..a05a6cf 100644
--- a/docs/latest/group__grp__sample.html
+++ b/docs/latest/group__grp__sample.html
@@ -24,14 +24,8 @@
 <script type="text/javascript">
   $(document).ready(function() { init_search(); });
 </script>
-<script type="text/x-mathjax-config">
-  MathJax.Hub.Config({
-    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
-    jax: ["input/TeX","output/HTML-CSS"],
-});
-</script><script src="../mathjax/MathJax.js"></script>
 <!-- hack in the navigation tree -->
-<script type="text/javascript" src="navtree_hack.js"></script>
+<script type="text/javascript" src="eigen_navtree_hacks.js"></script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="madlib_extra.css" rel="stylesheet" type="text/css"/>
 <!-- google analytics -->
@@ -40,7 +34,7 @@
   (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
   m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
   })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-  ga('create', 'UA-45382226-1', 'auto');
+  ga('create', 'UA-45382226-1', 'madlib.net');
   ga('send', 'pageview');
 </script>
 </head>
@@ -50,10 +44,10 @@
 <table cellspacing="0" cellpadding="0">
  <tbody>
  <tr style="height: 56px;">
-  <td id="projectlogo"><a href="http://madlib.incubator.apache.org"><img alt="Logo" src="madlib.png" height="50" style="padding-left:0.5em;" border="0"/ ></a></td>
+  <td id="projectlogo"><a href="http://madlib.net"><img alt="Logo" src="madlib.png" height="50" style="padding-left:0.5em;" border="0"/ ></a></td>
   <td style="padding-left: 0.5em;">
    <div id="projectname">
-   <span id="projectnumber">1.8</span>
+   <span id="projectnumber">1.9</span>
    </div>
    <div id="projectbrief">User Documentation for MADlib</div>
   </td>
@@ -142,7 +136,7 @@ weighted_sample( value,
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated on Mon Jul 27 2015 20:37:45 for MADlib by
+    <li class="footer">Generated on Thu Apr 7 2016 14:24:11 for MADlib by
     <a href="http://www.doxygen.org/index.html">
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.10 </li>
   </ul>

http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/c506dd05/docs/latest/group__grp__sketches.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__sketches.html b/docs/latest/group__grp__sketches.html
index 4365737..0beff9a 100644
--- a/docs/latest/group__grp__sketches.html
+++ b/docs/latest/group__grp__sketches.html
@@ -24,14 +24,8 @@
 <script type="text/javascript">
   $(document).ready(function() { init_search(); });
 </script>
-<script type="text/x-mathjax-config">
-  MathJax.Hub.Config({
-    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
-    jax: ["input/TeX","output/HTML-CSS"],
-});
-</script><script src="../mathjax/MathJax.js"></script>
 <!-- hack in the navigation tree -->
-<script type="text/javascript" src="navtree_hack.js"></script>
+<script type="text/javascript" src="eigen_navtree_hacks.js"></script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="madlib_extra.css" rel="stylesheet" type="text/css"/>
 <!-- google analytics -->
@@ -40,7 +34,7 @@
   (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
   m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
   })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-  ga('create', 'UA-45382226-1', 'auto');
+  ga('create', 'UA-45382226-1', 'madlib.net');
   ga('send', 'pageview');
 </script>
 </head>
@@ -50,10 +44,10 @@
 <table cellspacing="0" cellpadding="0">
  <tbody>
  <tr style="height: 56px;">
-  <td id="projectlogo"><a href="http://madlib.incubator.apache.org"><img alt="Logo" src="madlib.png" height="50" style="padding-left:0.5em;" border="0"/ ></a></td>
+  <td id="projectlogo"><a href="http://madlib.net"><img alt="Logo" src="madlib.png" height="50" style="padding-left:0.5em;" border="0"/ ></a></td>
   <td style="padding-left: 0.5em;">
    <div id="projectname">
-   <span id="projectnumber">1.8</span>
+   <span id="projectnumber">1.9</span>
    </div>
    <div id="projectbrief">User Documentation for MADlib</div>
   </td>
@@ -152,7 +146,7 @@ Modules</h2></td></tr>
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated on Mon Jul 27 2015 20:37:45 for MADlib by
+    <li class="footer">Generated on Thu Apr 7 2016 14:24:11 for MADlib by
     <a href="http://www.doxygen.org/index.html">
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.10 </li>
   </ul>

http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/c506dd05/docs/latest/group__grp__sparse__linear__solver.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__sparse__linear__solver.html b/docs/latest/group__grp__sparse__linear__solver.html
index 08f2325..aa5ccf6 100644
--- a/docs/latest/group__grp__sparse__linear__solver.html
+++ b/docs/latest/group__grp__sparse__linear__solver.html
@@ -24,14 +24,8 @@
 <script type="text/javascript">
   $(document).ready(function() { init_search(); });
 </script>
-<script type="text/x-mathjax-config">
-  MathJax.Hub.Config({
-    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
-    jax: ["input/TeX","output/HTML-CSS"],
-});
-</script><script src="../mathjax/MathJax.js"></script>
 <!-- hack in the navigation tree -->
-<script type="text/javascript" src="navtree_hack.js"></script>
+<script type="text/javascript" src="eigen_navtree_hacks.js"></script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="madlib_extra.css" rel="stylesheet" type="text/css"/>
 <!-- google analytics -->
@@ -40,7 +34,7 @@
   (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
   m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
   })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-  ga('create', 'UA-45382226-1', 'auto');
+  ga('create', 'UA-45382226-1', 'madlib.net');
   ga('send', 'pageview');
 </script>
 </head>
@@ -50,10 +44,10 @@
 <table cellspacing="0" cellpadding="0">
  <tbody>
  <tr style="height: 56px;">
-  <td id="projectlogo"><a href="http://madlib.incubator.apache.org"><img alt="Logo" src="madlib.png" height="50" style="padding-left:0.5em;" border="0"/ ></a></td>
+  <td id="projectlogo"><a href="http://madlib.net"><img alt="Logo" src="madlib.png" height="50" style="padding-left:0.5em;" border="0"/ ></a></td>
   <td style="padding-left: 0.5em;">
    <div id="projectname">
-   <span id="projectnumber">1.8</span>
+   <span id="projectnumber">1.9</span>
    </div>
    <div id="projectbrief">User Documentation for MADlib</div>
   </td>
@@ -128,9 +122,9 @@ $(document).ready(function(){initNavTree('group__grp__sparse__linear__solver.htm
 <a href="related">Related Topics</a> </li>
 </ul>
 </div><p>The sparse linear systems module implements solution methods for systems of consistent linear equations. Systems of linear equations take the form: </p><p class="formulaDsp">
-\[ Ax = b \]
+<img class="formulaDsp" alt="\[ Ax = b \]" src="form_211.png"/>
 </p>
-<p>where \(x \in \mathbb{R}^{n}\), \(A \in \mathbb{R}^{m \times n} \) and \(b \in \mathbb{R}^{m}\). This module accepts sparse matrix input formats for \(A\) and \(b\). We assume that there are no rows of \(A\) where all elements are zero.</p>
+<p>where <img class="formulaInl" alt="$x \in \mathbb{R}^{n}$" src="form_212.png"/>, <img class="formulaInl" alt="$A \in \mathbb{R}^{m \times n} $" src="form_213.png"/> and <img class="formulaInl" alt="$b \in \mathbb{R}^{m}$" src="form_214.png"/>. This module accepts sparse matrix input formats for <img class="formulaInl" alt="$A$" src="form_41.png"/> and <img class="formulaInl" alt="$b$" src="form_217.png"/>. We assume that there are no rows of <img class="formulaInl" alt="$A$" src="form_41.png"/> where all elements are zero.</p>
 <dl class="section note"><dt>Note</dt><dd>Algorithms with fail if there is an row of the input matrix containing all zeros.</dd></dl>
 <p>The algorithms implemented in this module can handle large sparse square linear systems. Currently, the algorithms implemented in this module solve the linear system using direct or iterative methods.</p>
 <p><a class="anchor" id="sls_usage"></a></p><dl class="section user"><dt>Sparse Linear Systems Solution Function</dt><dd></dd></dl>
@@ -174,14 +168,14 @@ linear_solver_sparse( tbl_source_lhs,
 <tr>
 <th>solution </th><td>FLOAT8[]. The solution is an array with the variables in the same order as that provided as input in the 'left_hand_side' column name of the 'source_table'   </td></tr>
 <tr>
-<th>residual_norm </th><td>FLOAT8. Scaled residual norm, defined as \( \frac{|Ax - b|}{|b|} \). This value is an indication of the accuracy of the solution.   </td></tr>
+<th>residual_norm </th><td>FLOAT8. Scaled residual norm, defined as <img class="formulaInl" alt="$ \frac{|Ax - b|}{|b|} $" src="form_215.png"/>. This value is an indication of the accuracy of the solution.   </td></tr>
 <tr>
 <th>iters </th><td>INTEGER. Number of iterations required by the algorithm (only applicable for iterative algorithms) . The output is NULL for 'direct' methods.   </td></tr>
 </table>
 <p class="enddd"></p>
 </dd>
 <dt>lhs_row_id </dt>
-<dd>TEXT. The name of the column storing the 'row id' of the equations. <dl class="section note"><dt>Note</dt><dd>For a system with N equations, the row_id's must be a continuous range of integers from \( 0 \ldots n-1 \).</dd></dl>
+<dd>TEXT. The name of the column storing the 'row id' of the equations. <dl class="section note"><dt>Note</dt><dd>For a system with N equations, the row_id's must be a continuous range of integers from <img class="formulaInl" alt="$ 0 \ldots n-1 $" src="form_216.png"/>.</dd></dl>
 </dd>
 <dt>lhs_col_id </dt>
 <dd><p class="startdd">TEXT. The name of the column (in tbl_source_lhs) storing the 'col id' of the equations.</p>
@@ -346,7 +340,7 @@ SELECT madlib.linear_solver_sparse(
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated on Mon Jul 27 2015 20:37:45 for MADlib by
+    <li class="footer">Generated on Thu Apr 7 2016 14:24:11 for MADlib by
     <a href="http://www.doxygen.org/index.html">
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.10 </li>
   </ul>

http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/c506dd05/docs/latest/group__grp__stats.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__stats.html b/docs/latest/group__grp__stats.html
index 6f77768..09dc48a 100644
--- a/docs/latest/group__grp__stats.html
+++ b/docs/latest/group__grp__stats.html
@@ -24,14 +24,8 @@
 <script type="text/javascript">
   $(document).ready(function() { init_search(); });
 </script>
-<script type="text/x-mathjax-config">
-  MathJax.Hub.Config({
-    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
-    jax: ["input/TeX","output/HTML-CSS"],
-});
-</script><script src="../mathjax/MathJax.js"></script>
 <!-- hack in the navigation tree -->
-<script type="text/javascript" src="navtree_hack.js"></script>
+<script type="text/javascript" src="eigen_navtree_hacks.js"></script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="madlib_extra.css" rel="stylesheet" type="text/css"/>
 <!-- google analytics -->
@@ -40,7 +34,7 @@
   (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
   m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
   })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-  ga('create', 'UA-45382226-1', 'auto');
+  ga('create', 'UA-45382226-1', 'madlib.net');
   ga('send', 'pageview');
 </script>
 </head>
@@ -50,10 +44,10 @@
 <table cellspacing="0" cellpadding="0">
  <tbody>
  <tr style="height: 56px;">
-  <td id="projectlogo"><a href="http://madlib.incubator.apache.org"><img alt="Logo" src="madlib.png" height="50" style="padding-left:0.5em;" border="0"/ ></a></td>
+  <td id="projectlogo"><a href="http://madlib.net"><img alt="Logo" src="madlib.png" height="50" style="padding-left:0.5em;" border="0"/ ></a></td>
   <td style="padding-left: 0.5em;">
    <div id="projectname">
-   <span id="projectnumber">1.8</span>
+   <span id="projectnumber">1.9</span>
    </div>
    <div id="projectbrief">User Documentation for MADlib</div>
   </td>
@@ -135,7 +129,7 @@ Modules</h2></td></tr>
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated on Mon Jul 27 2015 20:37:45 for MADlib by
+    <li class="footer">Generated on Thu Apr 7 2016 14:24:10 for MADlib by
     <a href="http://www.doxygen.org/index.html">
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.10 </li>
   </ul>

http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/c506dd05/docs/latest/group__grp__stats__tests.html
----------------------------------------------------------------------
diff --git a/docs/latest/group__grp__stats__tests.html b/docs/latest/group__grp__stats__tests.html
index d7579b1..386e6f3 100644
--- a/docs/latest/group__grp__stats__tests.html
+++ b/docs/latest/group__grp__stats__tests.html
@@ -24,14 +24,8 @@
 <script type="text/javascript">
   $(document).ready(function() { init_search(); });
 </script>
-<script type="text/x-mathjax-config">
-  MathJax.Hub.Config({
-    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
-    jax: ["input/TeX","output/HTML-CSS"],
-});
-</script><script src="../mathjax/MathJax.js"></script>
 <!-- hack in the navigation tree -->
-<script type="text/javascript" src="navtree_hack.js"></script>
+<script type="text/javascript" src="eigen_navtree_hacks.js"></script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="madlib_extra.css" rel="stylesheet" type="text/css"/>
 <!-- google analytics -->
@@ -40,7 +34,7 @@
   (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
   m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
   })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-  ga('create', 'UA-45382226-1', 'auto');
+  ga('create', 'UA-45382226-1', 'madlib.net');
   ga('send', 'pageview');
 </script>
 </head>
@@ -50,10 +44,10 @@
 <table cellspacing="0" cellpadding="0">
  <tbody>
  <tr style="height: 56px;">
-  <td id="projectlogo"><a href="http://madlib.incubator.apache.org"><img alt="Logo" src="madlib.png" height="50" style="padding-left:0.5em;" border="0"/ ></a></td>
+  <td id="projectlogo"><a href="http://madlib.net"><img alt="Logo" src="madlib.png" height="50" style="padding-left:0.5em;" border="0"/ ></a></td>
   <td style="padding-left: 0.5em;">
    <div id="projectname">
-   <span id="projectnumber">1.8</span>
+   <span id="projectnumber">1.9</span>
    </div>
    <div id="projectbrief">User Documentation for MADlib</div>
   </td>
@@ -127,9 +121,9 @@ $(document).ready(function(){initNavTree('group__grp__stats__tests.html','');});
 <li>
 <a href="#related">Related Topics</a> </li>
 </ul>
-</div><p>Hypothesis tests are used to confirm or reject a <em>“null” hypothesis</em> \( H_0 \) about the distribution of random variables, given realizations of these random variables. Since in general it is not possible to make statements with certainty, one is interested in the probability \( p \) of seeing random variates at least as extreme as the ones observed, assuming that \( H_0 \) is true. If this probability \( p \) is small, \( H_0 \) will be rejected by the test with <em>significance level</em> \( p \). Falsifying \( H_0 \) is the canonic goal when employing a hypothesis test. That is, hypothesis tests are typically used in order to substantiate that instead the <em>alternative hypothesis</em> \( H_1 \) is true.</p>
-<p>Hypothesis tests may be devided into parametric and non-parametric tests. A parametric test assumes certain distributions and makes inferences about parameters of the distributions (like, e.g., the mean of a normal distribution). Formally, there is a given domain of possible parameters \( \Gamma \) and the null hypothesis \( H_0 \) is the event that the true parameter \( \gamma_0 \in \Gamma_0 \), where \( \Gamma_0 \subsetneq \Gamma \). Non-parametric tests, on the other hand, do not assume any particular distribution of the sample (e.g., a non-parametric test may simply test if two distributions are similar).</p>
-<p>The first step of a hypothesis test is to compute a <em>test statistic</em>, which is a function of the random variates, i.e., a random variate itself. A hypothesis test relies on that the distribution of the test statistic is (approximately) known. Now, the \( p \)-value is the probability of seeing a test statistic at least as extreme as the one observed, assuming that \( H_0 \) is true. In a case where the null hypothesis corresponds to a family of distributions (e.g., in a parametric test where \( \Gamma_0 \) is not a singleton set), the \( p \)-value is the supremum, over all possible distributions according to the null hypothesis, of these probabilities.</p>
+</div><p>Hypothesis tests are used to confirm or reject a <em>“null” hypothesis</em> <img class="formulaInl" alt="$ H_0 $" src="form_396.png"/> about the distribution of random variables, given realizations of these random variables. Since in general it is not possible to make statements with certainty, one is interested in the probability <img class="formulaInl" alt="$ p $" src="form_110.png"/> of seeing random variates at least as extreme as the ones observed, assuming that <img class="formulaInl" alt="$ H_0 $" src="form_396.png"/> is true. If this probability <img class="formulaInl" alt="$ p $" src="form_110.png"/> is small, <img class="formulaInl" alt="$ H_0 $" src="form_396.png"/> will be rejected by the test with <em>significance level</em> <img class="formulaInl" alt="$ p $" src="form_110.png"/>. Falsifying <img class="formulaInl" alt="$ H_0 $" src="form_396.png"/> is the canonic goal when employing a hypothesis test. That is, hypothesis tests are typically used in order 
 to substantiate that instead the <em>alternative hypothesis</em> <img class="formulaInl" alt="$ H_1 $" src="form_397.png"/> is true.</p>
+<p>Hypothesis tests may be devided into parametric and non-parametric tests. A parametric test assumes certain distributions and makes inferences about parameters of the distributions (e.g., the mean of a normal distribution). Formally, there is a given domain of possible parameters <img class="formulaInl" alt="$ \Gamma $" src="form_398.png"/> and the null hypothesis <img class="formulaInl" alt="$ H_0 $" src="form_396.png"/> is the event that the true parameter <img class="formulaInl" alt="$ \gamma_0 \in \Gamma_0 $" src="form_399.png"/>, where <img class="formulaInl" alt="$ \Gamma_0 \subsetneq \Gamma $" src="form_400.png"/>. Non-parametric tests, on the other hand, do not assume any particular distribution of the sample (e.g., a non-parametric test may simply test if two distributions are similar).</p>
+<p>The first step of a hypothesis test is to compute a <em>test statistic</em>, which is a function of the random variates, i.e., a random variate itself. A hypothesis test relies on that the distribution of the test statistic is (approximately) known. Now, the <img class="formulaInl" alt="$ p $" src="form_110.png"/>-value is the probability of seeing a test statistic at least as extreme as the one observed, assuming that <img class="formulaInl" alt="$ H_0 $" src="form_396.png"/> is true. In a case where the null hypothesis corresponds to a family of distributions (e.g., in a parametric test where <img class="formulaInl" alt="$ \Gamma_0 $" src="form_401.png"/> is not a singleton set), the <img class="formulaInl" alt="$ p $" src="form_110.png"/>-value is the supremum, over all possible distributions according to the null hypothesis, of these probabilities.</p>
 <p><a class="anchor" id="input"></a></p><dl class="section user"><dt>Input</dt><dd></dd></dl>
 <p>Input data is assumed to be normalized with all values stored row-wise. In general, the following inputs are expected.</p>
 <p>One-sample tests expect the following form: </p><pre>{TABLE|VIEW} <em>source</em> (
@@ -141,7 +135,7 @@ $(document).ready(function(){initNavTree('group__grp__stats__tests.html','');});
     <em>first</em> BOOLEAN,
     <em>value</em> DOUBLE PRECISION
     ...
-)</pre><p> The <code>first</code> column indicates whether a value is from the first (if <code>TRUE</code>) or the second sample (if <code>FALSE</code>).</p>
+)</pre><p> The <code>first</code> column indicates whether a value is from the first sample (if <code>TRUE</code>) or the second sample (if <code>FALSE</code>).</p>
 <p>Many-sample tests expect the following form: </p><pre>{TABLE|VIEW} <em>source</em> (
     ...
     <em>group</em> INTEGER,
@@ -167,7 +161,7 @@ $(document).ready(function(){initNavTree('group__grp__stats__tests.html','');});
 <li>mw_test</li>
 <li>wsr_test (multi-sample)</li>
 </ul>
-<p class="startli"><b>Note:</b>Kolomogov-Smirnov two-sample test is based on the asymptotic theory. The p-value is given by comparing the test statistics with Kolomogov distribution. The p-value is also adjusted for data with heavy tail distribution, which may give different results given by R function's ks.test. See [3] for detailed explantion. The literature is not unanimous about the definitions of the Wilcoxon rank sum and Mann-Whitney tests. There are two possible definitions for the statistic; MADlib outputs the minimum of the two and uses it for significance testing. This might give different results for both mw_test and wsr_test compared to statistical functions in other popular packages (like R's wilcox.test function). See [4] for detailed explanation.</p>
+<p class="startli"><b>Note:</b> Kolomogov-Smirnov two-sample test is based on the asymptotic theory. The p-value is given by comparing the test statistics with the Kolomogov distribution. The p-value is also adjusted for data with heavy tail distribution, which may give different results given by R function's ks.test. See [3] for a detailed explantion. The literature is not unanimous about the definitions of the Wilcoxon rank sum and Mann-Whitney tests. There are two possible definitions for the statistic; MADlib outputs the minimum of the two and uses it for significance testing. This might give different results for both mw_test and wsr_test compared to statistical functions in other popular packages (like R's wilcox.test function). See [4] for a detailed explanation.</p>
 </li>
 </ul>
 <p><a class="anchor" id="examples"></a></p><dl class="section user"><dt>Examples</dt><dd></dd></dl>
@@ -237,26 +231,26 @@ SELECT TRUE AS is_us, mpg_us AS mpg
     WHERE mpg_j is not NULL;
 </pre><pre class="example">
 -- One sample tests
-SELECT (t_test_one(mpg - 20)).* FROM auto83b_one_sample;  -- test rejected for mean = 20
+SELECT (madlib.t_test_one(mpg - 20)).* FROM auto83b_one_sample;  -- test rejected for mean = 20
 </pre><pre class="result">
      statistic     | df | p_value_one_sided |  p_value_two_sided
  ------------------+----+-------------------+----------------------
   -6.0532478722666 | 26 | 0.999998926789141 | 2.14642171769697e-06
  </pre><pre class="example">
-SELECT (t_test_one(mpg - 15.7)).* FROM auto83b_one_sample;  -- test not rejected
+SELECT (madlib.t_test_one(mpg - 15.7)).* FROM auto83b_one_sample;  -- test not rejected
 </pre><pre class="result">
        statistic      | df | p_value_one_sided | p_value_two_sided
  ---------------------+----+-------------------+-------------------
   0.00521831713126531 | 26 | 0.497938118950661 | 0.995876237901321
 </pre><pre class="example">
 -- Two sample tests
-SELECT (t_test_two_pooled(is_us, mpg)).* FROM auto83b_two_sample;
+SELECT (madlib.t_test_two_pooled(is_us, mpg)).* FROM auto83b_two_sample;
 </pre> <pre class="result">
      statistic     | df | p_value_one_sided |  p_value_two_sided
  -------------------+----+-------------------+----------------------
   -8.89342267075968 | 49 | 0.999999999995748 | 8.50408632402377e-12
  </pre><pre class="example">
-SELECT (t_test_two_unpooled(is_us, mpg)).* FROM auto83b_two_sample;
+SELECT (madlib.t_test_two_unpooled(is_us, mpg)).* FROM auto83b_two_sample;
 </pre><pre class="result">
       statistic     |        df        | p_value_one_sided |  p_value_two_sided
  -------------------+------------------+-------------------+----------------------
@@ -265,14 +259,14 @@ SELECT (t_test_two_unpooled(is_us, mpg)).* FROM auto83b_two_sample;
 <li><b>F-Test</b> (Uses same data as above t-test)</li>
 </ul>
 <pre class="example">
-SELECT (f_test(is_us, mpg)).* FROM auto83b_two_sample;
+SELECT (madlib.f_test(is_us, mpg)).* FROM auto83b_two_sample;
 -- Test result indicates that the two distributions have different variances
 </pre> <pre class="result">
       statistic     | df1 | df2 | p_value_one_sided |  p_value_two_sided
  -------------------+-----+-----+-------------------+---------------------
   0.311786921089247 |  26 |  23 | 0.997559863672441 | 0.00488027265511803
 </pre><ul>
-<li><b>Chi-squared goodness-of-fit test</b> (<a href="http://www.statsdirect.com/help/chi_square_tests/chi_good.htm">Data source</a>)</li>
+<li><b>Chi-squared goodness-of-fit test</b> (<a href="http://www.statsdirect.com/help/default.htm#nonparametric_methods/chisq_goodness_fit.htm">Data source</a>)</li>
 </ul>
 <pre class="example">
 CREATE TABLE chi2_test_blood_group (
@@ -294,6 +288,7 @@ SELECT (madlib.chi2_gof_test(observed, expected)).* FROM chi2_test_blood_group;
  </pre><ul>
 <li><b>Chi-squared independence test</b> (<a href="http://itl.nist.gov/div898/software/dataplot/refman1/auxillar/chistest.htm">Data source</a>)</li>
 </ul>
+<p>The Chi-squared independence test uses the Chi-squared goodness-of-fit function, as shown in the example below. The expected value needs to be computed and passed to the goodness-of-fit function. The expected value for MADlib is computed as <em>sum of rows * sum of columns</em>, for each element of the input matrix. For e.g., expected value for element (2,1) would be <em>sum of row 2 * sum of column 1</em>.</p>
 <pre class="example">
 CREATE TABLE chi2_test_friendly (
     id_x SERIAL,
@@ -303,25 +298,25 @@ INSERT INTO chi2_test_friendly(values) VALUES
     (array[5, 29, 14, 16]),
     (array[15, 54, 14, 10]),
     (array[20, 84, 17, 94]),
-    (array[68, 119, 26, 7]);</pre><pre class="example">-- we expect the table to be unpivoted
+    (array[68, 119, 26, 7]);</pre><pre class="example">-- Input table is expected to be unpivoted, so need to pivot it
 CREATE TABLE chi2_test_friendly_unpivoted AS
 SELECT id_x, id_y, values[id_y] AS observed
 FROM
     chi2_test_friendly,
-    generate_series(1,4) AS id_y;</pre><pre class="example">-- Compute Chi-squared independence statistic
+    generate_series(1,4) AS id_y;</pre><pre class="example">-- Compute Chi-squared independence statistic, by calculating expected value in the SQL and calling the goodness-of-fit function
 SELECT (madlib.chi2_gof_test(observed, expected, deg_freedom)).*
 FROM (
     -- Compute expected values and degrees of freedom
     SELECT
         observed,
-        sum(observed) OVER (PARTITION BY id_x)::DOUBLE PRECISION
-              sum(observed) OVER (PARTITION BY id_y) AS expected
+        sum(observed) OVER (PARTITION BY id_x)::DOUBLE PRECISION *
+        sum(observed) OVER (PARTITION BY id_y) AS expected
     FROM chi2_test_friendly_unpivoted
 ) p, (
     SELECT
         (count(DISTINCT id_x) - 1) * (count(DISTINCT id_y) - 1) AS deg_freedom
     FROM chi2_test_friendly_unpivoted
-);
+) q;
 </pre> <pre class="result">
      statistic     |       p_value        | df |       phi        | contingency_coef
  ------------------+----------------------+----+------------------+-------------------
@@ -334,14 +329,12 @@ CREATE TABLE nist_anova_test (
     id SERIAL,
     resistance FLOAT8[]
 );
-COPY nist_anova_test(resistance) FROM stdin;
-{6.9,8.3,8.0}
-{5.4,6.8,10.5}
-{5.8,7.8,8.1}
-{4.6,9.2,6.9}
-{4.0,6.5,9.3}
-
-SELECT (madlib.one_way_anova(level, value)).* FROM (
+INSERT INTO nist_anova_test(resistance) VALUES
+    (array[6.9,8.3,8.0]),
+    (array[5.4,6.8,10.5]),
+    (array[5.8,7.8,8.1]),
+    (array[4.6,9.2,6.9]),
+    (array[4.0,6.5,9.3]);</pre><pre class="example">SELECT (madlib.one_way_anova(level, value)).* FROM (
     SELECT level, resistance[level] AS value
     FROM
         nist_anova_test, (SELECT * FROM generate_series(1,3) level) q1
@@ -361,7 +354,7 @@ SELECT
 UNION ALL
 SELECT
     FALSE,
-    unnest(ARRAY[-5.13, -2.19, -2.43, -3.83, 0.50, -3.25, 4.32, 1.63, 5.18, -0.43, 7.11, 4.87, -3.10, -5.81, 3.76, 6.31, 2.58, 0.07, 5.76, 3.50]);</pre><pre class="example">SELECT (ks_test(first, value,
+    unnest(ARRAY[-5.13, -2.19, -2.43, -3.83, 0.50, -3.25, 4.32, 1.63, 5.18, -0.43, 7.11, 4.87, -3.10, -5.81, 3.76, 6.31, 2.58, 0.07, 5.76, 3.50]);</pre><pre class="example">SELECT (madlib.ks_test(first, value,
     (SELECT count(value) FROM ks_sample_1 WHERE first),
     (SELECT count(value) FROM ks_sample_1 WHERE NOT first)
     ORDER BY value)).*
@@ -374,7 +367,7 @@ FROM ks_sample_1;
 <li><b>Mann-Whitney test</b> (use same data as t-test)</li>
 </ul>
 <pre class="example">
-SELECT (mw_test(is_us, mpg ORDER BY mpg)).* from auto83b_two_sample;
+SELECT (madlib.mw_test(is_us, mpg ORDER BY mpg)).* from auto83b_two_sample;
 </pre> <pre class="result">
       statistic     | u_statistic | p_value_one_sided |  p_value_two_sided
  -------------------+-------------+-------------------+----------------------
@@ -416,7 +409,7 @@ COPY test_wsr (x, y) FROM stdin DELIMITER '|';
 0.48|0.4
 \.
 
-SELECT (wsr_test(
+SELECT (madlib.wsr_test(
     x - y,
     2 * 2^(-52) * greatest(x,y)
     ORDER BY abs(x - y)
@@ -438,7 +431,7 @@ FROM test_wsr;
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated on Mon Jul 27 2015 20:37:45 for MADlib by
+    <li class="footer">Generated on Thu Apr 7 2016 14:24:10 for MADlib by
     <a href="http://www.doxygen.org/index.html">
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.10 </li>
   </ul>