{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "*(The following is a recreation of the original form of a [reponse I submitted on datascience.stackexchange.com](https://datascience.stackexchange.com/a/26136/4683) prior to significantly editing it. The edited form will correspond to future commits of this notebook.)*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "TL;DR: Use MCMC to generate samples from p(X|Y) by scoring candidate X values against the class-conditional likelihood provided by your model. MCMC will explore the candidate space of X, but will find and hang around high probability regions and avoid low probability regions.\n", "\n", "----\n", "\n", "Here's a concrete demonstration using a random forest classifier:\n", "\n", "To start, let's generate a simple multi-class classification problem and train the model:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',\n", " max_depth=None, max_features='auto', max_leaf_nodes=None,\n", " min_impurity_decrease=0.0, min_impurity_split=None,\n", " min_samples_leaf=1, min_samples_split=2,\n", " min_weight_fraction_leaf=0.0, n_estimators=80, n_jobs=1,\n", " oob_score=False, random_state=None, verbose=0,\n", " warm_start=False)" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "from sklearn.ensemble import RandomForestClassifier\n", "from sklearn.datasets import make_blobs\n", "\n", "# I didn't actually set a random seed when I originally built this demo, \n", "# so some the text diverges from the results a little in some places. But\n", "# you get the idea.\n", "np.random.seed(123)\n", "\n", "X, y = make_blobs(n_samples=1000, n_features=10, centers=5, cluster_std=1.0)\n", "\n", "RFC = RandomForestClassifier(n_estimators=80)\n", "RFC.fit(X,y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, we define our likelihood function by wrapping the model's scoring procedure to spit out an input observation's probability of belonging to the class we're interested in:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def class_cond_prob(x, model=RFC, class_id=0):\n", " if len(x.shape) == 1:\n", " x = x.reshape(1,-1)\n", " return model.predict_proba(x)[0,class_id]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There's probably a way to do this with PyMC3 or something like that, but I don't know my way around that library so I just used a \"homebrew\" MCMC implementation I found on github (https://gist.github.com/alexsavio/9ecdc1279c9a7d697ed3):" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "\n", "# via https://gist.github.com/alexsavio/9ecdc1279c9a7d697ed3\n", "def metropolis(f, proposal, old):\n", " \"\"\"\n", " basic metropolis algorithm, according to the original,\n", " (1953 paper), needs symmetric proposal distribution.\n", " \"\"\"\n", " new = proposal(old)\n", " alpha = np.min([f(new)/f(old), 1])\n", " u = np.random.uniform()\n", " # _cnt_ indicates if new sample is used or not.\n", " cnt = 0\n", " if (u < alpha):\n", " old = new\n", " cnt = 1\n", " return old, cnt\n", "\n", "def run_chain(chainer, f, proposal, start, n, take=1):\n", " \"\"\"\n", " _chainer_ is one of Metropolis, MH, Gibbs ...\n", " _f_ is the unnormalized density function to sample\n", " _proposal_ is the proposal distirbution\n", " _start_ is the initial start of the Markov Chain\n", " _n_ length of the chain\n", " _take_ thinning\n", " \"\"\"\n", " count = 0\n", " samples = [start]\n", " for i in range(n):\n", " start, c = chainer(f, proposal, start)\n", " count = count + c\n", " if i%take is 0:\n", " samples.append(start)\n", " return samples, count" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that we have all the pieces in place, let's generate some samples from p(X|Y=0):" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "samples, _ = run_chain(chainer=metropolis,\n", " f=class_cond_prob,\n", " proposal=lambda old: old + np.random.randn(1,10),\n", " start=X[y==0,:][0,:],\n", " n=10000,\n", " take=1\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's sanity check our procedure by making sure most of our observations get classified the way we want:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.74980557715809359" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "burnin=1000\n", "samples = np.concatenate(samples[burnin:])\n", "y_pred = RFC.predict(samples)\n", "np.mean(y_pred==0) # 0.57" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "57% might seem low, but remember: if we were generating random samples we'd expect this proportion to be around 20% (because we have 5 classes), so this is actually pretty reasonable. We could probably improve this a bit by playing with the proposal distribution, thinning, burnin, or maybe even just cranking up the number of samples we draw (but I'm satisfied with this proof-of-concept). \n", "\n", "*(EDIT: the step size is too big. I tried reducing the proposal variance from 1 to 1/10 and that alone caused the correctly classified proportion to jump to 72%. I'll probably tune this a bit more later, but I didn't want to have to redo all the plots so I'm just adding this note for now)*\n", "\n", "*(EDIT2: Actually, a better solution is to modify the likelihood to collapse the probability of candidates that don't get classified correctly. Will post updated code shortly)*\n", "\n", "If we want, we could completely constrain our attention to samples that actually get classified the way we want (which I think makes sense in the context of the question):" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "pos_samples = samples[y_pred==0,:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Or be even stricter and only keep samples that had really high likelihood scores, say the top 10%:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "probs = RFC.predict_proba(pos_samples)[:,0]\n", "top_ix = np.where(probs >= np.percentile(probs, 90))[0]\n", "top_samples = pos_samples[top_ix, :]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, let's visualize the distributions of our respective features, since presumably that really what you're interested in here:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "f, axes = plt.subplots(2, 5, sharex='col', sharey='row')\n", "axes = np.concatenate(axes)\n", "for i in range(10):\n", " sns.kdeplot(samples[:,i], ax=axes[i])\n", " plt.title(\"i\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And here're the distributions for just our top 10% of samples" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\ngg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f, axes = plt.subplots(2, 5, sharex='col', sharey='row')\n", "axes = np.concatenate(axes)\n", "for i in range(10):\n", " sns.kdeplot(top_samples[:,i], ax=axes[i])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, be careful how you use this information. Keep in mind: these are marginal densities, so they aren't giving us information about potentially important interactions. Because we generated the training data, we know that this class is actually a spherical (gaussian) cluster, but the random forest doesn't know that and may not be representing p(X|Y) so cleanly. We should suspect that this is the case because of the appearance of multimodal distributions in those feature distribution plots. If we visualize the 2D PCA projection of our top samples, we can see that the random forest identified several distinct high probability regions for this class, although we know apriori that there should really just be one (at the mean of the gaussian):" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAD8CAYAAAB0IB+mAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3X2QG/WZJ/DvI1mAhrzIDiaHhYdx\nWMoszoAnmcNmfbW1QMAcL0bHSwxr33G7Oairyu7FXnY2Y/AFkzLxpOYSnKu93StCdosrXGbAGGHW\nlwwsdqru2NiJHY2ZdfCEd9uyNziLxeY8CpY1z/2h7rFG0y2ppW519+j7qXJ59No/y5pHPz39/J6f\nqCqIiGjmi/g9ACIiag0GfCKiNsGAT0TUJhjwiYjaBAM+EVGbYMAnImoTDPhERG2CAZ+IqE0w4BMR\ntYlZfg+g3AUXXKBdXV1+D4OIKFT279//a1WdW+t+gQr4XV1d2Ldvn9/DICIKFRF5v577MaVDRNQm\nGPCJiNoEAz4RUZtgwCciahMM+EREbSJQVTpEldKZLAaHx3Asl8e8RBx9yxci1ZP0e1hEocSAT4GV\nzmSxbvso8oUiACCby2Pd9lEAYNAnagBTOhRYg8Njk8HelC8UMTg85tOIiMKNAZ8CK5vLO7qeiKpj\nwKdASmeytrdFRVo4EqKZgwGfAqla2qao2sKREM0cDPgUSMeqpG2SiXgLR0I0c7BKhwLFLMO0m8ML\ngL7lC1s5JKIZgwGffFNZY3/t5XPx/P7stMockwBYtbSTJZlEDWLAp4asT49i694jKKoiKoJ7l8zH\nxlS3o8c/vefw5OVsLj/lciUz2Ds5BhFN5UoOX0QSIrJNRA6JyBsico2IzBGRV0TkTePv2W4ci/xn\nBmvz5GlRFU/vOYz16dG6Hp/OZKsGdysKYPehE06HSkRl3Dpp+z0AP1LVywFcBeANAP0AXlXVywC8\nalymGWDr3iOOrgdKQX7xoy+jq38n1gyNNHTcaidyiai2plM6IvIpAL8P4D8CgKqeBnBaRG4H8AfG\n3Z4C8GMAX2/2eOQ/u7LIoiq6+nciKjKZ6imqYnZHDB+NFzDR5HHnsTqHqCluzPA/B+AEgL8VkYyI\nPCki5wP4rKoeBwDj7wutHiwiD4jIPhHZd+IEv7KHQa2FT+WpHgA46TDYRyyePh6LsjqHqEluBPxZ\nAL4A4K9VtQfAKThI36jqE6raq6q9c+fW3IOXAuDeJfM9fX5VYPPKxUgm4hCU6u433dHN6hyiJrlR\npXMUwFFV3Wtc3oZSwP+ViFykqsdF5CIAH7hwLAoAs1LGrNJx27xEHKmeJAM8kcuanuGr6j8BOCIi\n5vft6wH8AsAOAPcZ190H4MVmj0XBsTHVjbc33Yz3Bm5xdeUrUzdE3nGrSudPAWwRkdcBLAbwLQAD\nAG4QkTcB3GBcphmob/lCuNHOLCrC1A2Rh1xZeKWqIwB6LW663o3np2BL9SQbLrU0xWNRBnsij7F5\nGrmimbQOZ/ZErcGAT67oW74Q8VjU8ePisSi+8+WrGOyJWoC9dMgVZsAeHB6ruSNVPBbBbwsT3JSc\nqMUY8Mk1ZillOpNF37YDKBSnl2yuZgM0It8w4JPrzBn7oy8dxMnxAgAgEY9hw4pFnM0T+YgBnzzB\nhVNEwcOAT1VVblLCnDtReDHgk610Jot120cnd6DK5vJYt73U855Bnyh8WJZJtgaHx6ZtN5gvFDE4\nPObTiIioGQz4ZMtuwxFuREIUTkzpkK15ibhlTX21jUiY8ycKLs7wyZbV6tlq3SzN+vtsLg9FKeff\nt+0A0plsC0ZLRLUw4JOtVE8Sm+7ornsjkkdfOjhtsVWhqHj0pYMtGC0R1cKUDlXlpJ7eXGRV7/VE\n1Fqc4RMRtQkGfHJNIh5zdD0RtRYDPrlmw4pFiEWm7n0Viwg2rFjk04iIqBxz+OSa8hbJLMskCh4G\nfHIVm6YRBRdTOkREbYIBn4ioTTDgExG1CQZ8IqI2wYBPRNQmGPCJiNoEAz4RUZtgwCciahMM+ERE\nbYIBn4ioTbC1ArXE+vQotu49gqIqoiK4d8l8bEx1+z0sorbi2gxfRKIikhGRvzMuLxCRvSLypogM\nicg5bh2LwmV9ehRP7zmMopZ2wyqq4uk9h7HoGz/i9odELeRmSudrAN4ou/xtAI+r6mUATgL4iovH\nohDZuveI5fWnThexbvsogz5Ri7gS8EXkYgC3AHjSuCwArgOwzbjLUwBSbhyLwsec2VvJF4oYHB5r\n4WiI2pdbM/zNAP4CwIRx+TMAcqp6xrh8FAB75rapqEjV27O5PBb078SygV2c7RN5qOmALyK3AvhA\nVfeXX21xV8tpnog8ICL7RGTfiRMnmh0OBdC9S+bXvI+iFPiZ4iHyjhsz/GUAVojIewCeQSmVsxlA\nQkTMKqCLARyzerCqPqGqvaraO3fuXBeGQ0GzMdWN1Us767ovUzxE3mk64KvqOlW9WFW7ANwDYJeq\nrgKwG8Bdxt3uA/Bis8ei8NqY6rb82mflWC7v6ViI2pWXC6++DuDPROQtlHL6P/DwWBQC8xJxV+9H\nRM64GvBV9ceqeqvx8zuqerWq/o6q3q2qH7t5LAqfvuULa87y47Eo+pYvbMl4iNoNWytQy6R6kli1\ntHNa0DcvJxNxbLqjm5ugE3mErRWopTamutF7yRwMDo/hWC6PeYk4+pYvZJAnagEGfGq5VE+SAZ7I\nBwz4AZHOZDnrJSJPMeC3kF1QT2eyWLd9FPlCEcDZBUgAGPSJyDUM+B4zg3y2ora8PKgPDo9NBnuT\nuQCJAZ+I3MKA76HKmXulfKGINUMjto/nAiQichPLMj1kNXN34tPxmIujIaJ2x4DvoWZn6DWaTBIR\nOcKA76FmWwTkxgsujYSIiAHfU33LFyIeizb8ePaUISI38aRtk6rVz5t/W1Xp1MKeMkTkNgb8BpSX\nWgrO7uxiVT9vripd0L/TegcYC1ER9pQhIte1dcCvthDKKqADQEcsgkJRUZgoXVsZxO3q5+cl4nXP\n8r/z5asY7InIdW0b8O1Wt+57/0M8vz87eX1lQB8vTKAWM7CXf6AkOmKICDBRY5qfiMcY7InIE20b\n8O1Wt27dewRFrTf5Ym99enTKB8fJ8QJiUcF5Ean6obFhxaKmj01EZKXtAv769GjVoO5GsAeALXsO\nT/t2UCgqLvzkeZgNWKZ3OLsnIi/N6IBfmaM/UyziV7853ZJj231sHMvl8fjKxdNaLsRjUc7uichT\nMybgr0+P4uk9h21vd1oW6ZV5ifiUck22QyaiVpkRAX/V93+C197+0O9hTFNZ4VNeW89NQIio1UK/\n0jadyQYy2AOlYJ9MxCHgfq1E5L/Qz/A37Djo9xBsJRNxvNZ/nd/DICICMANm+Ll8MBuMCcDWCEQU\nKKEP+EG1amkn0zdEFCihD/gdseD9E1Yv7cTGVLffwyAimiL0Ofyg2bxyMWf2RBRIwZseO5DOZOvq\nbeOWiJQCejUM9kQUVKEO+IPDYy093oSWjpm02ZjE7noioiAIdUqn2T1jG2G3YpcblhBR0IV6hh+U\nLQAFwJ1f5MpZIgq2pgO+iMwXkd0i8oaIHBSRrxnXzxGRV0TkTePv2c0Pd6pm94x1iwLYfeiE38Mg\nIqrKjRn+GQAPqurvAlgK4KsicgWAfgCvquplAF41Lrsq1ZPEpju6686dRyOCWETcHgYAf9JLRERO\nNB3wVfW4qv7c+Pk3AN4AkARwO4CnjLs9BSDV7LGspHqSeK3/Oqxe2lnzvsUJxSfO8+a0RVDSS0RE\ndlzN4YtIF4AeAHsBfFZVjwOlDwUAF7p5rEobU91YvbQTUak+g8+NF1DjLo7xhC0RhYFrAV9EPgHg\neQBrVPVfHDzuARHZJyL7TpxoLg++MdWNtzfdjPcGbrFN88xLxLFqSe1vA/ViF0wiCgtX8hsiEkMp\n2G9R1e3G1b8SkYtU9biIXATgA6vHquoTAJ4AgN7eXnf2F0TphK7VrlLmTHzrT4+gWGtH8Qpmf/sk\nNywhohBqOuCLiAD4AYA3VPW7ZTftAHAfgAHj7xebPZYT1XaVWjawy3GwZ5AnorBzY4a/DMC/BzAq\nIiPGdQ+hFOifFZGvADgM4G4XjuWI3a5SjWx3yGBPRGHXdMBX1f+LUrbDyvXNPr/b0pnstK0H6zE4\nPMaAT0Q1pTPZwO5XHerWCo0YHB5zHOyB4GyCTkTBlc5kp5w7zOby6Nt2ABt2HMRH+QLmJeK49vK5\n2H3ohC8fCG0X8BtdICUo/WcG5ZOaiPxjN4sfHB6bUigCAIWiTu7Ml83l8fSew5O3ZXN5rNs+CqA1\nnXZD3UunEY0ukFK0vjsnEQWPOYvP5vJQlIL22qERdPXvbCgTkC8UWxZb2i7gN9N/h+0TiMhqFt9s\nPXmrYkvbBfxUTxJ3fjFZc0WuFbZPICIvgnOrYkvbBfx0Jovn92dRVOefyWyfQERuB+dWtmZpu4Bv\n9XWsHrM7YjxhS0SuBueoSEtbs7RdwG/k61g8FsUjty3yYDREFDZuBueiKgaHx5DOZF17zmraLuDX\n83Vs9dJOJBNxCNgcjYima+QcoJ3yKp9lA7s8Df5tV4dv1VStXFQEG1PdLR4VEYXJvUvmT6mnb5Z5\nRtHruvy2m+Gbu2TFY9b/9HuXzG/xiIgobCr33xAA55/jznarXtblizZQreKV3t5e3bdvX8uOtz49\niq17j6CoiqgI7l0yn7N7ImpYV/9OV55HALw7cEv99xfZr6q9te7XdimdchtT3QzwRBQ4XtXlt11K\nh4jIC26dbBV4t+anrWf4RETNKG+iFnGpckfhXSM1BnwiogZUtkJuZPW+Fbv9uN3AlA4RUQMaXbVf\njddtFhjwiYga4HYTtYgAd37ReltWtzClQ0RUhZmnz+byiIqgqIpkIo5ERwwnxwuuHWdCgef3Z9F7\nyRzPgj5n+ERENso3OwHO5umzuTz+32/PIBadeqK22dO2Xm+Gwhk+EVGZdCaLDTsOTm5LaKcwoeiI\nRXDhJ8/DsVzetRm/l5uhMOATERnSmSz6njuAwkR9FTfjhQl8yzjJ2rftgCtj8HIzFAZ8IiLD4PBY\n3cHetGZoxLXje12lw4BPNVV+xZ3dEcMjty2q+8RS+eKUeYk4+pYvZLtpCiS/9632uhV7WzdPo9rs\nvuLGooKV/3o+dh86UTWQVy5OMTn90CBqhWUDuyZP0PrhPQcN08rV2zyNAZ9spTNZPPjsAdsVhIKz\nfbzLL8/uiEEV+ChfQMQoY7MSj0W5uQwFSjqTdTVF40REgHc2eRvwWZZJlsyZebXl4pW3mJdPjheQ\nyxegqL7c3OsSNCKnUj1JuLiZlSN/uKTT82Mwh0+WvFg2bsXvnCnNbOlMFg9tfx3jhQkAgAiwakln\n1bbofiQ9ll06pyWt2hnwyVKrArGXJWjUnspXxlZSxeTWhHYBNpmItzyPf3ev97N7gCkdstGqQOxl\nCRq1n8qVsXa27j0y7XHLBnZhQf9OnPp4+gpar7Uqten5DF9EbgLwPQBRAE+q6oDXx2wnVn0+yvt9\nNFICmc5kcerjMx6N+KxEPMYTtuSqelORRVUsG9g1OeEoryTL5QuIRdwL+BEp9cmpJpvLI53Jev77\n4GmVjohEAfwSwA0AjgL4GYB7VfUXVvefSVU6rag9T2ey6Nt2AIWi/f+hWTlTb/C3K6P0wuaVixnw\nybFq60IW9O+cVkxQSz0BuRHJRByv9V9X95iaqVoLyp62VwN4S1XfMQb1DIDbAVgG/JlifXoUW/Yc\nnvxPzubyWLd9FIC7O9k8/MJo1WAPYMoY1g6NYM3QyJRvANdePndKLf346TMtCfbnzoow2JNjVutC\nTo4XJtsazGsg/+5FsC9fMVvvmMyqNS9/L7zO4ScBlCfLjhrXzVjpTHZKsDe5XYKYzmRx6rSzwGyO\nqbzj39N7DiOby0ONy262e7UTjQi+feeVnh+HZh671geFomLN0Iivi6ZMyUR8ykzdyXkqr4slvJ7h\nWyXCpvxvicgDAB4AgM7O1pyp9tLg8Jjt17dsLo+u/p1N59jN4wSVCDBLZMovptPUEpEVP8t4oyJY\n+rnZeO+f845StameJB596WBdkymviyW8DvhHAcwvu3wxgGPld1DVJwA8AZRy+B6Px3P1vCHLZ9jl\nHfac5PyDWr8eiwoG77oKgLN/D1E9GknZmCJS+nZZKw1aSQC822DLA9Mjty2qeW7M68ZpgPcB/2cA\nLhORBQCyAO4B8IceH9NXTt+QhaLi4RdGcbo4MflGzObyWGPk24FSNcuGFVP7znScE3Wc0vGCyNmF\nKpX9cRjgyW19yxc6al9sMt+bACx73Ve2CSnnxqzb/F2o1rahFW1GPA34qnpGRP4EwDBKZZl/o6oH\nvTym37o+43wGUitw5/IF9D1X+iaQ6klifXo0EMHenM0zsFOrmO+1ejYoAaybkaV6ktOq6K69fC6G\nfnZk2uw/FhHXZt2pnqTtuFtVoszmaS7yuvFStEojMj8k4jGMPHKj38OgGare0uZV3/8JXnv7w2nX\nL7t0Drbcf42j45Xn2q2+WTfLqsooFhEM3t3cxCkoZZltZcMOb7+8BCnYA6VumEReqFwPUq20ecv9\n10wL+k6Dvfm8Xs+yzef36/wWA34D7GYC9XzFnEnYB4e8YrVitlqdutPg7qdWfLDYYcB3yGp1a3mO\nvZ2wDw55xa4KLQh19mHG5mkODQ6PWZZ1Oa0aICJ7dt8eBaVJFzWGAd8hN+rfZ3fEsHppJ2Z3xFwY\nUXOiTez2EOTFXxRudt8eFXzfNYMpnTqZFQNuzOMz3yhVtmxMdU87H9BKZnMnAOj55suOxxDUxV80\ns/F91zgG/BrcDsiVM2rzBE55m+PyRSDm/rBunxAWTJ1FPXLbopqdNyvxpG24tKKDq1uqzeL5vmsc\nA74Fu+DrhnuXzLe8vtqZey9aFq9a2jnlePWsBCzXimXg5B4nZY5BUG0Wz/dd4xjwK1T+YlQL9gLn\nrRSstlWz6++97/0PsXXvERRVIQDOd6mdwmUXnm85jlRP0nZruEQ8hvPPnRWK2SFNt2HHQcsyxwef\nPYC1QyP4dDyG02eKk3u/VrbJMLXqW4Ld79XsDm6a0wwG/ApONu+OiNguybaStPgquj49OrnHpunk\neGHaTFtRasFQ6xuH2dHPauWh6Z0T47a39S1fOO3bRDwWdX3FIbVOOpO1TQmai/kqby/vMW+mHCtT\nm15+S7B7H5r9cKgxDPgVnJwQKqpO9r4v3zWnIxZBoahTSjWtUiDpTHZasK+l1sdKUbVqsDfvY8fv\nlYDkvkarWgpFnXysXUoxXyhi7dAI1g6NuPpe4fvQG+ylU2HZwK6mFneUd+WzerOuT49OpmkatXpp\np+MPinJREby96eaGH0/h0si2fyanaUtB6fyQVcqQvMNeOg2y+irphJmOicci2HTHlVNmJFbpG6ei\nItiY6rbcVatedieOaWZqpof8vETc0bdeBbBlz2H0XjKHs/EA4gzfQnmVjhuSiTg6zongzQ9ONf1c\nq43ZUyN180BjTaUo3Jrt4tpMl1a7k7/krnpn+FxpayHVk8Rr/ddh88rFiMeiTT9fNpd3NdgDZzcd\ncSIi4WoyRe5I9SSRiDe+qruZ9OPJ8QIefO4A2yEEBAN+FameJDbd0Y1zZ/n/MnXEIth96AQW9O/E\nsoFdDS3EYruf9rVhxSJXJi+NKE4oHn1pRu97FBr+R7IAM+vjPz4z4es4IlJqzpbN5aFovGOgVVko\ntQdz8pJMxCEovRdWL+2cfE+YK8C9eo/40TqEpuNJWxtWbZBbKRGP4aN8AfMScYyfPuPoF2bZpXPw\nD29/OOWkLlfGUq0+7Oa5K5q5GPBtPPrSQV+CvVVZ24L+nY6e4+7eTtzd28kaZqqbF+07KHgY8G04\n/QpqroBNNjAjNyVtArPTsrrB4TG81n8dAzzVzckK80YEoRU4MYfvmt+7dA7eG7gFr/Vfh1yDwd4u\nSPctXwgnXevZPpacauY9c/450clzA4l4DNHI1HdrLCpsiRAQnOG75B/e/hDpTBapnqTjGXkE1TsA\npnqS2Pf+h3UvtmL7WHJqVgQoNFCbEIsKHvt33VMmKmFqw9xuGPDLlL9RRZzVups78aR6kraNn+78\nYhIv/Dw7peOl1YpcKxtT3ei9ZE5dC8J4cpacSGeyjoJ9VAQTqrbB3M9Nuqk6BnzDtJNWDZyvNb8W\nV2v81EyPEfMXqVpvlI5YhL9s5IiTypx4LIpNd3TzPRZSDPiGek9axaJiW71TnkrxcpZTLWX02zMT\nk6klonrUm79nm4Tw40lbQ7U3fVRkcrHK4F1XYfXSzmknUVtZ517tJO6EWs/Y0pkslg3smlypy6Xu\nZKp1zieZiGPzysXIfONGBvuQ4wzfUG3WPKGKdwdumbyc6klO5tP9ODGV6klWbYZV+eFltb3d2qER\n7Hv/Q7axJdsOsWy0N/Mw4Bv6li/E2qERy9y41QzI7xNTiXjMtp9ORARd/TsnuxxadTtkG1sycbOR\n9sGAb7ArfQxqSwKpUphvBvfKvyuVVxZRe/N7AkOtwYBfprz00W6ms+r7P5m2haDdClkvNbK4y4pb\nPf+JKPgY8CtUm+lYBXvAn5x4M7sYEVF7aqpKR0QGReSQiLwuIi+ISKLstnUi8paIjInI8uaH6r9q\nm4ObOfFWVb/0LV/oWn9zVuwQtYdmyzJfAfB5Vb0SwC8BrAMAEbkCwD0AFgG4CcBfiYg/uy+0kJkT\nb4XK/ubNCEJLXJaNEnmvqYCvqi+r6hnj4h4AFxs/3w7gGVX9WFXfBfAWgKubOVZYtLJxmbkV4+Mr\nFzf1PH43W1ufHsXaoZEpG7ysHRpBF4M/kavczOH/MYAh4+ckSh8ApqPGddOIyAMAHgCAzs5OF4fj\nvmWXzqma1gGAhA9tYJudofvZbC2dyVo2hTMvZ3N5rBkawZqhESQTcVx7+VzsPnSC5YNEDag5wxeR\nvxeRf7T4c3vZfR4GcAbAFvMqi6eyrA1U1SdUtVdVe+fOndvIv6Flttx/DZZdOqfqfZrY77lhzZy8\nFfjbbG1weKzutkXZXB5P7zk85ZvAuu2j/AZAVKeaAV9Vv6Sqn7f48yIAiMh9AG4FsEp1MtwdBTC/\n7GkuBnDM7cH7Ycv912BzlRTKRw1sLt6M9enRph6vANYOjfiWOmk2nZQvFANxDoIoDJqt0rkJwNcB\nrFDV8bKbdgC4R0TOFZEFAC4D8NNmjhUkqZ4kEnHr1E2r0yNb9x5p+jn8nC278XrV86HBk8JEzVfp\n/CWATwJ4RURGROR/AoCqHgTwLIBfAPgRgK+q6ozaLHPDikXTyiL9WJVrt4q2EX7Mlt0oL631oWFu\nSF+eCurbdqDuoM8PC5opmjppq6q/U+W2xwA81szzB1kQ+o8seewV15+z1RU7la8jHG48AwDXXl79\n3I/VhvSFouLRlw5OObbV/6FV47l120enjJ0oLET9OMtoo7e3V/ft2+f3MELhhu/+GG9+cMr15zX3\n1vVLtc1d7NiN2dzBrNpJ7XgsOm1nsvINPpYN7LJ8vN+vE1E5Edmvqr217sfWCiGUzmQ9CfZBaBTX\nSMsIq28l03Yws1F5e75QxIYdB7Fhx0HbbqR2xyQKOgb8gEtnsnho++sYNzYdFTS0+6KtRDyGj/KF\nwNS02/Vmr8Yqh1/vDmZWqgX6asckCjoG/ABLZ7L4s2dHMFEW4d0M9oLSyWe/g3y58px+vTP9bC6P\nZQO7pnxgeTkDD8I3IaJGMOAH2ODw2JRg77ag9sM3O5ba5c+tlJ9MBeD+VyGDH62widzCgB9grcgT\nBzkX7XRsZv791MdnPFnxzBO1FHbcxDzAPm2zuMtNQc5FNzK2XL6AgsOvRQJg88rFtovpACAWFaZx\nKPQY8AOs2jaGjQjCQjEn3Oz5b0cArFpaatp36vQZy/t0xCIYvOsqpnEo9BjwA+ykS9sYAqV0RHn/\nfPNykINYZc//2R50Il21tBMbU90YHB6btjjLNF6YwJqhEfR882WusqVQYw4/oNwMLOZMPowbVZeP\nOZ3JYs3QiKvPv/vQCQD1nS84OV5A37YDk+MiChvO8AOq2Z42iXgsNDP5epglqm4zSzrr3cegUFR2\n56TQ4gw/oJqpnjn/nChGHrnRxdH4y1w161WJajaXRywiiEXFNq1TLsiVTUTVMOAHVCMtBkynThen\nLEQq7ykTFUFRNVT15I2umk0m4hg/faaucyGFCUUiHsP5587CsVweEeN1shLkyiaiatg8LaC8yFdb\n6YhF8K07rgx04G+koZoAeHfgFkevo/kYwGip/NyBaSWesaiwYocCp97maczhB1SrAsp4YQJ9z9Xf\nG94PjcyozcekepI1t6W0Ok6qJ4nBu6+aUps/uyPGYE+hxpROgEWrpBXcVJjQQLZYMPUtX4i1QyN1\nz/Ir1xdsuf8arE+P4uk9h+t+DIBQVjURVcMZfoC1Itibsrk8ugK6o1OqJzm5OKqWqIhlVdLGVDc2\nr1xsuZBrdkdsRlQyEdXCgB9gSR9ODmZzeawZGsEV//WHgQr8G1PdiMdqv12/82X7lEvlQq5kIo7N\nKxcj840bGeypLTClE2CN9IZ3i5nbB4KzyGjTHVdankg1ze6I1Rwr0zTUzjjDD7DKGam5mKoRjfTl\nMXP7QWGeSLVqsRCPRfHIbYt8GBVReLAsM2SclBnGIoLBu8+mOBopbwSA94xSxSAx1xb4tYE8UZDU\nW5bJgB9CXf0767rf5pWLpwRBJxuKlAvTIi2idsQ6/Bmsnq6RUZFpAdqq3XA9mZ5sLo++5w6g55sv\nY0FAK3mIqDYG/BCq50uZVUmnVZXK4ysX472BW2p+iBQmFCfHC1Cc3U6QQZ8oXFilE0If5Wv3hrEr\n6bSrUnnktkWOKoLyhWKgF2sR0XSc4YdQrVYDAjjeyap89l8vdo0kChcG/BCqtvWfuWVfIzPvVE8S\nr/VfZ7sitRK7RhKFC1M6IWQGc69aHpc//7FcHp+Ox3Dq9JkpveKDvh8uEU3HskyqC+veiYKr3rJM\nzvCpLmxJQBR+ruTwReTPRURF5ALjsojIfxeRt0TkdRH5ghvHISKixjUd8EVkPoAbAJQ3G/+3AC4z\n/jwA4K+bPQ4RETXHjRn+4wBfWMalAAAFT0lEQVT+ApjSpuV2AP9LS/YASIjIRS4ci4iIGtRUwBeR\nFQCyqnqg4qYkgCNll48a1xERkU9qnrQVkb8H8K8sbnoYwEMAbrR6mMV1luVAIvIASmkfdHbWt6sR\nERE5VzPgq+qXrK4XkW4ACwAckFKz9YsB/FxErkZpRj+/7O4XAzhm8/xPAHjCeM4TIvK+k3+Ayy4A\n8Gsfj9+IMI4Z4LhbKYxjBjhuJy6p504Nl2Wq6iiAC83LIvIegF5V/bWI7ADwJyLyDIAlAD5S1eN1\nPOfcRsfjBhHZV08ta5CEccwAx91KYRwzwHF7was6/P8N4GYAbwEYB/BHHh2HiIjq5FrAV9Wusp8V\nwFfdem4iImoem6dN9YTfA2hAGMcMcNytFMYxAxy36wLVS4eIiLzDGT4RUZtgwDeErR+QiAyKyCFj\nbC+ISKLstnXGuMdEZLmf46wkIjcZ43pLRPr9Ho8dEZkvIrtF5A0ROSgiXzOunyMir4jIm8bfs/0e\nqxURiYpIRkT+zri8QET2GuMeEpFz/B5jORFJiMg24z39hohcE4bXWkTWGu+PfxSRrSJyXpBfawZ8\nhLYf0CsAPq+qVwL4JYB1ACAiVwC4B8AiADcB+CsRqb2bSQsY4/gfKL22VwC41xhvEJ0B8KCq/i6A\npQC+aoy1H8CrqnoZgFeNy0H0NQBvlF3+NoDHjXGfBPAVX0Zl73sAfqSqlwO4CqWxB/q1FpEkgP+C\nUjn65wFEUfrdC+xrzYBfErp+QKr6sqqeMS7uQWlxG1Aa9zOq+rGqvotSaezVfozRwtUA3lLVd1T1\nNIBnUBpv4KjqcVX9ufHzb1AKQEmUxvuUcbenAKT8GaE9EbkYwC0AnjQuC4DrAGwz7hKocYvIpwD8\nPoAfAICqnlbVHELwWqNU6RgXkVkAOgAcR4Bf67YP+DOkH9AfA/ih8XOQxx3ksdkSkS4APQD2Avis\nuYjQ+PtC+0f6ZjNKE5gJ4/JnAOTKJghBe90/B+AEgL810lBPisj5CPhrrapZAP8NpczAcQAfAdiP\nAL/WbbEBitf9gLxSbdyq+qJxn4dRSj9sMR9mcf+glGIFeWyWROQTAJ4HsEZV/8VoIxJYInIrgA9U\ndb+I/IF5tcVdg/S6zwLwBQB/qqp7ReR7CFj6xopxTuF2lFrM5AA8h1K6slJgXuu2CPhe9wPyit24\nTSJyH4BbAVyvZ+trfR93FUEe2zQiEkMp2G9R1e3G1b8SkYtU9biR4vvAvxFaWgZghYjcDOA8AJ9C\nacafEJFZxswzaK/7UQBHVXWvcXkbSgE/6K/1lwC8q6onAEBEtgP4PQT4tW7rlI6qjqrqharaZawU\nPgrgC6r6TwB2APgPRrXOUtTZD6hVROQmAF8HsEJVx8tu2gHgHhE5V0QWoHTS+ad+jNHCzwBcZlQx\nnIPSCa4dPo/JkpH3/gGAN1T1u2U37QBwn/HzfQBebPXYqlHVdap6sfF+vgfALlVdBWA3gLuMuwVq\n3Mbv2xERWWhcdT2AXyDgrzVKqZylItJhvF/McQf2tebCqzIytQGcAPhLlCpdxgH8kaoGZod1EXkL\nwLkA/tm4ao+q/mfjtodRyuufQSkV8UPrZ2k9Y+a5GaWKhr9R1cd8HpIlEfk3AP4PgFGczYU/hFIe\n/1kAnSj9wt+tqh/6MsgajJTOn6vqrSLyOZROks8BkAGwWlU/9nN85URkMUonmc8B8A5K/bciCPhr\nLSKPAliJ0u9aBsB/QilnH8jXmgGfiKhNtHVKh4ionTDgExG1CQZ8IqI2wYBPRNQmGPCJiNoEAz4R\nUZtgwCciahMM+EREbeL/A1J0s6z9KMkUAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sklearn.decomposition import PCA \n", "\n", "pca = PCA(n_components=2)\n", "X_r = pca.fit_transform(top_samples)\n", "\n", "plt.scatter(X_r[:,0], X_r[:,1])\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.3" } }, "nbformat": 4, "nbformat_minor": 2 }