You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@systemml.apache.org by de...@apache.org on 2015/12/17 22:33:55 UTC

svn commit: r1720665 - in /incubator/systemml/site: feed.xml index.html

Author: deron
Date: Thu Dec 17 21:33:55 2015
New Revision: 1720665

URL: http://svn.apache.org/viewvc?rev=1720665&view=rev
Log:
Add PNMF algorithm example to main page

Modified:
    incubator/systemml/site/feed.xml
    incubator/systemml/site/index.html

Modified: incubator/systemml/site/feed.xml
URL: http://svn.apache.org/viewvc/incubator/systemml/site/feed.xml?rev=1720665&r1=1720664&r2=1720665&view=diff
==============================================================================
--- incubator/systemml/site/feed.xml (original)
+++ incubator/systemml/site/feed.xml Thu Dec 17 21:33:55 2015
@@ -6,8 +6,8 @@
 </description>
     <link>http://yourdomain.com/</link>
     <atom:link href="http://yourdomain.com/feed.xml" rel="self" type="application/rss+xml"/>
-    <pubDate>Mon, 07 Dec 2015 14:37:31 -0800</pubDate>
-    <lastBuildDate>Mon, 07 Dec 2015 14:37:31 -0800</lastBuildDate>
+    <pubDate>Thu, 17 Dec 2015 13:24:05 -0800</pubDate>
+    <lastBuildDate>Thu, 17 Dec 2015 13:24:05 -0800</lastBuildDate>
     <generator>Jekyll v2.5.3</generator>
     
       <item>

Modified: incubator/systemml/site/index.html
URL: http://svn.apache.org/viewvc/incubator/systemml/site/index.html?rev=1720665&r1=1720664&r2=1720665&view=diff
==============================================================================
--- incubator/systemml/site/index.html (original)
+++ incubator/systemml/site/index.html Thu Dec 17 21:33:55 2015
@@ -94,23 +94,25 @@
     
 <h2 id="apache-systemml">Apache SystemML</h2>
 
-<p>SystemML provides declarative large-scale machine learning (ML) that aims at flexible specification of ML algorithms and automatic generation of hybrid runtime plans ranging from single node, in-memory computations, to distributed computations on Apache Hadoop and Apache Spark.</p>
+<p>SystemML provides declarative large-scale machine learning (ML) that aims at flexible specification of ML algorithms and automatic generation of hybrid runtime plans ranging from single-node, in-memory computations, to distributed computations on Apache Hadoop and Apache Spark.</p>
 
 <h3 id="algorithm-customizability">Algorithm Customizability</h3>
 
-<p>ML algorithms are expressed in a R or Python syntax, that includes linear algebra primitives, statistical functions, and ML-specific constructs. This high-level language significantly increases the productivity of data scientists as it provides (1) full flexibility in expressing custom analytics, and (2) data independence from the underlying input formats and physical data representations.  Automatic optimization according to data characteristics such as distribution on the disk file system, and sparsity as well as processing characteristics in the distributed environment like number of nodes, CPU, memory per node, ensures both efficiency and scalability.</p>
+<p>ML algorithms are expressed in an R-like or Python-like syntax that includes linear algebra primitives, statistical functions, and ML-specific constructs.  This high-level language significantly increases the productivity of data scientists as it provides (1) full flexibility in expressing custom analytics, and (2) data independence from the underlying input formats and physical data representations.  Automatic optimization according to data and cluster characteristics ensures both efficiency and scalability.</p>
 
-<div class="highlight"><pre><code class="language-r" data-lang="r">m <span class="o">=</span> <span class="kt">matrix</span><span class="p">(</span><span class="s">&quot;1 2 3 4 5 6 7 8 9 10 11 12&quot;</span><span class="p">,</span> rows<span class="o">=</span><span class="m">4</span><span class="p">,</span> cols<span class="o">=</span><span class="m">3</span><span class="p">)</span>
-<span class="kr">for</span> <span class="p">(</span>i <span class="kr">in</span> <span class="m">1</span><span class="o">:</span><span class="kp">nrow</span><span class="p">(</span>m<span class="p">))</span> <span class="p">{</span>
-  <span class="kr">for</span> <span class="p">(</span>j <span class="kr">in</span> <span class="m">1</span><span class="o">:</span><span class="kp">ncol</span><span class="p">(</span>m<span class="p">))</span> <span class="p">{</span>
-    n <span class="o">=</span> m<span class="p">[</span>i<span class="p">,</span>j<span class="p">]</span>
-    <span class="kp">print</span><span class="p">(</span><span class="s">&#39;[&#39;</span> <span class="o">+</span> i <span class="o">+</span> <span class="s">&#39;,&#39;</span> <span class="o">+</span> j <span class="o">+</span> <span class="s">&#39;]:&#39;</span> <span class="o">+</span> as.scalar<span class="p">(</span>n<span class="p">))</span>
-  <span class="p">}</span>
+<p><strong>Poisson Nonnegative Matrix Factorization in SystemML’s R-like Syntax</strong></p>
+
+<div class="highlight"><pre><code class="language-r" data-lang="r"><span class="kr">while</span> <span class="p">(</span>iter <span class="o">&lt;</span> max_iterations<span class="p">)</span> <span class="p">{</span>
+  iter <span class="o">=</span> iter <span class="o">+</span> <span class="m">1</span><span class="p">;</span>
+  H <span class="o">=</span> <span class="p">(</span>H <span class="o">*</span> <span class="p">(</span><span class="kp">t</span><span class="p">(</span>W<span class="p">)</span> <span class="o">%*%</span> <span class="p">(</span>V<span class="o">/</span><span class="p">(</span>W<span class="o">%*%</span>H<span class="p">))))</span> <span class="o">/</span> <span class="kp">t</span><span class="p">(</span><span class="kp">colSums</span><span class="p">(</span>W<span class="p">));</span>
+  W <span class="o">=</span> <span class="p">(</span>W <span class="o">*</span> <span class="p">((</span>V<span class="o">/</span><span class="p">(</span>W<span class="o">%*%</span>H<span class="p">))</span> <span class="o">%*%</span> <span class="kp">t</span><span class="p">(</span>H<span class="p">)))</span> <span class="o">/</span> <span class="kp">t</span><span class="p">(</span><span class="kp">rowSums</span><span class="p">(</span>H<span class="p">));</span>
+  obj <span class="o">=</span> as.scalar<span class="p">(</span><span class="kp">colSums</span><span class="p">(</span>W<span class="p">)</span> <span class="o">%*%</span> <span class="kp">rowSums</span><span class="p">(</span>H<span class="p">))</span> <span class="o">-</span> <span class="kp">sum</span><span class="p">(</span>V <span class="o">*</span> <span class="kp">log</span><span class="p">(</span>W<span class="o">%*%</span>H<span class="p">));</span>
+  <span class="kp">print</span><span class="p">(</span><span class="s">&quot;iter=&quot;</span> <span class="o">+</span> iter <span class="o">+</span> <span class="s">&quot; obj=&quot;</span> <span class="o">+</span> obj<span class="p">);</span>
 <span class="p">}</span></code></pre></div>
 
 <h3 id="multiple-execution-modes">Multiple Execution Modes</h3>
 
-<p>SystemML computations can be executed in a variety of different modes.  To begin with, SystemML can be operated in Standalone mode on a single machine, allowing data scientists to develop algorithms locally without need of a distributed cluster.  Algorithms can be distributed across Hadoop or Spark.  This flexibility allows the utilization of an organization’s existing resources and expertise.  In addition, SystemML can be operated via Java, Scala, and Python.  SystemML also features an embedded API for scoring models.</p>
+<p>SystemML computations can be executed in a variety of different modes.  To begin with, SystemML can be operated in Standalone mode on a single machine, allowing data scientists to develop algorithms locally without need of a distributed cluster.  Algorithms can be distributed across Hadoop or Spark.  This flexibility allows the utilization of an organization’s existing resources and expertise.  In addition, SystemML can be operated via Java and Scala.  SystemML also features an embedded API for scoring models.</p>
 
 <div class="highlight"><pre><code class="language-sh" data-lang="sh">// Standalone
 ./bin/systemml test.dml 
@@ -123,7 +125,7 @@ hadoop jar SystemML.jar -f test.dml</cod
 
 <h3 id="automatic-optimization">Automatic Optimization</h3>
 
-<p>Algorithms specified in DML are dynamically compiled and optimized based on data and cluster characteristics using rule-based and cost-based optimization techniques.  The optimizer automatically generates hybrid runtime execution plans ranging from in-memory single-node execution to distributed computations on Spark or Hadoop.  This ensures both efficiency and scalability.  Automatic optimization reduces or eliminates the need to hand-tune distributed runtime execution plans and system configurations.</p>
+<p>Algorithms specified in DML and PyDML are dynamically compiled and optimized based on data and cluster characteristics using rule-based and cost-based optimization techniques.  The optimizer automatically generates hybrid runtime execution plans ranging from in-memory single-node execution to distributed computations on Spark or Hadoop.  This ensures both efficiency and scalability.  Automatic optimization reduces or eliminates the need to hand-tune distributed runtime execution plans and system configurations.</p>
 
 
   </div>