Skip to content

Instantly share code, notes, and snippets.

@quaquel
Created January 6, 2015 18:51
Show Gist options
  • Select an option

  • Save quaquel/524fcf514b88fc4d7b2d to your computer and use it in GitHub Desktop.

Select an option

Save quaquel/524fcf514b88fc4d7b2d to your computer and use it in GitHub Desktop.
prim_example_Feldman
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "",
"signature": "sha256:d435235fb824e0f74a43468cee09ea1e632756faee6c8e351c5751450bec9e8a"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"from analysis.prim import Prim"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"data = pd.read_csv('./data/example.csv', header=None)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Clean class to binary\n",
"numeric = data\n",
"numeric = numeric.replace(\"3\",0)\n",
"numeric = numeric.replace(\"2\",0)\n",
"X = numeric.ix[:,0:22]\n",
"y = numeric.ix[:,23]"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"tuples = [tuple(x) for x in X.values]\n",
"\n",
"dtype_info = [(i, object) for i in 'abcdefghijklmnopqrstuvw']\n",
"x4 = np.array(tuples,dtype=dtype_info)\n",
"yarr = {'y':np.array(y)}\n",
"results = (x4, yarr)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"prim_obj = Prim(results,'y', threshold=0.2)\n",
"box_1 = prim_obj.find_box()"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 5
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"box_1.show_ppt()\n",
"plt.show()\n",
"box_1.show_tradeoff()\n",
"plt.show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nHB2aWynIc/HXX38xbdo0duzYAUDbtm154YUXuO222+y7two7ERE3lMsonbP7+Wdzpmi5crBshbSw\nfwAAIABJREFUmVmXSsEd/Osgbd5uw4aBG7i7yt2ODkfEpblav7NmzZrMnTuX+vXrX/PafT8/P8cF\n5YaseC4uXLhAmTJl8txOa+wkW5qLby3l01rKZw6yWUuXHWfKZUYGvPYatGljDjRu2eJ6RZ0z5fPf\napavyYpeK+j/f/05ee6ko8OxizPn09Uol8VbhQoV6NGjB9WrV8fPzy/rR5zHN998Q926dalduzYA\n33//PY899pjd7bXdgYiIu3DxUbrff4ehQ+HKFdi5EwICHB2Re+oa0JXHmz9On9V9+GLIF5QqWcrR\nIYlIEXjhhRd45JFH6NixI97e3oA5utSnTx8HRyaZxo0bR1RUFD179gSgUaNGfPHFF3a311RMERF3\n4MJr6QwDVqww33o5frz5U6KEo6Nyb4ZhMGDtAG72vpmlPZbavbGyiPzD1fqdDzzwAL/88gv16tW7\nZirm8uXLHRiV+ynIc9GiRQtiY2Np3LgxcXFxgFncff/993a114idiIgrc/FRusREGDECjh2Dbdug\nQQNHR1Q8eHh4sLznclota8Wb373JY83tn+ojIq7pu+++4+eff9YfcpxY1apV+frrrwFISUlh/vz5\nWdte2ENr7CRbmotvLeXTWsoneV5Llx1H5XLtWggMNIu52Fj3Kepc5dm8yfsmNty3gWlfTOPL3790\ndDjZcpV8ugLlsni7++672b9/v6PDkBy8+eabvP7668THx+Pj40NcXByvv/663e01Yici4mpcfJTu\nzBkYPRp27YING0BbKDlOjdtq8G6vdxm4diDfDvuWKre42JtqRMRuO3fuJDAwkGrVqlGqlLm21sPD\nQ9sdOJGDBw/y/vvvX/PZ119/TevWre1qrzV2IiKuxIXX0oH5lstHHoE+fcw96kqXdnREAvDy1y+z\n+qfV7Bi6gxu9bnR0OCIuwdX6nUePHrX5ud6Maa2CPBdXr63L6bPsaMRORMQVuPgo3fnzMGECREbC\nO+9ASIijI5Krjb97PHsS9/Dox4+youcKrcERcUMq4JzXzp07+eabbzh16hTz5s3LKgzPnTtHRkaG\n3dfRGjvJlubiW0v5tFaxyqdFa+myU9i5/Oorcy3dpUvwww/uX9S54rPp4eHB0nuX8n3i9yyIXeDo\n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\nRK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x114bd8550>"
]
},
{
"ename": "AssertionError",
"evalue": "",
"output_type": "pyerr",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-6-e4ae60dc8c27>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mbox_1\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshow_ppt\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshow\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mbox_1\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshow_tradeoff\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshow\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/Domain/tudelft.net/Users/jhkwakkel/EMAworkbench/src/analysis/prim.pyc\u001b[0m in \u001b[0;36mshow_tradeoff\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 410\u001b[0m to denote the number of restricted dimensions.'''\n\u001b[1;32m 411\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 412\u001b[0;31m \u001b[0;32massert\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprim\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmode\u001b[0m\u001b[0;34m==\u001b[0m\u001b[0mCLASSIFICATION\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 413\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 414\u001b[0m \u001b[0mfig\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfigure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mAssertionError\u001b[0m: "
]
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"the trade off figure does not work. This figure requires coverage and density metrics (essentially precision and recall). These are only defined for classificatin problems and not for regression problems. The current way of calling prim, via the 'y' key results in the assumption by the algorithm that we are running a regression problem. "
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"box_1.write_ppt_to_stdout()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
" coverage density mass mean res dim\n",
"0 1.000000 0.538511 1.00000 0.538511 0\n",
"1 1.000000 0.538522 0.99998 0.538522 1\n",
"2 1.000000 0.538532 0.99996 0.538532 2\n",
"3 1.000000 0.538543 0.99994 0.538543 3\n",
"4 0.999963 0.538577 0.99984 0.538577 4\n",
"5 0.999926 0.538600 0.99976 0.538600 5\n",
"6 0.999851 0.538635 0.99962 0.538635 6\n",
"7 0.999814 0.538648 0.99956 0.538648 7\n",
"8 0.999777 0.538660 0.99950 0.538660 8\n",
"\n",
"\n"
]
}
],
"prompt_number": 7
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"box_1.show_pairs_scatter()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"ename": "ValueError",
"evalue": "could not convert string to float: No",
"output_type": "pyerr",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-8-a82910666671>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mbox_1\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshow_pairs_scatter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m/Domain/tudelft.net/Users/jhkwakkel/EMAworkbench/src/analysis/prim.pyc\u001b[0m in \u001b[0;36mshow_pairs_scatter\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 447\u001b[0m ''' \n\u001b[1;32m 448\u001b[0m return _pair_wise_scatter(self.prim.x, self.prim.y, self.box_lim, \n\u001b[0;32m--> 449\u001b[0;31m self.prim.determine_restricted_dims(self.box_lim))\n\u001b[0m\u001b[1;32m 450\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 451\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mwrite_ppt_to_stdout\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/Domain/tudelft.net/Users/jhkwakkel/EMAworkbench/src/analysis/prim.pyc\u001b[0m in \u001b[0;36m_pair_wise_scatter\u001b[0;34m(x, y, box_lim, restricted_dims)\u001b[0m\n\u001b[1;32m 143\u001b[0m \u001b[0mfc\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'b'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 144\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 145\u001b[0;31m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mscatter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx_1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx_2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfacecolor\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0medgecolor\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mec\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 146\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 147\u001b[0m \u001b[0;31m# draw boxlim\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/Domain/tudelft.net/Users/jhkwakkel/anaconda/lib/python2.7/site-packages/matplotlib/axes/_axes.pyc\u001b[0m in \u001b[0;36mscatter\u001b[0;34m(self, x, y, s, c, marker, cmap, norm, vmin, vmax, alpha, linewidths, verts, **kwargs)\u001b[0m\n\u001b[1;32m 3673\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_ymargin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0.05\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3674\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3675\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd_collection\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcollection\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3676\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mautoscale_view\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3677\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/Domain/tudelft.net/Users/jhkwakkel/anaconda/lib/python2.7/site-packages/matplotlib/axes/_base.pyc\u001b[0m in \u001b[0;36madd_collection\u001b[0;34m(self, collection, autolim)\u001b[0m\n\u001b[1;32m 1457\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1458\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mautolim\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1459\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate_datalim\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcollection\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_datalim\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtransData\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1460\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1461\u001b[0m \u001b[0mcollection\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_remove_method\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mh\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcollections\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mremove\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mh\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/Domain/tudelft.net/Users/jhkwakkel/anaconda/lib/python2.7/site-packages/matplotlib/collections.pyc\u001b[0m in \u001b[0;36mget_datalim\u001b[0;34m(self, transData)\u001b[0m\n\u001b[1;32m 187\u001b[0m \u001b[0mtransOffset\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtransOffset\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_affine\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 188\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 189\u001b[0;31m \u001b[0moffsets\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masanyarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0moffsets\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat_\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 190\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0misMaskedArray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0moffsets\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 191\u001b[0m \u001b[0moffsets\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0moffsets\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfilled\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnan\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/Domain/tudelft.net/Users/jhkwakkel/anaconda/lib/python2.7/site-packages/numpy/core/numeric.pyc\u001b[0m in \u001b[0;36masanyarray\u001b[0;34m(a, dtype, order)\u001b[0m\n\u001b[1;32m 512\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 513\u001b[0m \"\"\"\n\u001b[0;32m--> 514\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morder\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msubok\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 515\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 516\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mascontiguousarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mValueError\u001b[0m: could not convert string to float: No"
]
},
{
"output_type": "stream",
"stream": "stderr",
"text": [
"/Domain/tudelft.net/Users/jhkwakkel/anaconda/lib/python2.7/site-packages/IPython/core/formatters.py:239: FormatterWarning: Exception in image/png formatter: could not convert string to float: No\n",
" FormatterWarning,\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"<matplotlib.figure.Figure at 0x1187b8a90>"
]
}
],
"prompt_number": 8
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"this error is new to me. I am not certain, but I guess the error is due to trying to scatter categorical data. I need to look at it and make sure a more informative error messageis being raised. "
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"prim_obj.write_boxes_to_stdout()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
" coverage density mass mean res dim\n",
"box 1 0.999777 0.53866 0.9995 0.53866 8\n",
"rest 0.000223 0.24000 0.0005 0.24000 0\n",
"\n"
]
},
{
"ename": "ValueError",
"evalue": "['b' 'o' 'x' ' ' '1'] not contained in the index",
"output_type": "pyerr",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-19-cfd93821ffd3>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mprim_obj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwrite_boxes_to_stdout\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m/Domain/tudelft.net/Users/jhkwakkel/EMAworkbench/src/analysis/prim.pyc\u001b[0m in \u001b[0;36mwrite_boxes_to_stdout\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 926\u001b[0m values = pd.Series(values, \n\u001b[1;32m 927\u001b[0m index=['min','max'])\n\u001b[0;32m--> 928\u001b[0;31m \u001b[0mbox_lim\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mix\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0munc\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvalues\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 929\u001b[0m \u001b[0;32mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbox_lim\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 930\u001b[0m \u001b[0;32mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/Domain/tudelft.net/Users/jhkwakkel/anaconda/lib/python2.7/site-packages/pandas/core/series.pyc\u001b[0m in \u001b[0;36m__setitem__\u001b[0;34m(self, key, value)\u001b[0m\n\u001b[1;32m 640\u001b[0m \u001b[0;32mpass\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 641\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 642\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_set_with\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 643\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 644\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_set_with_engine\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/Domain/tudelft.net/Users/jhkwakkel/anaconda/lib/python2.7/site-packages/pandas/core/series.pyc\u001b[0m in \u001b[0;36m_set_with\u001b[0;34m(self, key, value)\u001b[0m\n\u001b[1;32m 680\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_set_values\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbool_\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 681\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 682\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_set_labels\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 683\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 684\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_set_labels\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/Domain/tudelft.net/Users/jhkwakkel/anaconda/lib/python2.7/site-packages/pandas/core/series.pyc\u001b[0m in \u001b[0;36m_set_labels\u001b[0;34m(self, key, value)\u001b[0m\n\u001b[1;32m 691\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mmask\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0many\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 692\u001b[0m raise ValueError('%s not contained in the index'\n\u001b[0;32m--> 693\u001b[0;31m % str(key[mask]))\n\u001b[0m\u001b[1;32m 694\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_set_values\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mindexer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 695\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mValueError\u001b[0m: ['b' 'o' 'x' ' ' '1'] not contained in the index"
]
}
],
"prompt_number": 19
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This appears to be a genuine error on my part. I need time to look into it. In the meatime, you might use the following instead to get the rules"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"box_1.inspect()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"coverage 0.999777\n",
"density 0.538660\n",
"mass 0.999500\n",
"mean 0.538660\n",
"res dim 8.000000\n",
"Name: 8, dtype: float64\n",
"\n",
" box 8 \n",
" min max qp values\n",
"l set([Maybe, No]) set([Maybe, No]) 0.9910371\n",
"d set([Maybe, Somewhat, No]) set([Maybe, Somewhat, No]) 0.9914282\n",
"t set([No]) set([No]) 0.9941548\n",
"c set([Maybe, Likely, No]) set([Maybe, Likely, No]) 0.9968816\n",
"n set([No]) set([No]) 0.9968816\n",
"f set([No]) set([No]) 0.997273\n",
"m set([Maybe, No]) set([Maybe, No]) 0.997273\n",
"o set([Maybe, No]) set([Maybe, No]) 0.997273\n",
"\n"
]
}
],
"prompt_number": 9
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment