Skip to content

Instantly share code, notes, and snippets.

@chrisburr
Last active February 25, 2016 15:57
Show Gist options
  • Save chrisburr/f0590f761e9e237616c2 to your computer and use it in GitHub Desktop.
Save chrisburr/f0590f761e9e237616c2 to your computer and use it in GitHub Desktop.
TensorProb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from matplotlib import pyplot as plt\n",
"from matplotlib_hep import histpoints\n",
"import numpy as np\n",
"from tensorprob import Model, Parameter, Normal, Exponential, Mix2, Polynomial, config "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Create the model"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"with Model() as model:\n",
" mu = Parameter()\n",
" sigma1 = Parameter(lower=0)\n",
" a = Parameter(lower=0)\n",
" f = Parameter(lower=0, upper=1)\n",
"\n",
" X1 = Normal(mu, sigma1, bounds=[(0, 19.3), (20.5, 90)])\n",
" X2 = Exponential(a, bounds=[(0, 3), (6, 10), (13, 100)])\n",
" X_ = Mix2(f, X1, X2, lower=0, upper=25)\n",
"\n",
"model.observed(X_)\n",
"model.initialize({\n",
" mu: 23,\n",
" sigma1: 0.5,\n",
" a:0.3,\n",
" f: 0.2\n",
"})"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Make some data"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"exp_data = np.random.exponential(10, 5000)\n",
"exp_data = exp_data[~(((3 <= exp_data) & (exp_data <= 6)) | ((10 <= exp_data) & (exp_data <= 13)))]\n",
"norm_data = np.random.normal(20, 2, 3000)\n",
"norm_data = norm_data[~((19.3 <= norm_data) & (norm_data <= 20.5))]\n",
"data = np.concatenate([exp_data, norm_data])\n",
"data = data[(0 <= data) & (data <= 25)]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Look at the inital fit conditions"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7fb3680b4940>]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAEACAYAAABfxaZOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt4VOW1+PHvSiJ3FYICCmgRCgIaoijagiYKKrRWvNQe\ntdpqe6x9aGIL7antOR4Jas8px6dQwaLVn3rs1dZDVaqteCNa2kIiYkAExQtIALkGDCqYy/r9sWfC\nzmQue2b23NfneeZhZs/eMyubmTXvXu+73y2qijHGmMJQlOkAjDHGpI8lfWOMKSCW9I0xpoBY0jfG\nmAJiSd8YYwqIJX1jjCkgnpK+iEwVkQ0i8paI3BLm+UtEpEFEVotInYhMdD23yf2cn8EbY4yJj8Qa\npy8iRcBbwGRgG1APXKWqG1zr9FLVjwP3TwX+qKqjA4/fBcaralNq/gRjjDFeeWnpTwA2qupmVW0B\nHgWmu1cIJvyAPkC767F4fB9jjDEp5iUZDwa2uB43BpZ1IiKXish64M/AN1xPKfCciNSLyI3JBGuM\nMSY5vrXAVfWJQEnnUuBO11MTVfV04AvAd0Rkkl/vaYwxJj4lHtbZCpzgejwksCwsVV0uIieJSKmq\n7lXV7YHlu0TkcZxy0fLQ7UTEJgEyxpg4qarEs76Xln49MEJEThSRbsBVwBL3CiIy3HX/dKCbqu4V\nkV4i0iewvDdwIfB6lOBz8jZ79uyMx2DxZz4Oiz83b7kcfyJitvRVtU1EqoBncX4kHlTV9SJyk/O0\n3g9cISJfAz4FPgG+Eth8IPB4oBVfAvxWVZ9NKFJjjDFJ81LeQVWfAUaFLPul6/7/AP8TZrv3gPIk\nYzTGGOMTG0rpg8rKykyHkBSLP7Ms/szK9fjjFfPkrHQREc2WWIwxJheICJqCjlxjjDF5wpK+McYU\nEEv6xhhTQCzpG2NMAbGkb4wxBcSSvjHGFBBL+sYYU0As6RtjTAGxpG+MMQXEkr4xxhQQS/rGGFNA\nLOkbY0wBsaRvjDEFxJK+McYUEEv6xhhTQCzpG2NMAbGkb4wxBcSSvjHGFBBL+sYYU0As6RtjTAGx\npG+MMQXEU9IXkakiskFE3hKRW8I8f4mINIjIahGpE5GJXrfNdaowb57zrzHGZDvRGNlKRIqAt4DJ\nwDagHrhKVTe41umlqh8H7p8K/FFVR3vZ1vUaGiuWbKQKRUWwZQsMGZLpaIwxhUREUFWJZxsvLf0J\nwEZV3ayqLcCjwHT3CsGEH9AHaPe6bb54/fVMR2CMMbF5SfqDgS2ux42BZZ2IyKUish74M/CNeLbN\nZcGDk3XrMhuHMcZ4UeLXC6nqE8ATIjIJuBO4IN7XqKmp6bhfWVlJZWWlX+GlnLX0jTGpVltbS21t\nbVKv4aWmfzZQo6pTA49/BKiqzo2yzTvAmcBIr9vmak2/rQ1KSuDMM6GuLtPRGGMKSapq+vXACBE5\nUUS6AVcBS0LeeLjr/ulAN1Xd62XbfPHGG9DeHns9Y4zJpJjlHVVtE5Eq4FmcH4kHVXW9iNzkPK33\nA1eIyNeAT4FPgK9E2zZFf0tGqEJxMZSWwqZNcNJJmY7IGGMii1neSZdcLe+0tkKPHnDBBTBjBnzp\nS5mOyBhTKFJV3jFRBH+nTjnFOnONMdnPkr4PRCzpG2NygyV9n4wda2P1jTHZz2r6Sfr0U+jTB5qa\n4JhjoLnZGcJpjDGpZjX9DOrdGwYPhrffznQkxhgTmSX9JKk6NX2wEo8xJvtZ0veRdeYaY7KdJf0k\nuVv6p5wCa9dmNh5jjInGkr6PyspgzZpMR2GMMZFZ0k+Se8DRqFHQ2AgHDmQuHmOMicaSvg+C5Z2S\nEhgzxko8xpjsZUnfZ+Xl8NprmY7CGGPCs6SfJHdHLsC4cdDQkLl4jDEmGkv6PrOWvjEmm1nST1Jo\nS7+szBmr39aWuZiMMSYSS/o+O/poGDDApmMwxmQnS/pJCm3pg9X1jTHZy5J+Clhd3xiTrSzpp0B5\nubX0jTHZyZJ+kiKVd6ylb4zJRpb0U+DEE+Gjj2D37kxHYowxnVnST1K4lr6ItfaNMdnJkn6KnHYa\nrF6d6SiMMaYzT0lfRKaKyAYReUtEbgnz/DUi0hC4LReRMtdzmwLLV4tInZ/BZ4NwLX2AM86AV15J\nfzzGGBNNzKQvIkXAPcBFwFjgahE5OWS1d4FzVXUccCdwv+u5dqBSVU9T1Qn+hJ39xo+HVasyHYUx\nxnTmpaU/AdioqptVtQV4FJjuXkFVV6jq/sDDFcBg19Pi8X1ykns+fbeRI2HnTmhqSm88xhgTjZdk\nPBjY4nrcSOekHupfgb+6HivwnIjUi8iN8YeY/cKVd4qLnbq+tfaNMdmkxM8XE5HzgBuASa7FE1V1\nu4gci5P816vq8nDb19TUdNyvrKyksrLSz/DS7owznKQ/ZUqmIzHG5IPa2lpqa2uTeg3RSPWJ4Aoi\nZwM1qjo18PhHgKrq3JD1yoDFwFRVfSfCa80GmlV1XpjnNFYs2aipCU46KXwZ53e/g8cfh8ceS39c\nxpj8JyKoaphaQ2Reyjv1wAgROVFEugFXAUtC3vgEnIR/nTvhi0gvEekTuN8buBB4PZ4Ac5mN4DHG\nZJuY5R1VbRORKuBZnB+JB1V1vYjc5Dyt9wP/CZQCi0REgJbASJ2BwOMiooH3+q2qPpuqPyYTIg3Z\nBBgxwjkC2LMH+vdPb1zGGBNOzPJOuuRqeWfvXie5790b/vnzzoMf/xguvDC9cRlj8l+qyjsmimgt\nfbASjzEmu1jST7HgCB5jjMkGlvSTFKsiNX68tfSNMdnDkr4PopV3hg+H5mbYsSN98RhjTCSW9FNM\nBCZMgJUrMx2JMcZY0k9arI5cgM99DlasSE88xhgTjSX9NDj7bPjnPzMdhTHGWNJPmpeW/oQJTmdu\na2t6YjLGmEgs6adBv34wZAisW5fpSIwxhc6SfpK8nkR89tlW1zfGZJ4lfR/EKu+AJX1jTHawpJ+k\neFr61plrjMk0S/o+8NLSHzsWtm6NPDGbMcakgyX9NCkpgTPPhLq6TEdijClklvST5GXIZpDV9Y0x\nmWZJP43OPhv+8Y9MR2GMKWSW9JMUT0t/4kRnDh47ScsYkymW9NOof3/nJK2GhkxHYowpVJb0kxTv\nFR7POQf+9rfUxGKMMbFY0veB1/IOOEn/5ZdTF4sxxkRjST9JibT0ly+PfztjjPGDJX0fxNPSP+EE\n6NkT3nwzdfEYY0wklvQzwOr6xphM8ZT0RWSqiGwQkbdE5JYwz18jIg2B23IRKfO6ba6LZ8hm0Lnn\nWtI3xmRGzKQvIkXAPcBFwFjgahE5OWS1d4FzVXUccCdwfxzbFhxr6RuTmFWrnPNdPvgg05HkLi8t\n/QnARlXdrKotwKPAdPcKqrpCVfcHHq4ABnvdNtcl0tI/+WQ4cAC2bElNTMbkq3nznLPaH3oo05Hk\nLi9JfzDgTk+NHE7q4fwr8NcEty0IIjBpkrX2jYmHKrzwAixYALW1mY4md5X4+WIich5wAzApke1r\namo67ldWVlJZWelLXKmU6NDLykpYtgyuucbXcIzJW9u3Q1sbfPnLcMcdmY4mM2pra6lN8hfPS9Lf\nCpzgejwksKyTQOft/cBUVW2KZ9sgd9LPJfGWdwAmT4a77/Y/FmPy1ZtvwujRMGgQfPIJ7N8PRx+d\n6ajSK7QxPGfOnLhfw0t5px4YISInikg34CpgiXsFETkBWAxcp6rvxLNtrku0pT92LHz0Ebz3nr/x\nGJOv3nsPhg1zGlkjRsDbb2c6otwUM+mrahtQBTwLrAMeVdX1InKTiHwrsNp/AqXAIhFZLSJ10bZN\nwd+RUYm09EXg/PPhxRf9j8eYfPTee3DSSc79ESNg48bMxpOrPNX0VfUZYFTIsl+67t8I3Oh1W+MI\nJv1vfjPTkRiT/d59F6ZOde5/9rOW9BNlZ+QmKZEhm0GTJztJ3+bhMSa2YHkHYOhQaGzMbDy5ypJ+\nBg0bBt27w/q8K3gZ47+tW53rUQAcd5wzmsfEz5J+kpJppYs4rf0XXvAvHmPykSrs2AEDBjiPLekn\nzpK+DxIt74B15hrjRXMzHHEE9OrlPLaknzhL+klKth5//vnO2YVtbb6EY0xe2rEDBg48/HjQINi5\n0743ibCk74NkWvrHHQeDB8Mrr/gXjzH5ZufOw6UdgG7dnBOzdu/OXEy5ypJ+Fpg6FZ55JtNRGJO9\nQlv6YCWeRFnST1IyQzaDpk2zpG9MNO5O3KBjjoE9ezITTy6zpJ8FJk2CdevsA2xMJDt3dm3p9+9v\n5Z1EWNJPkh8t/e7doaICnnvOn5iMyTfhWvr9+1tDKRGW9LOElXiMiSxcS9/KO4mxpJ8kv6ZQmDoV\nli6F9nZ/Xs+YfBKuI9fKO4mxpO+DZMs74MweeNRR0NCQ/GsZk2927YJjj+28zMo7ibGknyQ/J0uz\noZvGhNfUBP36dV5m5Z3EWNL3gR8tfXCS/l/+4s9rGZMvVGHfPujbt/NyK+8kxpJ+FjnvPFizxj7I\nxrgdPAhFRdCjR+flVt5JjCX9JPkxZDOoRw+YMgWeftqf1zMmHzQ1dW3lgyX9RFnSzzLTp8OTT2Y6\nCmOyR7jSDjhz73z8MbS0pD+mXGZJP0l+X/XqC19w5tc/eNDf1zUmV+3b17UTF5yST79+1tqPlyV9\nH/hV3gFnREJ5uV1YxZigSOUdsBJPIizpJykV17e1Eo8xh0Vq6QOUljo/CsY7S/o+8LOlD3DJJfDn\nP9vZucZA5Jo+OMv37UtvPLnOkn6SUtHSHzHCacHU1/v/2sbkmmjlHUv68fOU9EVkqohsEJG3ROSW\nMM+PEpF/iMhBEZkV8twmEWkQkdUiUudX4NnE75Y+OCWeP/3J/9c1JtdEK+9Y0o9fzKQvIkXAPcBF\nwFjgahE5OWS1PUA1cFeYl2gHKlX1NFWdkGS8BePKK+Gxx1JzJGFMLrGWvr+8tPQnABtVdbOqtgCP\nAtPdK6jqblVdBbSG2V48vk9O8vPkLLfyciguhldf9f+1jcklVtP3l5dkPBjY4nrcGFjmlQLPiUi9\niNwYT3CFTMRp7f/xj5mOxJjMsvKOv0rS8B4TVXW7iByLk/zXq+rycCvW1NR03K+srKSysjIN4SUn\nleWXr3wFLr8cfvrT1BxNGJMLrLxzWG1tLbW1tUm9hpekvxU4wfV4SGCZJ6q6PfDvLhF5HKdcFDPp\n55JUJeRx45wSz6pVcMYZqXkPY7KdlXcOC20Mz5kzJ+7X8FLeqQdGiMiJItINuApYEmX9jhQoIr1E\npE/gfm/gQuD1uKPMYqls6Ys4rf3HHkvdexiT7ay846+YSV9V24Aq4FlgHfCoqq4XkZtE5FsAIjJQ\nRLYAM4H/EJH3A8l+ILBcRFYDK4A/q+qzqfpjMiWVpZdgXd9G8ZhC1N4OH37oXFUuHEv68fNU01fV\nZ4BRIct+6bq/AxgaZtMDQHkyAWa7VCfjceOgWzeoq4OzzkrtexmTbZqboVcvKImQqSzpxy9vh1Km\nUypb+iJw7bXw61+n7j2MyVbRSjvgTK+8b58dCcfDkn4OuPZa+MMf4NNPMx2JMekVbeQOOEfB3bvD\nRx+lL6ZcZ0k/Sak6Octt2DA4+WS7aLopPLFa+mAlnnhZ0s8R111nJR5TeKIN1wyypB8fS/pJSlct\n8cor4dln7cNtCkus8g5Y0o+XJX0fpONs2X794IILbMy+KSxW3vFfOqZhyGvpHDXwta/BXXfBjTaD\nkUkx9+n+tbW1HWeBpnt6FCvv+M+Svg/SNS/OtGnwrW/BW2/ByJHpeU9TmNzJXUSSnu8lUU1NMHx4\n9HUs6cfHyjtJSmdL/4gjnNb+gw+m7z2NySQr7/jPkr4P0jkD5je/CY88Ai0t6XtPYzLFa0euXRzd\nO0v6OWbUKPjsZ+GppzIdicl3ra2tVFdXA1BdXU1ra7hrJKWWl5p+v37W0o+HJf0kZeL073PPhdfz\naq5Sk41mzpzJvffeC8C9997LrFmzYmzhPyvv+M+Svg/SfYGToiKba8Sk3vr162lrawOgra2NN954\nI+0x2Dh9/1nST1Imkq+IJX2TeqNHj6a4uBiA4uJixowZk/YYrKXvP0v6Pkh3S9+SvkmH+fPnM2PG\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb3680b4898>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"xs = np.linspace(-5, 30, 1000)\n",
"histpoints(data, bins=75, normed=True, ms=4)\n",
"plt.plot(xs, model.pdf(xs), 'b-')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Run the fit and look at the result"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"OptimizationResult:\n",
" calls: 36\n",
" func: 15147.318744300697\n",
" message: 'convergence: rel_reduction_of_f_<=_factr*epsmch'\n",
" niter: 25\n",
" success: True\n",
" x: array([ 19.95220003, 1.94781061, 0.10093087, 0.37038953])\n"
]
}
],
"source": [
"result = model.fit(data)\n",
"print(result)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7fb34d725f60>]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nFJH/DwWIpheV+ugFAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb34d6cfba8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"xs = np.linspace(-5, 30, 1000)\n",
"histpoints(data, bins=75, normed=True, ms=4)\n",
"plt.plot(xs, model.pdf(xs), 'b-')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Environment (python-3.5-sklearn-dev)",
"language": "",
"name": "python-3.5-sklearn-dev"
},
"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.5.1"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment