Repository: incubator-systemml Updated Branches: refs/heads/master 345e1ab43 -> db92414b1
[SYSTEMML-1606] Update notebook samples with latest code Project: http://git-wip-us.apache.org/repos/asf/incubator-systemml/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-systemml/commit/db92414b Tree: http://git-wip-us.apache.org/repos/asf/incubator-systemml/tree/db92414b Diff: http://git-wip-us.apache.org/repos/asf/incubator-systemml/diff/db92414b Branch: refs/heads/master Commit: db92414b1b510f17bd7f8e54921fb93474c3b059 Parents: 345e1ab Author: Arvind Surve <[email protected]> Authored: Fri May 12 12:15:00 2017 -0700 Committer: Arvind Surve <[email protected]> Committed: Fri May 12 12:15:00 2017 -0700 ---------------------------------------------------------------------- .../SystemML-PySpark-Recommendation-Demo.ipynb | 155 +++++++++---------- 1 file changed, 74 insertions(+), 81 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/db92414b/samples/jupyter-notebooks/SystemML-PySpark-Recommendation-Demo.ipynb ---------------------------------------------------------------------- diff --git a/samples/jupyter-notebooks/SystemML-PySpark-Recommendation-Demo.ipynb b/samples/jupyter-notebooks/SystemML-PySpark-Recommendation-Demo.ipynb index 0c47c66..eceb6c7 100644 --- a/samples/jupyter-notebooks/SystemML-PySpark-Recommendation-Demo.ipynb +++ b/samples/jupyter-notebooks/SystemML-PySpark-Recommendation-Demo.ipynb @@ -4,15 +4,46 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# SystemML PySpark Recommendation Demo" + "# SystemML PySpark Recommendation Demo\n", + "\n", + "This demonstrates using SystemML for product recommendationg using Poisson NonNegative Matrix Factorization (PNMF) with PNMF algorithm written using R like syntax.\n", + "This includes following steps:\n", + " 1. Installation of SystemML library.\n", + " 2. Download and load the data.\n", + " 3. Write PNMF algorithm using R-like syntax and run it using SystemML and show losses.\n", + " 4. Uninstall SystemML library." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Install and load SystemML library" ] }, { "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": false - }, + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#!pip install --user systemml>=0.14.0\n", + "!pip install ~/git/incubator-systemml/target/systemml-1.0.0-incubating-SNAPSHOT-python.tgz" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!pip show systemml" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, "outputs": [], "source": [ "%load_ext autoreload\n", @@ -34,30 +65,9 @@ }, { "cell_type": "code", - "execution_count": 2, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - " % Total % Received % Xferd Average Speed Time Time Time Current\n", - " Dload Upload Total Spent Left Speed\n", - "\r", - " 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0\r", - " 1 11.2M 1 151k 0 0 851k 0 0:00:13 --:--:-- 0:00:13 848k\r", - " 16 11.2M 16 1887k 0 0 1601k 0 0:00:07 0:00:01 0:00:06 1600k\r", - " 31 11.2M 31 3662k 0 0 1685k 0 0:00:06 0:00:02 0:00:04 1685k\r", - " 44 11.2M 44 5135k 0 0 1615k 0 0:00:07 0:00:03 0:00:04 1614k\r", - " 61 11.2M 61 7038k 0 0 1686k 0 0:00:06 0:00:04 0:00:02 1685k\r", - " 76 11.2M 76 8816k 0 0 1703k 0 0:00:06 0:00:05 0:00:01 1734k\r", - " 90 11.2M 90 10.1M 0 0 1687k 0 0:00:06 0:00:06 --:--:-- 1708k\r", - "100 11.2M 100 11.2M 0 0 1710k 0 0:00:06 0:00:06 --:--:-- 1722k\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "%%sh\n", "# Download dataset\n", @@ -67,19 +77,9 @@ }, { "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Total number of products: 500\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "# Load data\n", "import pyspark.sql.functions as F\n", @@ -108,9 +108,9 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true }, "outputs": [], "source": [ @@ -120,9 +120,9 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true }, "outputs": [], "source": [ @@ -159,9 +159,9 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true }, "outputs": [], "source": [ @@ -172,62 +172,55 @@ }, { "cell_type": "code", - "execution_count": 7, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "<matplotlib.text.Text at 0x10ba407b8>" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAngAAAGJCAYAAAAZsU4bAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xm8XWV99/3PLwMzJCGSBBIggMxCFR+minqEMloFW6Vg\nLQhorTi1PreP0vpIrI+3Q0urlgoOKYIyieCt+FAGbzlWrAjIpEIgyHgCJIAJ85Dk/O4/1jpmZbPP\nyT7n7J09nM/79Vqvvda1pmud7Y5frrWua0VmIkmSpN4xqd0VkCRJUnMZ8CRJknqMAU+SJKnHGPAk\nSZJ6jAFPkiSpxxjwJEmSeowBT5LGICJ2iIinmr2tJDWDAU9SS0TE/RHxXEQ8FRGPRMR/RMQm5br+\niHg+IuZWtj8kIu6r2f+FiNiy5ri3RsRgRGxXLn8rIl4sz/N0+fmOmn22rax7utz/mUrZ60Z7fZl5\nX2Zu0extRysivh0Rn2rFsSV1LwOepFZJ4M1lsNkH2Bf4ZGXdM8D/W2ef6vx9wPFDBRHxKmCjOtt9\nITO3yMzNy89L1jpo5kOVdZuX++xVKft5beUjwn8fJXUt/wGT1EoBkJmPAP8JvKqy7ivA8RGx4wj7\nfxs4sbJ8InBuk+oVaxUULWFnRsR/RsTTwEER8ZaIuKVs5bs/Ij5Z2X6niBisLP8sIhZExM/L7a+I\niOmj3bZcf1JEPBARyyLitIh4KCLeMOqLjDgoIm6MiOURcX1E7FdZd0pE3Fee/56IOLYs3zkifhoR\nK8rzf2e055XUfgY8SS0XEdsCRwE3V4qXAN8APj3CrtcDm0fErmWL2rHAd6gJZ010PHB62cp3PfA0\n8JdlK+RbgA9HxFGV7Wvf9Xg88FfALGAz4KOj3TYi9gK+THGtc4GtgNmjvZCImAn8CPgnYCbwb8AV\nETEtIjYHzgAOKa/tdcDt5a6fBX6UmdOBecC/j/bck trPgCeplf5XRPwe+C/gWuBzNes/D/xpROw+\nwjGGWvEOBRYBD9fZ5mMR8fuypWrZOOr7/cy8ASAzX8rM/sy8o1z+NXAx8MYR9l+Ymfdm5gvAJcCr\nx7Dt28t6/DIzV1Lc1h5LoH0L8JvM/G5mDmbm+cC9wJvL9YPAXhGxYWYuzcxFZflKYH5EbFP+DX4x\nhnNLajMDnqRWOjozt8zMHTLzQ5n5YnVlZj4OnAl8ZoRjfAd4J/Bu4Lxhtvmn8jwzMnPWOOr7UHUh\nIg6MiGvLW5UrgFOAV4yw/6OV+ecoWuZGu+021Xpk5nPA8gbqXmsb4IGasgeAuZn5NEUL4geBRyPi\nhxGxc7nNR4ENgJsi4raIOGEM55bUZgY8Sa3USMvTPwNvAl5bb2VmPkjR2eJI4LLmVa2u2tuoF1K0\nrs0tb1kupHW3h4c8QnFrFICI2BSYMYbjPAzMrynbjuLWOJl5VWYeCswBfgd8rSxfmpnvzcxtKALg\n1yNi+zGcX1IbGfAktVVmPkkR8v6fETY7GTg4M59fP7X6g82A5Zm5MiIOAI6rWT+asNfotpcAx0TE\nfhExFfhHXh48a02NiA0r01SK5+/2iIh3RMTkiHgnsBPFc3hzIuJPI2JjYBXwbPlJuf025XGfpLiV\nu3oU1ympAxjwJLXKSKGkdt1XKAJG7fAnxUwxjtzN9dY1sW71yt4PfD4ingQ+QfEM3nD7rKtODW1b\nPuv3d8D3KFrbHgOeAF4cbh/g7ylu8w5NV5W3v99a1vtx4CMUw9asACYDH6No5XsMOJCitQ5gf+DG\nsifx94BTM3NgHdcmqcNE5nj/nRzh4BELgT8Flmbm3mXZHwFnU4xltRL4QGbeWK77CsVtmGeBd2fm\nrWX5icA/UPyj+NnMPK8s3wf4VnmsKzLzb1t2MZLUBmWP1xXAdpm5pN31kdQdWt2Cdw5weE3ZFymG\nIXgNcHq5TDn0wE6ZuTPwPooQ SETMAD5FMUjq/sDpETGtPNZZwHsycxdgl4ioPZckdZ1y/L2NI2Iz\n4F+AXxnuJI1GSwNeZl7Hy3t/DQJDAW065QO/FLcSziv3+yUwLSJmUwTEqzPzyfLWwtXAERExB9h8\naEiDct9jWnYxkrT+vI3i9umDFB0jjh95c0la25Q2nPPvgKsi4gyKh47/uCyfy9pDFAyUZbXlSyrl\nA3W2l6SulpknU3QskaQxaUcni/cDH8nM7SjC3n+U5bU9zILimbt6Pc9GKpckSZrQ2tGCd2JmfgQg\nM78XEd8syweAbSvbzaO4RTEA9NWUXzvC9nVFhOFPkiR1jcwc87ib66MFr/al3ksi4o0AEXEIsLgs\n/yFwQll+ALAiM5cCVwGHlu9PnEHxuqKrMvNR4KlyrKgo9/3BSBXJTKcunE4//fS218HJ72+iTn5/\n3Tv53XX3NF4tbcGLiAsoWt9mRsSDFL1m3wt8JSImAy8Afw2QmVdExFERcQ/FMCknleXLI+IzwE0U\nt2A/nUVnC4BTWXuYlCtbeT2SJEndoKUBLzPfOcyq/2uY7T84TPm3KIJcbfmvgL3GWD1JkqSe5Jss\n1PH6+vraXQWNg99fd/P7615+dxNbS99k0UkiIifKtUqSpO4WEWSHd7KQJEnSemTAkyRJ6jEGPEmS\npB5jwJMkSeoxBjxJkqQeY8CTJEnqMQY8SZKkHmPAkyRJ6jEGPEmSpB5jwJMkSeoxBjxJkqQeY8CT\nJEnqMQY8SZKkHmPAkyRJ6jEGPEmSpB5jwJMkSeoxBjxJkqQeM2ED3gMPwNe/3u5aSJIkNd+EDXir\nVsFnP9vuWkiSJDXfhA14O+wAv/89rFjR7ppIkiQ114QNeJMmwateBb/+dbtrIkmS1FwTNuAB7L03\n3H57u2shSZLUXBM64O21lwFPkiT1ngkd8GzBkyRJvSgys911WC8iImuvdfly2G47ePLJ4pk8SZKk\nThARZGa Mdf8JHWtmzCim++5rd00kSZKaZ0IHPPA2rSRJ6j0GvL0dKkWSJPUWA54teJIkqccY8Ax4\nkiSpx0zoXrRQvJN2iy3gscdg003bUDFJkqQaHd2LNiIWRsTSiLi9UnZRRNxcTvdFxM2VdadFxOKI\nuDMiDquUHxERiyLi7oj4eKV8fkRcHxF3RcSFETFltHWcMgV22w1++9vxXKkkSVLnaPUt2nOAw6sF\nmXlcZu6TmfsAlwKXAUTE7sCxwO7AkcBXozAJOLM8zp7A8RGxW3m4LwBnZOauwArglLFU0tu0kiSp\nl7Q04GXmdcDyETY5FrignD8auCgzV2Xm/cBiYL9yWpyZD2TmSuCicluAgylCIsC5wNvGUk8DniRJ\n6iVt62QREa8HHs3Me8uiucBDlU2WlGW15QPA3IiYCSzPzMFK+TZjqYsBT5Ik9ZJ29qI9Hriwslzv\nQcJcR3ntujH1GBkKeBOkv4kkSepxo+6U0AwRMRn4M2CfSvEAsG1leR7wMEWI2662PDMfj4jpETGp\nbMUb2n5YCxYs+MN8X18ffX19AMyaBRtsAEuWwLx5Y70qSZKksenv76e/v79px2v5MCkRMR+4PDP3\nqpQdAXw8M99UKdsDOB/Yn+K27DXAzhStjHcBhwCPADcAx2Xmooi4GLgsMy+OiLOA2zLz7GHqUXeY\nlCGHHQZ/+7dw1FHjuVpJkqTx6/RhUi4A/hvYJSIejIiTylV/wdq3Z8nMO4DvAncAVwCnZmE18EHg\nauC3FB0xFpW7fQL4aETcDWwJLBxrXX0OT5Ik9YoJP9DxkPPOgyuvhAsuGHYTSZKk9aKjW/C6iS14\nkiSpV9iCV3rxRZg+HVasgA03XI8VkyRJqmELXpNsuCHstBPceWe7ayJJkjQ+BrwKb9NKkqReYMCr\nMOBJkqReYMCrMOBJkqReYMCr2GsvA54kSep+BryKefOK3rRLl7a7JpIkSWNnwKuI8Dat JEnqfga8\nGrvsAvfe2+5aSJIkjZ0Br8acOfDoo+2uhSRJ0tgZ8GoY8CRJUrcz4NUw4EmSpG5nwKthwJMkSd3O\ngFfDgCdJkrqdAa/G7NlFwMtsd00kSZLGxoBXY7PNYMoUeOqpdtdEkiRpbAx4dXibVpIkdTMDXh0G\nPEmS1M0MeHUY8CRJUjcz4NVhwJMkSd3MgFfHnDmwdGm7ayFJkjQ2Brw6bMGTJEndzIBXhwFPkiR1\nMwNeHQY8SZLUzQx4dRjwJElSN4ucIO/kiohs9FpXroRNNoEXXoDJk1tcMUmSpBoRQWbGWPe3Ba+O\nqVNh+nR44ol210SSJGn0DHjD8DatJEnqVga8YRjwJElStzLgDcOAJ0mSupUBbxgGPEmS1K0MeMMw\n4EmSpG7V0oAXEQsjYmlE3F5T/qGIWBQRv46Iz1fKT4uIxRFxZ0QcVik/otz+7oj4eKV8fkRcHxF3\nRcSFETGlWXU34EmSpG7V6ha8c4DDqwUR0Qe8BXhVZu4F/HNZvjtwLLA7cCTw1ShMAs4sj7MncHxE\n7FYe7gvAGZm5K7ACOKVZFTfgSZKkbtXSgJeZ1wHLa4rfD3w+M1eV2zxelh8NXJSZqzLzfmAxsF85\nLc7MBzJzJXBRuS3AwcCl5fy5wNuaVXcDniRJ6lbteAZvF+AN5a3VayPitWX5XOChynZLyrLa8gFg\nbkTMBJZn5mClfJtmVdKAJ0mSulXTnlkb5TmnZ+YBEbEvcAmwI1DvdRxJ/RCa5fa1+zTtvWszZsAz\nz8CLL8KGGzbrqJIkSa3XjoD3EHAZQGbeGBGry9a4AWC7ynbzgIcpQtzLyjPz8YiYHhGTyla8oe2H\ntWDBgj/M9/X10dfXN+y2kybB7NmwdClst92wm0mSJI1bf38//f39TTteZDat0av+CSLmA5eXHSqI\niL8G5mbm6RGxC3BNZm4fEXsA5wP7U9yWvQbYmaIF7y7gEOAR4Ab guMxcFBEXA5dl5sURcRZwW2ae\nPUw9crTXuu++8O//DvvtN+rLliRJGrOIIDPr3d1sSEtb8CLiAqAPmBkRDwKnA/8BnBMRvwZeBE4A\nyMw7IuK7wB3ASuDUMpGtjogPAldThL2FmbmoPMUngIsi4jPALcDCZtbf5/AkSVI3ankLXqcYSwve\ne99btOL99V+3qFKSJEl1jLcFzzdZjMAWPEmS1I0MeCMw4EmSpG5kwBuBAU+SJHUjA94IDHiSJKkb\nGfBGYMCTJEndyIA3gtmzi4A3QToaS5KkHmHAG8Fmm8HkyfD00+2uiSRJUuMMeOvgbVpJktRtDHjr\nYMCTJEndxoC3DgY8SZLUbQx462DAkyRJ3caAtw4GPEmS1G0MeOtgwJMkSd3GgLcOBjxJktRtDHjr\nYMCTJEndxoC3DgY8SZLUbSInyHu4IiLHcq0rV8Imm8ALLxRvtZAkSWq1iCAzY6z724K3DlOnwvTp\n8MQT7a6JJElSYwx4DfA2rSRJ6iYGvAYY8CRJUjcx4DXAgCdJkrqJAa8BBjxJktRNDHgNMOBJkqRu\nYsBrgAFPkiR1EwNeAwx4kiSpmxjwGmDAkyRJ3cSA14A5c+CRR9pdC0mSpMYY8BowYwY8+yy8+GK7\nayJJkrRuBrwGTJoEW20Fy5a1uyaSJEnrZsBr0OzZsHRpu2shSZK0bga8BhnwJElStzDgNciAJ0mS\nuoUBr0EGPEmS1C1aGvAiYmFELI2I2ytlp0fEQETcXE5HVNadFhGLI+LOiDisUn5ERCyKiLsj4uOV\n8vkRcX1E3BURF0bElFZdiwFPkiR1i1a34J0DHF6n/F8yc59yuhIgInYHjgV2B44EvhqFScCZ5XH2\nBI6PiN3K43wBOCMzdwVWAKe06kIc7FiSJHWLlga8zLwOWF5nVdQpOxq4KDNXZeb9wGJgv3JanJkP\nZOZK4KJyW4CDgUvL+XOBtzWx+muxBU+SJH WLdj2D94GIuDUivhkR08qyucBDlW2WlGW15QPA3IiY\nCSzPzMFK+TatqrABT5IkdYt2BLyvAjtl5quBR4EzyvJ6rXq5jvLaddmsStYy4EmSpG7Rsk4Jw8nM\nxyqL3wAuL+cHgG0r6+YBD1OEuO1qyzPz8YiYHhGTyla8oe2HtWDBgj/M9/X10dfX13C9Z86Ep56C\nlSth6tSGd5MkSVqn/v5++vv7m3a8yGxZo1dxgoj5wOWZuVe5PCczHy3n/w7YNzPfGRF7AOcD+1Pc\nlr0G2JmilfEu4BDgEeAG4LjMXBQRFwOXZebFEXEWcFtmnj1MPXK817r11nDTTTB37rgOI0mSNKKI\nIDPr3cVsSEtb8CLiAqAPmBkRDwKnA2+KiFcDg8D9wPsAMvOOiPgucAewEji1TGSrI+KDwNUUYW9h\nZi4qT/EJ4KKI+AxwC7CwldczdJvWgCdJkjpZy1vwOkUzWvCOOAI+8hE48sgmVUqSJKmO8bbg+SaL\nUZg927HwJElS5zPgjYI9aSVJUjcw4I2CAU+SJHUDA94oGPAkSVI3MOCNggFPkiR1AwPeKBjwJElS\nNzDgjYIBT5IkdQPHwRuF1atho43gued8XZkkSWodx8FbjyZPLt5J+9hj695WkiSpXQx4o+RtWkmS\n1OkMeKNkwJMkSZ3OgDdKBjxJktTpDHijZMCTJEmdzoA3SgY8SZLU6Qx4ozRnjgFPkiR1NgPeKNmC\nJ0mSOp0Bb5Rmz4ZHH213LSRJkoZnwBslW/AkSVKn81Vlo7RqFWy8MTz/PEyZ0oSKSZIk1fBVZevZ\nlCkwYwY8/ni7ayJJklSfAW8MvE0rSZI6mQFvDAx4kiSpkxnwxsCx8CRJUicz4I2BLXiSJKmTGfDG\nwLHwJElSJzPgjYEteJIkqZMZ8MbAgCdJkjqZAW8MDHiSJKmTGfDGwIAnSZI6WUMBLyJ2iogNy/m+\niPhwRExvbdU611Zbw RNPwOrV7a6JJEnSyzXagncpsDoiXgl8HdgWuKBltepwU6fC9OlFyJMkSeo0\njQa8wcxcBbwN+LfM/Biwdeuq1fm8TStJkjpVowFvZUQcD5wI/Kgsm9qaKnUHx8KTJEmdqtGAdxJw\nIPDZzLwvInYAvrOunSJiYUQsjYjb66z7HxExGBFbVsq+EhGLI+LWiHh1pfzEiLg7Iu6KiBMq5ftE\nxO3lui81eC1NYQueJEnqVA0FvMy8IzM/nJkXRsQMYPPM/HwDu54DHF5bGBHzgD8BHqiUHQnslJk7\nA+8Dzi7LZwCfAvYF9gdOj4hp5W5nAe/JzF2AXSLiZedqFQOeJEnqVI32ou2PiC3K1rabgW9ExL+s\na7/MvA5YXmfVvwIfqyk7Gjiv3O+XwLSImE0REK/OzCczcwVwNXBERMyhCJo3lPufBxzTyPU0gwFP\nkiR1qkZv0U7LzKeAPwPOy8z9KVrgRi0i3gI8lJm/rlk1F3iosjxQltWWL6mUD9TZfr0w4EmSpE41\npdHtImJr4FjgH8Z6sojYuNz/0Hqr6yxnnXLWUT6sBQsW/GG+r6+Pvr6+kTYf0Zw5BjxJktQc/f39\n9Pf3N+14jQa8fwSuAn6emTdGxI7A4jGcbydgPnBbRAQwD7g5IvajaIHbtrLtPODhsryvpvzaEbYf\nVjXgjZcteJIkqVlqG54+/elPj+t4jXayuCQz987M95fL92bmnzd4jignMvM3mTknM3fMzB0oQtpr\nMnMZ8EPgBICIOABYkZlLKYLloRExrexwcShwVWY+CjwVEfuVYfEE4AeNXvh4GfAkSVKnarSTxbyI\n+H5ELCuHPbm07Am7rv0uAP6boofrgxFxUs0mf7jVmplXAPdFxD3A14BTy/LlwGeAm4BfAp8uO1tQ\nbrMQuBtYnJlXNnI9zTBrFjz2GAwOrq8zSpIkNSYyR3xsrdgo4hqKV5N9uyx6F/CXmVnvWbqOFBHZ\n yLWOxsyZsGhR8W5aSZKkZokIMrNef4OGNNqLdqvMPCczV5XTt4AJH2u8TStJkjpRowHv8Yh4V0RM\nLqd3AU+0smLdwIAnSZI6UaMB72SKIVIeBR4B3k7x+rIJzaFSJElSJ2q0F+2DmfnWzNwqM2dl5jEU\ngx5PaLbgSZKkTtRoC149H21aLbrU1lvDwyOOvCdJkrT+jSfgjblnR6/YYQe4995210KSJGlt4wl4\nzR1zpAvttBP87nftroUkSdLaRhwHLyKepn6QC2DjzGz0VWdt14px8FasgG23haeegpjw7ZmSJKlZ\nxjsO3ogBLTM3H+uBJ4Lp02GDDeDxxx3sWJIkdY7x3KIVsOOO3qaVJEmdxYA3Tj6HJ0mSOo0Bb5wM\neJIkqdMY8MZpp50cKkWSJHUWA944+QyeJEnqNAa8cfIWrSRJ6jQjjoPXS1oxDh7A4CBsuik88QRs\nsknTDy9Jkiag8Y6DZwveOE2aBPPnw333tbsmkiRJBQNeE/gcniRJ6iQGvCbwOTxJktRJDHhNYMCT\nJEmdxIDXBI6FJ0mSOokBrwl8Bk+SJHUSh0lpguefhxkz4NlnYfLklpxCkiRNIA6T0gE23hhe8QoY\nGGh3TSRJkgx4TWNHC0mS1CkMeE2y4452tJAkSZ3BgNcktuBJkqROYcBrEgOeJEnqFAa8JjHgSZKk\nTmHAaxKfwZMkSZ3CgNckM2fC4CD8/vftrokkSZroDHhNEuFtWkmS1BlaGvAiYmFELI2I2ytl/xgR\nt0XELRFxZUTMqaz7SkQsjohbI+LVlfITI+LuiLgrIk6olO8TEbeX677UymtphAFPkiR1gla34J0D\nHF5T9sXM/KPMfA3w/wOnA0TEUcBOmbkz8D7g7LJ8BvApYF9gf+D0iJhWHuss4D2ZuQuwS0TUnmu9\n8jk8SZLUCVoa8DLzOmB5TdkzlcVNgcFy/q3AeeU2vwSmRcRsioB4dWY+mZkrg KuBI8qWv80z84Zy\n//OAY1p2MQ2wBU+SJHWCtjyDFxH/X0Q8CLyTonUOYC7wUGWzgbKstnxJpXygzvZtY8CTJEmdoC0B\nLzM/mZnbAecDHyqLo2azALJOOesobxsDniRJ6gRT2nz+C4EfAQsoWuC2raybBzxclvfVlF87wvbD\nWrBgwR/m+/r66OvrG3bbsZg3D5YtgxdegI02auqhJUlSD+vv76e/v79px4vM1jZ6RcR84PLM3Ktc\nfmVm3lPOfwh4fWYeW3ay+EBmvjkiDgC+lJkHlJ0sbgL2oWhxvAl4bWauiIhfUrQA3kjRYeMrmXnl\nMPXIVl8rwM47w+WXw267tfxUkiSpR0UEmVnvbmVDWtqCFxEXULS+zSyfuTsdeHNE7AqsBh4A/gYg\nM6+IiKMi4h7gWeCksnx5RHyGItgl8OmyswXAqcC3gI2AK4YLd+vT0G1aA54kSWqXlrfgdYr11YL3\ngQ/ArrvChz/c8lNJkqQeNd4WPN9k0WSOhSdJktrNgNdk9qSVJEntZsBrMgOeJElqN5/Ba7JnnoGt\ntoJnn4VJxmdJkjQGPoPXYTbbDLbcEh54oN01kSRJE5UBrwUOOAB+8Yt210KSJE1UBrwWOOgg+NnP\n2l0LSZI0URnwWuCgg+C669pdC0mSNFHZyaIFVq2CGTPgwQeLT0mSpNGwk0UHmjIF9t8ffv7zdtdE\nkiRNRAa8Fnn9671NK0mS2sOA1yJ2tJAkSe3iM3gt8uyzMGsWPP44bLzxejutJEnqAT6D16E23RT2\n3BNuvLHdNZEkSRONAa+FHC5FkiS1gwGvhexoIUmS2sFn8Fpo2TLYZRd44gmYPHm9nlqSJHUxn8Hr\nYLNmwZw58JvftLsmkiRpIjHgtZjDpUiSpPXNgNdiPocnSZLWNwNeiw214E2QRx0lSVIHMOC12I47\nwuAg3H9/u2siSZImCgNei0V4m1aSJK1fBrz1wI4WkiRp fTLgrQe24EmSpPXJgY7Xg9WrYcst4Xe/\ng1e8oi1VkCRJXcSBjrvA5Mlw4IHw85+3uyaSJGkiMOCtJz6HJ0mS1hcD3npy2GHwgx84Hp4kSWo9\nA956su++sMEGtuJJkqTWM+CtJxFwyimwcGG7ayJJknqdvWjXo8ceg513hgcegGnT2loVSZLUwexF\n20W22goOOQQuvrjdNZEkSb2spQEvIhZGxNKIuL1S9sWIuDMibo2ISyNii8q60yJicbn+sEr5ERGx\nKCLujoiPV8rnR8T1EXFXRFwYEVNaeT3N4G1aSZLUaq1uwTsHOLym7Gpgz8x8NbAYOA0gIvYAjgV2\nB44EvhqFScCZ5XH2BI6PiN3KY30BOCMzdwVWAKe0+HrG7fDDYckS+M1v2l0TSZLUq1oa8DLzOmB5\nTdmPM3OwXLwemFfOvxW4KDNXZeb9FOFvv3JanJkPZOZK4CLg6HKfg4FLy/lzgbe16lqaZfJkOPFE\nW/EkSVLrtPsZvJOBK8r5ucBDlXVLyrLa8gFgbkTMBJZXwuIAsE1rq9scJ58M558PL73U7ppIkqRe\n1LaAFxH/AKzMzAuHiupslusor13XFV2Cd9oJ9twTfvjDdtdEkiT1orZ0SoiIE4GjKG6xDhkAtq0s\nzwMepghx29WWZ+bjETE9IiaVrXhD2w9rwYIFf5jv6+ujr69vHFcxPkOdLd7+9rZVQZIkdYj+/n76\n+/ubdryWj4MXEfOByzNzr3L5COAM4A2Z+URluz2A84H9KW7LXgPsTNHKeBdwCPAIcANwXGYuioiL\ngcsy8+KIOAu4LTPPHqYebR8Hr+q552DePLjtNth223VvL0mSJo6OHgcvIi4A/hvYJSIejIiTgH8D\nNgOuiYibI+KrAJl5B/Bd4A6K5/JOzcJq4IMUvW9/S9ERY1F5ik8AH42Iu4Etga7purDJJvAXfwHn\nntvumkiSpF7jmyza6Kab4Nhj4Z5 7YFK7u7tIkqSO0dEteBrZa18LW2xhZwtJktRctuC12U9+Au9+\ndzHw8RZbrHNzSZI0AYy3Bc+A1wHe+16YOhW++tV210SSJHUCA16DOjngrVgBr3oVXHABvOEN7a6N\nJElqN5/B6wHTp8OZZ8J73gPPP9/u2kiSpG5nC14HOfbY4i0Xn/tcu2siSZLayVu0DeqGgLd0Key9\nN1x5JbzmNe2ujSRJahdv0faQ2bPhi1+Ek0+GlSvbXRtJktStDHgd5oQTYNYs+Od/bndNJElSt5rS\n7gpobRHwta/BgQfC7rvDMce0u0aSJKnbGPA60Pz58KMfwZFHwqabwqGHtrtGkiSpm3iLtkO99rVw\n2WXwzndXb0zOAAAQmElEQVTCdde1uzaSJKmbGPA62EEHFYMf/9mfwa9+1e7aSJKkbmHA63CHHgrf\n+Aa8+c3w29+2uzaSJKkb+AxeFzj6aHjmGTjsMLjmGthjj3bXSJIkdTJb8LrEX/5l8YaLN7wB/vVf\nYfXqdtdIkiR1Kt9k0WXuuQdOOqmYP+cceOUr21sfSZLUfL7JYoJ55Suhvx/+/M/hgAPgzDNhcLDd\ntZIkSZ3EFrwudtddRWveBhsUt28PPLDdNZIkSc1gC94Etuuu8LOfwXHHFdOf/EnRutdjOVaSJI2S\nLXg9YuVK+M534H/+T5g9Gz75STj88OLVZ5IkqbuMtwXPgNdjVq2CSy6Bz34WpkyB97+/6IG72Wbt\nrpkkSWqUAa9BEyXgDRkchB//GM46C3760+KVZ+9/P+y5Z7trJkmS1sWA16CJFvCqHnqoeBvGN79Z\n9MI9/ng45hjYeut210ySJNVjwGvQRA54Q1auhB/9CL73PbjiCth9d3jb24rJ8fQkSeocBrwGGfDW\n9tJLcO218P3vww9+ADNmwMEHw5veBG98I7ziFe2uoSRJE5cBr0EGvOENDsLNNxdDrFx7LVx3HWy/\nfRH2Dj20+N x003bXUpKkicOA1yADXuNWrYJf/aoIe1ddVcwfeCAceWQx7bKLw69IktRKBrwGGfDG\n7qmn4H//7+K5vf/8T5g6FQ45ZM0tXTtrSJLUXAa8BhnwmiMT7rgDfvKTooWvv78YWPlNb4L99y86\nbuy2G2yxRbtrKklS9zLgNciA1xqrV8NttxWB75ZbYNGi4h2506YVQW/33YtbukPT9tvD5MntrrUk\nSZ3NgNcgA976MzgIAwNw553FtHgx3H13MS1bBjvsUAzLstNOa0/bbw8bbtju2kuS1H4GvAYZ8DrD\n88/D735XhL7f/W7taWCgGK5l661fPm2zzZppzpziOUBJknpVRwe8iFgI/CmwNDP3LsveDiwAdgf2\nzcybK9ufBpwMrAI+kplXl+VHAF8CJgELM/MLZfl84CJgBnAz8FeZuWqYuhjwOtyqVUUL3yOPrD09\n/PDan8uWwfTpRdgbCn/Vz623LkLgnDmw0UbtvipJkkav0wPeQcAzwHmVgLcrMAh8DfgfQwEvInYH\nLgD2BeYBPwZ2BgK4GzgEeBi4ETguMxdFxMXA9zLzkog4C7g1M782TF0MeD1i9eq1g2BtAHz00eJz\n6VLYZJMi6M2aVQzePHNmMQ3Nb7EFbL752tNQmc8KSpLaZbwBb0ozK1MrM6+LiO1ryu4CiHjZSGpH\nAxeVLXD3R8RiYD+KgLc4Mx8o97uo3HYRcDBwfLn/uRQtg3UDnnrH5MlrWupGkgnLl69p9XviCXj8\n8eJzYKDoHPL002tPzzxTDAvzzDPF4M7TphWthdOnF4Fw1qz60+zZsOWWMGnS+vkbSJI0kpYGvFGa\nC/yisrykLAvgoUr5ALBfRMwElmfmYKV8m/VRUXWHiCJ0bbkl7Lnn6PYdHCwC34oV8OSTRVB84oki\nKC5bVvQU/tnPilbCZcuKz6efLloGZ89e02K41VZrPmfOhM02K4Lj0LTJJsW08cbFZECUJDV DJwW8\nes2QSfHcXb3yqLOP92DVFJMmFa1306Y1vs9LL8FjjxVh77HHitbCoc9bbikC4jPPwLPPrj099xy8\n8EIxTZ1aBL2NNloT/qrTxhvXXx7aZ+hzaH7DDetPG2xQTFOnrpk3XEpS7+ikgDcAbFtZnkfxzF0A\n29WWZ+bjETE9IiaVrXhD2w9rwYIFf5jv6+ujr6+vOTWXKELS3LnFNBaZRUh8/vk103PPrT09++ya\n8ur65cuL5RdeWPvzxRfXnl54oTjHypXF59D8iy8WLZ6TJ8OUKS//rFc2efLa05QpRWAc+hya33DD\nInAOfVYDaDWg1gbY6nw1sPqaPEm9qL+/n/7+/qYdr+XDpJQ9XS/PzL1qyq+l6GTxq3J5D+B8YH+K\nW7PXUHSymATcRdHJ4hHgBtbuZHFZZl5cdrK4LTPPHqYedrKQRjA4WPRkXr16zefKlcVntaz2s7p+\n1apin5Ur18y/9NKaFsqhkFkbYqthtV64re5fDYzVoFmdjyhaJBudarefPPnl89WwOzQNtYBW61Tb\nSlptLa3WceiYtcuj+WzkWoa2NxhL3aXTe9FeAPQBM4GlwOnAcuDfgFcAKyh6vh5Zbn8acAqwkpcP\nk/Jl1gyT8vmyfAfWDJNyC/CuzFw5TF0MeFKXGxxcExJffPHlQXPVqmKbwcGiRXRofvXqtZeHK8ss\nyqvbDM1Xg21tgK22kA59DgXdoZbSl15au65Dx6/OD/dZW1Y71V7L0HVUrwfWhL2hFtbqtPHG9XuU\nb7MNzJtXtEzPm1dMm2/e3v8dSBNBRwe8TmLAkzSRDYW9oZbZ2um5517eq/zJJ4te6AMDsGRJ8Tkw\nUITEoccRttlmzeemm67dernhhkV4rNc6Wm0RHWrdHGmqtnRKE4EBr0EGPEkav8wi+C1Zsvb08MPF\nrfWhFs1qy+VQ62JtS+RQS2j19n71dn+1tXQonMLwz4TWeza0ejs7ov 4Ea39Wb2fXztduN3RLvPaz\n9jZ87S354dbX3lavdwu+9vzDXUe9z0bm1/V3Ge7vONL62r9/7d9suEcLqvPDfbfrenRhuO+okfrV\nWx7pf0vV9bV/39Ey4DXIgCdJ3W8oIA73TGjts6HVQJn58gnW/qz+30TtfL3tqo8D1HsMoPZW+7pu\n0VfLh85TLa+ef6TrqPfZyPy6/i71zt3o+up3UG+++lnv7zHc37D2s/Z7qD66UO989eo0Un3rLdeu\nq1UvxFaX63Vae+ghA15DDHiSJGl9Gi4A1j4vW2/afvsOfpOFJEnSRFV7y3998nFVSZKkHmPAkyRJ\n6jEGPEmSpB5jwJMkSeoxBjxJkqQeY8CTJEnqMQY8SZKkHmPAkyRJ6jEGPEmSpB5jwJMkSeoxBjxJ\nkqQeY8CTJEnqMQY8SZKkHmPAkyRJ6jEGPEmSpB5jwJMkSeoxBjxJkqQeY8CTJEnqMQY8SZKkHmPA\nkyRJ6jEGPEmSpB5jwJMkSeoxBjxJkqQeY8CTJEnqMQY8SZKkHmPAkyRJ6jEGPEmSpB5jwJMkSeox\nBjxJkqQe09KAFxELI2JpRNxeKZsREVdHxF0RcVVETKus+0pELI6IWyPi1ZXyEyPi7nKfEyrl+0TE\n7eW6L7XyWiRJkrpFq1vwzgEOryn7BPDjzNwV+AlwGkBEHAnslJk7A+8Dzi7LZwCfAvYF9gdOr4TC\ns4D3ZOYuwC4RUXsu9YD+/v52V0Hj4PfX3fz+upff3cTW0oCXmdcBy2uKjwbOLefPLZeHys8r9/sl\nMC0iZlMExKsz88nMXAFcDRwREXOAzTPzhnL/84BjWnYxahv/kepufn/dze+ve/ndTWzteAZvVmYu\nBcjMR4FZZflc4KHKdgNlWW35kkr5QJ3tJUmSJrRO6mQRdZazTjnrKJckSZrQIrO1mSgitgcuz8y9\ny+U7gb7MXFreZr02M3ePiLPL+YvL7RYBbwTeV G7/N2X52cC1wE+H9i3LjwPemJnvH6Yehj9JktQ1\nMrNeY1ZDpjSzIsMI1m5t+yHwbuAL5ecPKuUfAC6OiAOAFWUIvAr4bNmxYhJwKPCJzFwREU9FxH7A\njcAJwFeGq8R4/kiSJEndpKUBLyIuAPqAmRHxIHA68Hngkog4GXgQeAdAZl4REUdFxD3As8BJZfny\niPgMcBPFLdhPl50tAE4FvgVsBFyRmVe28nokSZK6Qctv0UqSJGn96qROFi0REUdExKJyMOSPt7s+\nGllEzIuIn0TEHRHx64j4cFk+7ADZ6iwRMSkibo6IH5bL8yPi+vK7uzAi1sejIRqDiJgWEZdExJ0R\n8duI2N/fXneIiL+LiN+Ug/+fHxEb+NvrXM16EcRIejrgRcQk4EyKsfT2BI6PiN3aWyutwyrgo5m5\nB3Ag8IHyO6s7QLY60keAOyrLXwDOKL+7FcApbamVGvFlisdddgf+CFiEv72OFxHbAB8C9ik7NE4B\njsffXicb94sg1qWnAx6wH7A4Mx/IzJXARawZWFkdKDMfzcxby/lngDuBebx8gGwHte5AETEPOAr4\nZqX4YODScv5c4G3ru15at4jYHHh9Zp4DkJmrMvNJ/O11i8nApmUr3cbAwxSjUPjb60BNehHEiHo9\n4A03eLK6QETMB14NXA/Mrhkge6v21Uwj+FfgY5RjUkbETGB5Zg6W6weAbdpUN41sR+DxiDinvMX+\n9YjYBH97HS8zHwbOoOi4uAR4EriZYjQKf3vdo9EXQQy98GFEvR7wHAy5S0XEZsD3gI+ULXl+bx0u\nIt4MLC1bYId+e7XDJIHfZaeaAuwD/Htm7kMxmsEn8PvqeBExnaKVZ3uKELcpcGSdTf0uu9OYskyv\nB7wBYLvK8jyKZmt1sPIWw/eAb2fm0DiJS4eapMsBspe1q34a1uuAt0bEvcCFFLdmv0RxO2Ho3xp/\ng51rAHgoM28qly+lCHz+ 9jrfnwD3ZubvM3M18H3gj4Hp/va6ynC/tQFg28p2DX2XvR7wbgReGRHb\nR8QGwHEUAyqrs/0HcEdmfrlSNjRANsCJrBkgWx0iM/8+M7fLzB0pfms/ycx3Ubx55h3lZn53Haq8\nNfRQROxSFh0C/BZ/e93gQeCAiNgoIoI1352/vc423Isg4OUvgjgBoPoiiHUevNfHwYuIIyh6hk0C\nFmbm59tcJY0gIl4H/Bfwa4om6AT+HrgB+C7Ff8U8CLyjMuC1OkxEvBH4vzPzrRGxA0UHpxnALcC7\nyk5P6jAR8UcUHWSmAvdSDDg/GX97HS8iTqf4D6uVFL+z91C09Pjb60DVF0EASyleBPG/gEuo81uL\niDOBIyhfBJGZN6/zHL0e8CRJkiaaXr9FK0mSNOEY8CRJknqMAU+SJKnHGPAkSZJ6jAFPkiSpxxjw\nJEmSeowBT9KEEhFPl5/bR8TxTT72aTXL1zXz+JLUKAOepIlmaPDPHYB3jmbHymufhvP3a50o86DR\nHF+SmsWAJ2mi+hxwUETcHBEfiYhJEfHFiPhlRNwaEe+F4q0cEfFfEfED4I6y7PsRcWNE/Doi3lOW\nfQ7YuDzet8uyp4dOFhH/VG5/W0QcWzn2tRFxSUTcObSfJI3XlHZXQJLa5BOUr1MDKAPdiszcv3x3\n9c8j4upy29cAe2bmg+XySZm5IiI2Am6MiEsz87SI+EBm7lM5R5bH/nNg78zcKyJmlfv8tNzm1cAe\nwKPlOf84M/+7lRcuqffZgidJhcOAEyLiFuCXwJbAzuW6GyrhDuBvI+JW4HqK933uzMheB1wIkJnL\ngH5g38qxH8nivZG3AvPHfymSJjpb8CSpEMCHMvOatQoj3kjxgu/q8sHA/pn5YkRcC2xUOcZwxx5u\n+cXK/Gr8d1lSE9iCJ2miGQpXTwObV8qvAk6NiCkAEbFzRGxSZ/9pwPIy3O0GHFBZ99LQ/jXn+i/g\nL8r n/LYCXg/c0IRrkaS6/C9FSRPNUC/a24HV5S3Zb2XmlyNiPnBzRASwDDimzv5XAn8TEb8F7gJ+\nUVn3deD2iPhVZv7V0Lky8/sRcQBwGzAIfCwzl0XE7sPUTZLGJYrHPiRJktQrvEUrSZLUYwx4kiRJ\nPcaAJ0mS1GMMeJIkST3GgCdJktRjDHiSJEk9xoAnSZLUYwx4kiRJPeb/AMtx625KlXCeAAAAAElF\nTkSuQmCC\n", - "text/plain": [ - "<matplotlib.figure.Figure at 0x10b9beeb8>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "# Plot training loss over time\n", - "xy = losses.toDF().sort(\"__INDEX\").map(lambda r: (r[0], r[1])).collect()\n", + "xy = losses.toDF().sort(\"__INDEX\").rdd.map(lambda r: (r[0], r[1])).collect()\n", "x, y = zip(*xy)\n", "plt.plot(x, y)\n", "plt.xlabel('Iteration')\n", "plt.ylabel('Loss')\n", "plt.title('PNMF Training Loss')" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Uninstall/Clean up SystemML Python package and jar file" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!yes | pip uninstall systemml" + ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 2", "language": "python", - "name": "python3" + "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 3 + "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.5.2" + "pygments_lexer": "ipython2", + "version": "2.7.11" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 }
