{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Linear regression with various methods\n", "This is a very simple example of using two scipy tools for linear regression.\n", "* Scipy.Polyfit\n", "* Stats.linregress\n", "* Optimize.curve_fit\n", "* numpy.linalg.lstsq\n", "* statsmodels.OLS\n", "* Analytic solution using Moore-Penrose generalized inverse or simple multiplicative matrix inverse\n", "* sklearn.linear_model.LinearRegression" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Import libraries" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\Tirtha\\Python\\Anaconda3\\lib\\site-packages\\statsmodels\\compat\\pandas.py:56: FutureWarning: The pandas.core.datetools module is deprecated and will be removed in a future version. Please use the pandas.tseries module instead.\n", " from pandas.core import datetools\n" ] } ], "source": [ "from scipy import linspace, polyval, polyfit, sqrt, stats, randn, optimize\n", "import statsmodels.api as sm\n", "import matplotlib.pyplot as plt\n", "import time\n", "import numpy as np\n", "from sklearn.linear_model import LinearRegression\n", "import pandas as pd\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Generate random data of a sufficiently large size" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#Sample data creation\n", "#number of points \n", "n=int(5e6)\n", "t=np.linspace(-10,10,n)\n", "#parameters\n", "a=3.25; b=-6.5\n", "x=polyval([a,b],t)\n", "#add some noise\n", "xn=x+3*randn(n)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Draw few random sample points and plot" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "xvar=np.random.choice(t,size=20)\n", "yvar=polyval([a,b],xvar)+3*randn(20)\n", "plt.scatter(xvar,yvar,c='green',edgecolors='k')\n", "plt.grid(True)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Method: Scipy.Polyfit" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Linear regression using polyfit\n", "parameters: a=3.25 b=-6.50, ms error= 3.000\n", "Time taken: 1.7698638439178467 seconds\n" ] } ], "source": [ "#Linear regressison -polyfit - polyfit can be used other orders polynomials\n", "t1=time.time()\n", "(ar,br)=polyfit(t,xn,1)\n", "xr=polyval([ar,br],t)\n", "#compute the mean square error\n", "err=sqrt(sum((xr-xn)**2)/n)\n", "t2=time.time()\n", "t_polyfit = float(t2-t1)\n", "\n", "print('Linear regression using polyfit')\n", "print('parameters: a=%.2f b=%.2f, ms error= %.3f' % (ar,br,err))\n", "print(\"Time taken: {} seconds\".format(t_polyfit))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Method: Stats.linregress" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Linear regression using stats.linregress\n", "a=3.25 b=-6.50, std error= 0.000, r^2 coefficient= 0.987\n", "Time taken: 0.15017366409301758 seconds\n" ] } ], "source": [ "#Linear regression using stats.linregress\n", "t1=time.time()\n", "(a_s,b_s,r,tt,stderr)=stats.linregress(t,xn)\n", "t2=time.time()\n", "t_linregress = float(t2-t1)\n", "\n", "print('Linear regression using stats.linregress')\n", "print('a=%.2f b=%.2f, std error= %.3f, r^2 coefficient= %.3f' % (a_s,b_s,stderr,r))\n", "print(\"Time taken: {} seconds\".format(t_linregress))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Method: Optimize.curve_fit" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def flin(t,a,b):\n", " result = a*t+b\n", " return(result)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Linear regression using optimize.curve_fit\n", "parameters: a=3.25 b=-6.50\n", "Time taken: 1.2034447193145752 seconds\n" ] } ], "source": [ "t1=time.time()\n", "p1,_=optimize.curve_fit(flin,xdata=t,ydata=xn,method='lm')\n", "t2=time.time()\n", "t_optimize_curve_fit = float(t2-t1)\n", "\n", "print('Linear regression using optimize.curve_fit')\n", "print('parameters: a=%.2f b=%.2f' % (p1[0],p1[1]))\n", "print(\"Time taken: {} seconds\".format(t_optimize_curve_fit))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Method: numpy.linalg.lstsq" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Linear regression using numpy.linalg.lstsq\n", "parameters: a=3.25 b=-6.50, ms error= 3.000\n", "Time taken: 0.3698573112487793 seconds\n" ] } ], "source": [ "t1=time.time()\n", "A = np.vstack([t, np.ones(len(t))]).T\n", "result = np.linalg.lstsq(A, xn)\n", "ar,br = result[0]\n", "err = np.sqrt(result[1]/len(xn))\n", "t2=time.time()\n", "t_linalg_lstsq = float(t2-t1)\n", "\n", "print('Linear regression using numpy.linalg.lstsq')\n", "print('parameters: a=%.2f b=%.2f, ms error= %.3f' % (ar,br,err))\n", "print(\"Time taken: {} seconds\".format(t_linalg_lstsq))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Method: Statsmodels.OLS" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Linear regression using statsmodels.OLS\n", "parameters: a=3.25 b=-6.50\n", "Time taken: 0.9167804718017578 seconds\n" ] } ], "source": [ "t1=time.time()\n", "t=sm.add_constant(t)\n", "model = sm.OLS(x, t)\n", "results = model.fit()\n", "ar=results.params[1]\n", "br=results.params[0]\n", "t2=time.time()\n", "t_OLS = float(t2-t1)\n", "\n", "print('Linear regression using statsmodels.OLS')\n", "print('parameters: a=%.2f b=%.2f'% (ar,br))\n", "print(\"Time taken: {} seconds\".format(t_OLS)) " ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: y R-squared: 1.000\n", "Model: OLS Adj. R-squared: 1.000\n", "Method: Least Squares F-statistic: 4.287e+34\n", "Date: Fri, 08 Dec 2017 Prob (F-statistic): 0.00\n", "Time: 23:09:33 Log-Likelihood: 1.3904e+08\n", "No. Observations: 5000000 AIC: -2.781e+08\n", "Df Residuals: 4999998 BIC: -2.781e+08\n", "Df Model: 1 \n", "Covariance Type: nonrobust \n", "==============================================================================\n", " coef std err t P>|t| [0.025 0.975]\n", "------------------------------------------------------------------------------\n", "const -6.5000 9.06e-17 -7.17e+16 0.000 -6.500 -6.500\n", "x1 3.2500 1.57e-17 2.07e+17 0.000 3.250 3.250\n", "==============================================================================\n", "Omnibus: 4418788.703 Durbin-Watson: 0.000\n", "Prob(Omnibus): 0.000 Jarque-Bera (JB): 299716.811\n", "Skew: -0.001 Prob(JB): 0.00\n", "Kurtosis: 1.801 Cond. No. 5.77\n", "==============================================================================\n", "\n", "Warnings:\n", "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" ] } ], "source": [ "print(results.summary())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Analytic solution using Moore-Penrose pseudoinverse" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Linear regression using Moore-Penrose inverse\n", "parameters: a=3.25 b=-6.50\n", "Time taken: 0.6019864082336426 seconds\n" ] } ], "source": [ "t1=time.time()\n", "mpinv = np.linalg.pinv(t)\n", "result = mpinv.dot(x)\n", "ar = result[1]\n", "br = result[0]\n", "t2=time.time()\n", "t_inv_matrix = float(t2-t1)\n", "\n", "print('Linear regression using Moore-Penrose inverse')\n", "print('parameters: a=%.2f b=%.2f'% (ar,br))\n", "print(\"Time taken: {} seconds\".format(t_inv_matrix)) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Analytic solution using simple multiplicative matrix inverse" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Linear regression using simple inverse\n", "parameters: a=3.25 b=-6.50\n", "Time taken: 0.13125276565551758 seconds\n" ] } ], "source": [ "t1=time.time()\n", "m = np.dot((np.dot(np.linalg.inv(np.dot(t.T,t)),t.T)),x)\n", "ar = m[1]\n", "br = m[0]\n", "t2=time.time()\n", "t_simple_inv = float(t2-t1)\n", "\n", "print('Linear regression using simple inverse')\n", "print('parameters: a=%.2f b=%.2f'% (ar,br))\n", "print(\"Time taken: {} seconds\".format(t_simple_inv)) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Method: sklearn.linear_model.LinearRegression" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Linear regression using sklearn.linear_model.LinearRegression\n", "parameters: a=3.25 b=-6.50\n", "Time taken: 0.5318112373352051 seconds\n" ] } ], "source": [ "t1=time.time()\n", "lm = LinearRegression()\n", "lm.fit(t,x)\n", "ar=lm.coef_[1]\n", "br=lm.intercept_\n", "t2=time.time()\n", "t_sklearn_linear = float(t2-t1)\n", "\n", "print('Linear regression using sklearn.linear_model.LinearRegression')\n", "print('parameters: a=%.2f b=%.2f'% (ar,br))\n", "print(\"Time taken: {} seconds\".format(t_sklearn_linear)) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bucket all the execution times in a list and plot" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": true }, "outputs": [], "source": [ "times = [t_polyfit,t_linregress,t_optimize_curve_fit,t_linalg_lstsq,t_OLS,t_inv_matrix,t_simple_inv,t_sklearn_linear]" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nKjWPZxYdm+QTI69v7cdNGw8AAADAKlWttZULVa1P8pbW2oMnTHtLkgtaa+/tX78zya8lWZ/klNba\nWf34Jyd5RGvtnCnvcXa629iybt26Ezdv3rwXq7O6bN1+26KrkCRZd2TyqdsXXYvkhGOPXnQVGLNj\nx46sXbt20dVgjLZjF+3G6qTtYBqxwTRig+WID6YRG/O3adOma1trG1Yqt2YO77U9yQNGXh/Xjzti\nyviJWmsXJbkoSTZs2NA2btw4h6ot1pnnXbboKiRJzj1hZ160dR6bet9sO2PjoqvAmC1btuRQ2NcO\nNdqOXbQbq5O2g2nEBtOIDZYjPphGbCzOPG5DuzTJU/pfRfveJLe11j6Z5Ookx1fVA6vqbklO78sC\nAAAAsEqteMm4ql6bZGOSY6rq1iTPTddrKK21C5NcnuRHk9yU5EtJfq6ftrOqzknytiSHJ7m4tXbj\nflgHAAAAAOZkxWRRa+1JK0xvSX5pyrTL0yWTAAAAADgIzOM2NAAAAAAOEZJFAAAAAAwkiwAAAAAY\nSBYBAAAAMJAsAgAAAGAgWQQAAADAQLIIAAAAgMGaRVcAAIB9s/68yxZdhSTJuSfszJmroC7bLnjc\noqsAAAc1PYsAAAAAGEgWAQAAADCQLAIAAABgIFkEAAAAwECyCAAAAICBZBEAAAAAA8kiAAAAAAaS\nRQAAAAAMJIsAAAAAGEgWAQAAADCQLAIAAABgIFkEAAAAwECyCAAAAICBZBEAAAAAA8kiAAAAAAaS\nRQAAAAAMJIsAAAAAGEgWAQAAADCQLAIAAABgIFkEAAAAwGCmZFFVnVJVH6uqm6rqvAnTn11V1/V/\nN1TVHVV1737atqra2k+7Zt4rAAAAAMD8rFmpQFUdnuSlSR6d5NYkV1fVpa21Dy+Vaa29IMkL+vKP\nT/LM1trnRhazqbX2mbnWHAAAAIC5m6Vn0UlJbmqt3dxa+2qSzUlOXab8k5K8dh6VAwAAAODAqtba\n8gWqTktySmvtrP71k5M8orV2zoSyd0/X++jblnoWVdUtSW5LckeSl7fWLpryPmcnOTtJ1q1bd+Lm\nzZv3eqVWi63bb1t0FZIk645MPnX7omuRnHDs0YuuAmN27NiRtWvXLroajNF27KLdWJ20HauPdmN3\n2o7VR7vBcsQH04iN+du0adO1rbUNK5Vb8Ta0PfT4JFeN3YJ2cmtte1XdL8k7quqjrbUrx2fsk0gX\n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\nbVasV6uqV4+8XlNV/1pVb5n3e61Qj/OravvIueKPH8j3P5D67f2Ny0zfo2NfVb2yqh40n9rtX5PO\nJ/vxc1uHWb5DzEtVra+qn1lm+h6d+1TVhqr64/nU7tBRVduq6pgJ4w/Ytu7fb31V3dAPHxLban8c\n71aLmR5wzapxe2vtYUlSVX+V5KlJ/mBvF1ZV35Dke1pr3zZh8jOSvDrdr9uxj6rq+5L8WJKHt9a+\n0jfWd0vyusz2Oe/19hh9GP2MdV3TWtu5p+8z72UcavovNG9I8qettVOr6vB0D+z7vSTTvojfK8kv\nJnlZkrTW/iXJaXvyvq215+x1pedgXrGgvVqc1tobF12HMT+U5DNJ3r/oiqwSs8b/Qb2fVNWRSS5N\n8rTW2tv7xNffpmsjXzplnuOS/Ea6Y+9tVbU2yX33Q/W+mOTBVXVka+32JI9Osn0eC96LNvTFrbUX\nVtV3JnlPVd2vtfa1fXj/SveM071exn5yZpIbkvzL+ISqOnxPj32ttbPmVK+J5ngsnHY+ud/XYT9a\nn+RnkrxmfEL/ue3RuU9r7Zok18ytdneu02rdJxaq3+/u2JN59ve2SvauXuyiZ9HB6z1Jvi1Jqur/\n7q8g3TDpamxVvaqqfmLk9V/1V9benuTY/qrED1bVJVV1WlU9Pck3Jnl3Vb37AK3Poe7+ST7TWvtK\nkrTWPpPuwLfb51xVf1pV1/RXjJ7Xj9tte1TV4f22uqG/WvrM5d54NJNdVVuq6vlV9YGq+nhV/WA/\n/syqurSq3pXknf24Z1fV1f2Vq+eNLO+3+qu6762up8fosv+wqq5J8itVdd+q+tt+GVdX1Q/05R7V\nx9x1VfWhqrpHVd2/qq4cuRr6g/P76FeNH0ry5dbanydJf+B6ZpKfr6pfrK7H0ZbqrpY/t5/ngiTf\n2n8uLxi7GnNmVb2pqt7RXy06p28LPlRV76+qe/fllvbrDSOf+9aqav30b62qK6rq2qp6T1V9x3jF\n+5h7Yb9trq+qX+7HD1ep+uVv6YfPr6q/rKqrkvxlX5/vGlnelr78UVV1cR+PH6rlr/gfsu1Vv10/\nUlWv6Pf9t1fVkUufU1/mmKra1g/Puu23VNd7bWm/OqmqDutj7L59mcOq6qal11Pqd1ZV/WE//Op+\nme+rqpur6gn9+HtW1+Pjg32M/NiE5RxeVRdW1Uf7dbyiRo5NU977mVX14X6Zr66qb01yVpJn9+v1\n/VV1er9+/1i72tK7V9cD9yPVtUPXVNXD9mLzrCr9PnNZv6439G3F3I4jfcy8uJ//I1X1PVX1hj5m\nfnekHhPPO6rr8fDxqnpvkm8fGT9LO/P0kW29ecLq/0ySq1prb0+S1tqXkpyT5LxlPrL7JflCkh39\nPDtaa7fM8lnvhcuTPK4fflKS1y5NqKp79/vs9f0++pAVxo+3oYdXdwxYOib/95Uq01r7SJKdSY6p\n6cfj86trg7f0+/PT+/HrqzvOvypdQuYBVfWkPlZuqKrn9+WmxdEs2/v8qvqLfvo/V9VPVtXv98u5\noqqO6Ms9p6/zDVV1UXVOS7IhyV/17cCR1bWFz6+qDyb5L7XrGHF0vy7f3i/vtVX13ybUZ7S93VFV\nv9fvZ++vqnX9cv65qg7ryxxVVZ+oqiOmrW9fhwur6n8n+f2acP7Tl5t4vjXFnc4n+2TKpHV4QXXt\nwN9X1/4vbecf78ucWZPPPcY/mxXrN+P7re8/nw/2f9/fz35Bkh/sP5dn1tg5ae1+7vPMqrq4Hz6h\nj4u7j9VlY/W9+mp6jF9QVb80Ms/oufKd1rcm7xN7FfsHQt35WPHEkWlHVtVbp+wH087939Sv041V\ndfbI+B1V9aKq+sck31fdfvi8fvtuXWn9Z9lW/bSfre5c8bqqenl1F1wnHu/68bu1B1Pee2HHu4NK\na83fQfKXZEf/f02SNyd5WpITk2xNclSStUluTPLdY+UfleRN/fDRSW7pl7E+yQ0jy78kyWn98LYk\nxyx6nQ+Vv37bXJfk4+l6iTxq0uec5N79/8OTbEnykPFy/TZ/x8g895rwfmcmeUk/fH6SZ/XDW5K8\nqB/+0SR/P1L+1pH3f0y6Xi+VLqn8liSPTPI9/Xp8fZJ7JPmnsWW/bKQOr0lycj/8TUk+0g//XZIf\nGPlc1iQ5N8lvjKz7PRa9zfZDDDw93RXf8fEf6qd9Msl9khyZ7kRkw4R9dHjdb7Ob+u1w3yS3JXlq\nP+3FSZ7RDw/79chyXpDkBf3wO5Mc3w8/Ism7JtTxaUn+JsmasTgdjcsNSbaMxNy1SY7sXz8zyfP6\n4fsn+Vg//D+T/OxSHKfbP46a8vmNfxbDeuUgb6/6dduZ5GH9679O8rP9PrWhH3dMkm17uO23JHlF\nP/zIkdh57kiZxyT52wl1+uHsOm6cleQP++FXp/sSXEkekuSj/fgjktyzH75fkn/qh9ck+bd++PR0\n+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\nPdIl/f68P7lOkl9Pkqp6arLnv342Set+aeY7k/yv/nv8jnTPlrm6uq6W16e7OrQ13XNHJnl6kpdW\n1fXp2por0119eUZVbUqXtb8xyVvTHayfXVX/0b/XU/Z1HVab1lqrrgvvy6rqt9Il6y9P8j/SxcEH\n0nXlPS7Jq1v3CxGpqquqe7DjWzPlF39mdGqSb07yin6bLl2JPiPJn1bVb6brIr45yT9W90DKDa37\nRZlXpusufn2/jV6R5CVJnpfkz6rqd9Jd5VzO36Q7wf6dkXG/k+5WqOv7eL4lyycgpzlU26sXJvnr\n6rpYX7aXy/hy364ckd17IF6arofFcAtaH58ntNZ+ey/e5y+T/F11V7k/kO55ZuP+Ot1zWT6S7svN\nh9K3H9X1kLiqtTZ6+86aJK/pT8QOS/LC1toXqrsl7fVV9ZNJfinJedVdYawkb2+t3VBdF/K/6I97\nN2bk1uyD3AlJXlBVX0vyH+luRf++zOk4Movlzjuq6nVJ/jHdLQJXj8w2sZ0ZmX54utsNj063Hf+4\ntfZv1T2s96mttbNaa7dX9xD8P6mql/bz/GW6tmjJmbX7Q9N/IMkL+y9OX07yr9nVs3HuWmu3pvsi\nO+78dLdaX5/u4sB/XWH8uFemu5Xng9U14P+a7ov9rKYdj2fSWvtkdbfOvzvd9rmstfbm/kvQpDha\naXvP+r7/VlWvSPeMlP8vu8fUJUkurKrb0+0DE1X3YOuzkpzUtx9Xpvty/9w9rU/vdekSCxtHxs26\nvnc6/2ndL5rd6Xwru26zGTftfHJvTTz3WDLtfHCZ+i3nZUn+trqLZldkV8+P65PcUd1Dki9Jl8yY\n5sVJXtr3nPmFdA/tv7K1tsf1aa3d2B9ftrf+9qNl1nf8osqx2Y+xPweTjhVLjwD4lXTtzu+31n51\naYZl1v2KJE/tj6cfy178EuloW76n87bWPtx/nm/vP+//SPJLrbX3L3O8m4v9dLw7qNSde6BxKKru\nlwK2pv/52EXXh4NXVa1t3T3zd093wnl2a+2Di67Xway6++83tNbOWXRdOHRU11X8WeMn//20Delu\nVzmgvzw40n7cN8n/TvKIpZ5u+/l935vknHbXfB4awJ049wBWomfRXUB1Xbb/LN0XA4ki9tVFVfWg\ndN3D/0KiCA4ufQ+Bp2XPn1U0D2+t7lldR6T7Faj9nigCAGDP6VkEwKpR3QM/nz82+pbW2hMmlQcA\ngEn625Z/YGz0H7XW9vSXYO+SJIsAAAAAGPg1NAAAAAAGkkUAAAAADCSLAAAAABhIFgEAAAAwkCwC\nAAAAYPD/A2/w5yqOoQDyAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(20,5))\n", "plt.grid(True)\n", "plt.bar(left=[l*0.8 for l in range(8)],height=times, width=0.4,\n", " tick_label=['Polyfit','Stats.linregress','Optimize.curve_fit',\n", " 'numpy.linalg.lstsq','statsmodels.OLS','Moore-Penrose matrix inverse',\n", " 'Simple matrix inverse','sklearn.linear_model'])\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "n_min = 50000\n", "n_max = int(1e7)\n", "n_levels = 25\n", "r = np.log10(n_max/n_min)\n", "l = np.linspace(0,r,n_levels)\n", "n_data = list((n_min*np.power(10,l)))\n", "n_data = [int(n) for n in n_data]" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████████████████████████████████████████████████████████████████████████████| 25/25 [00:51<00:00, 2.05s/it]\n" ] } ], "source": [ "#time_dict={'Polyfit':[],'Stats.lingress':[],'Optimize.curve_fit':[],'linalg.lstsq':[],'statsmodels.OLS':[],\n", " #'Moore-Penrose matrix inverse':[],'Simple matrix inverse':[], 'sklearn.linear_model':[]}\n", "\n", "l1=['Polyfit', 'Stats.lingress','Optimize.curve_fit', 'linalg.lstsq', \n", " 'statsmodels.OLS', 'Moore-Penrose matrix inverse', 'Simple matrix inverse', 'sklearn.linear_model']\n", "time_dict = {key:[] for key in l1}\n", "\n", "from tqdm import tqdm\n", "\n", "for i in tqdm(range(len(n_data))):\n", " t=np.linspace(-10,10,n_data[i])\n", " #parameters\n", " a=3.25; b=-6.5\n", " x=polyval([a,b],t)\n", " #add some noise\n", " xn=x+3*randn(n_data[i])\n", " \n", " #Linear regressison -polyfit - polyfit can be used other orders polynomials\n", " t1=time.time()\n", " (ar,br)=polyfit(t,xn,1)\n", " t2=time.time()\n", " t_polyfit = 1e3*float(t2-t1)\n", " time_dict['Polyfit'].append(t_polyfit)\n", " \n", " #Linear regression using stats.linregress\n", " t1=time.time()\n", " (a_s,b_s,r,tt,stderr)=stats.linregress(t,xn)\n", " t2=time.time()\n", " t_linregress = 1e3*float(t2-t1)\n", " time_dict['Stats.lingress'].append(t_linregress)\n", " \n", " #Linear regression using optimize.curve_fit\n", " t1=time.time()\n", " p1,_=optimize.curve_fit(flin,xdata=t,ydata=xn,method='lm')\n", " t2=time.time()\n", " t_optimize_curve_fit = 1e3*float(t2-t1)\n", " time_dict['Optimize.curve_fit'].append(t_optimize_curve_fit)\n", " \n", " # Linear regression using np.linalg.lstsq (solving Ax=B equation system)\n", " t1=time.time()\n", " A = np.vstack([t, np.ones(len(t))]).T\n", " result = np.linalg.lstsq(A, xn)\n", " ar,br = result[0]\n", " t2=time.time()\n", " t_linalg_lstsq = 1e3*float(t2-t1)\n", " time_dict['linalg.lstsq'].append(t_linalg_lstsq)\n", " \n", " # Linear regression using statsmodels.OLS\n", " t1=time.time()\n", " t=sm.add_constant(t)\n", " model = sm.OLS(x, t)\n", " results = model.fit()\n", " ar=results.params[1]\n", " br=results.params[0]\n", " t2=time.time()\n", " t_OLS = 1e3*float(t2-t1)\n", " time_dict['statsmodels.OLS'].append(t_OLS)\n", " \n", " # Linear regression using Moore-Penrose pseudoinverse matrix\n", " t1=time.time()\n", " mpinv = np.linalg.pinv(t)\n", " result = mpinv.dot(x)\n", " ar = result[1]\n", " br = result[0]\n", " t2=time.time()\n", " t_mpinverse = 1e3*float(t2-t1)\n", " time_dict['Moore-Penrose matrix inverse'].append(t_mpinverse)\n", " \n", " # Linear regression using simple multiplicative inverse matrix\n", " t1=time.time()\n", " m = np.dot((np.dot(np.linalg.inv(np.dot(t.T,t)),t.T)),x)\n", " ar = m[1]\n", " br = m[0]\n", " t2=time.time()\n", " t_simple_inv = 1e3*float(t2-t1)\n", " time_dict['Simple matrix inverse'].append(t_simple_inv)\n", " \n", " # Linear regression using scikit-learn's linear_model\n", " t1=time.time()\n", " lm = LinearRegression()\n", " lm.fit(t,x)\n", " ar=lm.coef_[1]\n", " br=lm.intercept_\n", " t2=time.time()\n", " t_sklearn_linear = 1e3*float(t2-t1)\n", " time_dict['sklearn.linear_model'].append(t_sklearn_linear)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Moore-Penrose matrix inverseOptimize.curve_fitPolyfitSimple matrix inverseStats.lingresslinalg.lstsqsklearn.linear_modelstatsmodels.OLS
00.0000000.00000015.6304840.0000000.00000015.62547715.62142415.629292
10.0000000.00000015.6302450.0000000.0000000.0000000.00000022.155523
215.62213915.62452315.6276230.0000000.0000000.0000000.00000015.625715
315.62523815.63692122.1371650.0000000.0000000.0000000.00000015.619516
415.62547719.13785915.6307220.00000018.1763170.00000015.62714615.618801
54.00781631.25357622.1304890.00000015.62881515.62190131.25476833.256292
618.63336653.04193531.2497623.5016540.0000000.00000015.63215346.875238
731.25572253.00641146.8761920.0000000.00000031.25619931.25262337.758827
815.65790269.02146332.25374215.62762315.62643115.61951631.25929868.526506
931.25357684.65075547.2931860.00000015.62476231.24666237.77813969.011211
1037.775517115.88978869.01454915.62380815.62976833.75983246.87500082.136869
1150.890923148.653030100.2650262.50005715.62428536.26060567.022562115.892887
1251.916361169.280767100.26121115.59543615.62666946.87333184.640265133.024454
1369.013357204.277992131.51264231.26049033.25891562.90531284.661484169.303179
14105.759859263.057709178.89547331.32510221.63386369.040298131.505728247.957468
15131.574392319.949627216.18247032.74726962.49547081.153154120.925665253.957272
16153.636217448.011875269.54340946.90051153.393364115.928888169.338226316.501141
17231.811762701.419353300.34661365.00887953.394318178.601742220.121384422.495842
18285.177946616.899490432.18207469.02885484.664822215.755463285.164833517.048597
19332.066059819.245577501.35135784.640741120.899916231.451511347.280264670.651913
20369.4446091024.812222585.524321115.913153131.541967278.692007447.981596770.556927
21685.0941181249.316692748.612404216.203928153.661489416.716337701.471090955.613136
22748.3894821572.880745886.412144200.346470200.551510463.643789686.3090991224.907160
23887.8500461884.7668171202.514887216.167450251.927853539.185524886.8384361535.134792
24954.7696112425.2989291450.640917269.577265332.119942696.0318091049.1673951888.795376
\n", "
" ], "text/plain": [ " Moore-Penrose matrix inverse Optimize.curve_fit Polyfit \\\n", "0 0.000000 0.000000 15.630484 \n", "1 0.000000 0.000000 15.630245 \n", "2 15.622139 15.624523 15.627623 \n", "3 15.625238 15.636921 22.137165 \n", "4 15.625477 19.137859 15.630722 \n", "5 4.007816 31.253576 22.130489 \n", "6 18.633366 53.041935 31.249762 \n", "7 31.255722 53.006411 46.876192 \n", "8 15.657902 69.021463 32.253742 \n", "9 31.253576 84.650755 47.293186 \n", "10 37.775517 115.889788 69.014549 \n", "11 50.890923 148.653030 100.265026 \n", "12 51.916361 169.280767 100.261211 \n", "13 69.013357 204.277992 131.512642 \n", "14 105.759859 263.057709 178.895473 \n", "15 131.574392 319.949627 216.182470 \n", "16 153.636217 448.011875 269.543409 \n", "17 231.811762 701.419353 300.346613 \n", "18 285.177946 616.899490 432.182074 \n", "19 332.066059 819.245577 501.351357 \n", "20 369.444609 1024.812222 585.524321 \n", "21 685.094118 1249.316692 748.612404 \n", "22 748.389482 1572.880745 886.412144 \n", "23 887.850046 1884.766817 1202.514887 \n", "24 954.769611 2425.298929 1450.640917 \n", "\n", " Simple matrix inverse Stats.lingress linalg.lstsq sklearn.linear_model \\\n", "0 0.000000 0.000000 15.625477 15.621424 \n", "1 0.000000 0.000000 0.000000 0.000000 \n", "2 0.000000 0.000000 0.000000 0.000000 \n", "3 0.000000 0.000000 0.000000 0.000000 \n", "4 0.000000 18.176317 0.000000 15.627146 \n", "5 0.000000 15.628815 15.621901 31.254768 \n", "6 3.501654 0.000000 0.000000 15.632153 \n", "7 0.000000 0.000000 31.256199 31.252623 \n", "8 15.627623 15.626431 15.619516 31.259298 \n", "9 0.000000 15.624762 31.246662 37.778139 \n", "10 15.623808 15.629768 33.759832 46.875000 \n", "11 2.500057 15.624285 36.260605 67.022562 \n", "12 15.595436 15.626669 46.873331 84.640265 \n", "13 31.260490 33.258915 62.905312 84.661484 \n", "14 31.325102 21.633863 69.040298 131.505728 \n", "15 32.747269 62.495470 81.153154 120.925665 \n", "16 46.900511 53.393364 115.928888 169.338226 \n", "17 65.008879 53.394318 178.601742 220.121384 \n", "18 69.028854 84.664822 215.755463 285.164833 \n", "19 84.640741 120.899916 231.451511 347.280264 \n", "20 115.913153 131.541967 278.692007 447.981596 \n", "21 216.203928 153.661489 416.716337 701.471090 \n", "22 200.346470 200.551510 463.643789 686.309099 \n", "23 216.167450 251.927853 539.185524 886.838436 \n", "24 269.577265 332.119942 696.031809 1049.167395 \n", "\n", " statsmodels.OLS \n", "0 15.629292 \n", "1 22.155523 \n", "2 15.625715 \n", "3 15.619516 \n", "4 15.618801 \n", "5 33.256292 \n", "6 46.875238 \n", "7 37.758827 \n", "8 68.526506 \n", "9 69.011211 \n", "10 82.136869 \n", "11 115.892887 \n", "12 133.024454 \n", "13 169.303179 \n", "14 247.957468 \n", "15 253.957272 \n", "16 316.501141 \n", "17 422.495842 \n", "18 517.048597 \n", "19 670.651913 \n", "20 770.556927 \n", "21 955.613136 \n", "22 1224.907160 \n", "23 1535.134792 \n", "24 1888.795376 " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.DataFrame(data=time_dict)\n", "df" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n2rRptGnThm+//TbDej4+PvTv359t27Yxfvx4mwnS0aNHOX78uMW2AwcOmJ5QGg0cOBAPDw+mT5/O\n+vXrSc/83dmiRYtSo0YN/vjjD4t7lJqayltvvcW///5r97mm16NHDzw8PJg3b55pZlxb64m++OKL\neHl5MW7cOLZu3WpVnpaWZnrK/iAUL16cf/75577OXQghhBDCQtxGuH3T8L3EY+Dt59BwHgS7JknS\nWls/khIil4SGhnL9+nUmT55M3bp1adeuHU888QQpKSls2rSJP//8k0KFCrFw4UKL5WWMunTpQlBQ\nEEFBQVStWpVdu3YRFRVFsWLF+OabbyzqBgYG8t///pchQ4bQs2dPihYtipeXF8OHD39Qp2vl3Llz\nvP322yilqFWrFh9//LFVHX9/f9P6nNOmTePw4cN8+OGH/O9//yMgIABfX1/OnDnD/v37iY2NZeHC\nhVSqVMm0/+OPPw6A1tq0rUSJEixYsIBevXrRqlUrOnToQJ06dbh69Sp79uzh1KlTFonuyJEjGTRo\nEM2aNaN3794ULFiQ6OhoUlJSqFu3Lrt3787W+RcqVIjevXsza9YsvvnmG4oXL06nTp2s6hUvXpyf\nf/6ZoKAgGjduTGBgIE888QRKKU6dOsXmzZu5dOkSN2/ezFYcWRUYGEhsbCzt27fn6aefxs3Njbp1\n61otmSOEEEIIYbfD5sN7H+7lZYwymyTpAtBOa71TKfUPhvdQM6S19snp4MSjycnJic8//5w+ffrw\n9ddfs379en777TecnZ3x8/Pj7bffZsSIERkue9KjRw+GDh3Kxx9/zPLly3FxcaFHjx6EhYXx2GOP\nWdRt164dn3/+OTNmzGDKlCkkJydTsWJFhyaoN2/eJC0tDTA8SbVl4MCBpgTVw8ODdevW8d1337Fg\nwQJ++eUXbt68ia+vL9WqVeOLL77gmWfsGw7SqVMntm3bxqRJk/jtt99YvXo13t7e1KhRg/fee8+i\nbkhICFprJk+eTEREBN7e3nTr1o1PPvmEnj173scVMDwxnTVrFikpKfTt2xdXV1eb9QIDA9mzZw+f\nffYZq1atYsOGDbi6ulKmTBlat25933FkxZgxY0hMTCQyMpI//viD1NRUBg4cKAmqEEIIIbJHazi8\n6u7vqm0cF8sDpMyfoFgUKDUWw7DeM0qpUO6doI7L+fAeDg0aNNDbtm27Z739+/ebnmyJrAsPD+fF\n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\nSUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(15,10))\n", "for i in df.columns:\n", " plt.semilogx((n_data),df[i],lw=3)\n", "plt.xticks([1e5,2e5,5e5,1e6,2e6,5e6,1e7],fontsize=15)\n", "plt.xlabel(\"\\nSize of the data set (number of samples)\",fontsize=15)\n", "plt.yticks(fontsize=15)\n", "plt.ylabel(\"Milliseconds needed for simple linear regression model fit\\n\",fontsize=15)\n", "plt.grid(True)\n", "plt.legend([name for name in df.columns],fontsize=20)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true }, "outputs": [], "source": [ "a1=df.iloc[n_levels-1]" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABI4AAAEzCAYAAABXB0iVAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X2cJmdZJ/rfRcJCYCSAwdkYsg7riayBIJoRUWSdWVFQ\nWMEVIYhCFjUiCMLi0aCuxMPGE0HkiBA0mBgQdEAByRIChMgIcowhgcgkwUgODMIYgwgCw6sJ1/mj\nqmee6dTT3TPTM92ZfL+fT3+6nvupl7uqrrqr6nrqpbo7AAAAALDYHda6AgAAAACsTxJHAAAAAEyS\nOAIAAABgksQRAAAAAJMkjgAAAACYJHEEAAAAwCSJIwAAAAAmSRwBAAAAMEniCAAAAIBJR691BZZz\n3HHH9aZNm9a6GkeMz3/+87nrXe+61tVgnRIfzCM2mEdsMI/YYCnig3nEBvOIjdV31VVXfbK777Vc\nf+s+cbRp06ZceeWVa12NI8b27duzZcuWta4G65T4YB6xwTxig3nEBksRH8wjNphHbKy+qvroSvpb\n9la1qjqxqt5ZVddV1bVV9fNj+VlVtauqrh7/fnBmmOdW1Q1VdX1VPXym/NSq2jF+95KqqgOZOQAA\nAAAOvZVccXRzkud09/uq6muSXFVVl47fvbi7f2u256o6OclpSe6X5OuTvKOqvqm7b0ny8iQ/neRv\nkrwlySOSXLI6swIAAADAalr2iqPuvrG73zd2fy7JB5OcsMQgj06yrbu/3N0fSXJDkgdV1fFJ7tbd\nl3d3J3lVkscc9BwAAAAAcEjUkMNZYc9Vm5K8K8n9k/yPJP89yWeSXJnhqqRPV9VLk1ze3a8ehzk/\nw1VFO5Oc090PG8sfmuSXuvtRE9M5I8kZSbJx48ZTt23bdoCzx2K7d+/Ohg0b1roarFPig3nEBvOI\nDeYRGyxFfDCP2GAesbH6tm7delV3b16uvxU/HLuqNiR5fZJndfdnq+rlSZ6fpMf/L0rylAOs7z66\n+7wk5yXJ5s2b2wOwVo8HirEU8cE8YoN5xAbziA2WIj6YR2wwj9hYO8veqpYkVXXHDEmj13T3G5Kk\nu2/q7lu6+6tJXpHkQWPvu5KcODP4vceyXWP34nIAAAAA1qGVvFWtkpyf5IPd/dsz5cfP9PbDSa4Z\nuy9KclpV3amq7pPkpCRXdPeNST5bVQ8ex/mkJG9apfkAAAAAYJWt5Fa1hyT5iSQ7qurqseyXkzyh\nqh6Y4Va1nUl+Jkm6+9qqel2S6zK8ke3p4xvVkuRpSS5MckyG5x55oxoAAADAOrVs4qi7/ypJTXz1\nliWGOTvJ2RPlV2Z4sDYAAAAA69yKnnEEAAAAwO2PxBEAAAAAk1byjCPgENt05sVrXYUkyXNOuTmn\nr3Fddp7zyDWdPgAAAHu54ggAAACASRJHAAAAAEySOAIAAABgksQRAAAAAJMkjgAAAACYJHEEAAAA\nwCSJIwAAAAAmSRwBAAAAMEniCAAAAIBJEkcAAAAATJI4AgAAAGCSxBEAAAAAkySOAAAAAJgkcQQA\nAADAJIkjAAAAACZJHAEAAAAwSeIIAAAAgEkSRwAAAABMkjgCAAAAYJLEEQAAAACTJI4AAAAAmCRx\nBAAAAMAkiSMAAAAAJkkcAQAAADBJ4ggAAACASRJHAAAAAEySOAIAAABgksQRAAAAAJMkjgAAAACY\nJHEEAAAAwCSJIwAAAAAmSRwBAAAAMEniCAAAAIBJEkcAAAAATJI4AgAAAGCSxBEAAAAAkySOAAAA\nAJgkcQQAAADAJIkjAAAAACZJHAEAAAAwSeIIAAAAgEnLJo6q6sSqemdVXVdV11bVz4/l96yqS6vq\nQ+P/e8wM89yquqGqrq+qh8+Un1pVO8bvXlJVdWhmCwAAAICDtZIrjm5O8pzuPjnJg5M8vapOTnJm\nksu6+6Qkl42fM353WpL7JXlEknOr6qhxXC9P8tNJThr/HrGK8wIAAADAKlo2cdTdN3b3+8buzyX5\nYJITkjw6ySvH3l6Z5DFj96OTbOvuL3f3R5LckORBVXV8krt19+Xd3UleNTMMAAAAAOtMDTmcFfZc\ntSnJu5LcP8k/dPfdx/JK8unuvntVvTTJ5d396vG785NckmRnknO6+2Fj+UOT/FJ3P2piOmckOSNJ\nNm7ceOq2bdsOdP5YZPfu3dmwYcNaV4NFduz6zFpXIUmy8Zjkpi+ubR1OOeHYta0Ak7QdzCM2mEds\nsBTxwTxig3nExurbunXrVd29ebn+jl7pCKtqQ5LXJ3lWd3929vFE3d1VtfIM1DK6+7wk5yXJ5s2b\ne8uWLas16tu97du3x/Jcf04/8+K1rkKS5Dmn3JwX7Vhxs3BI7HziljWdPtO0HcwjNphHbLAU8cE8\nYoN5xMbaWdFb1arqjhmSRq/p7jeMxTeNt59l/P+JsXxXkhNnBr/3WLZr7F5cDgAAAMA6tJK3qlWS\n85N8sLt/e+ari5I8eex+cpI3zZSfVlV3qqr7ZHgI9hXdfWOSz1bVg8dxPmlmGAAAAADWmZXck/KQ\nJD+RZEdVXT2W/XKSc5K8rqp+MslHkzwuSbr72qp6XZLrMryR7endfcs43NOSXJjkmAzPPbpkleYD\nAAAAgFW2bOKou/8qSc35+nvnDHN2krMnyq/M8GBtAAAAANa5FT3jCAAAAIDbH4kjAAAAACZJHAEA\nAAAwSeIIAAAAgEkSRwAAAABMkjgCAAAAYNLRa10BAAAAYH3adObFa12FJMlzTrk5p6+Duuw855Fr\nXYXDzhVHAAAAAEySOAIAAABgksQRAAAAAJMkjgAAAACYJHEEAAAAwCSJIwAAAAAmSRwBAAAAMEni\nCAAAAIBJEkcAAAAATJI4AgAAAGCSxBEAAAAAkySOAAAAAJgkcQQAAADAJIkjAAAAACZJHAEAAAAw\nSeIIAAAAgEkSRwAAAABMkjgCAAAAYJLEEQAAAACTJI4AAAAAmCRxBAAAAMAkiSMAAAAAJkkcAQAA\nADBJ4ggAAACASRJHAAAAAEySOAIAAABgksQRAAAAAJMkjgAAAACYJHEEAAAAwCSJIwAAAAAmSRwB\nAAAAMEniCAAAAIBJEkcAAAAATJI4AgAAAGCSxBEAAAAAkySOAAAAAJgkcQQAAADApGUTR1V1QVV9\noqqumSk7q6p2VdXV498Pznz33Kq6oaqur6qHz5SfWlU7xu9eUlW1+rMDAAAAwGpZyRVHFyZ5xET5\ni7v7gePfW5Kkqk5OclqS+43DnFtVR439vzzJTyc5afybGicAAAAA68SyiaPufleST61wfI9Osq27\nv9zdH0lyQ5IHVdXxSe7W3Zd3dyd5VZLHHGilAQAAADj0DuYZR8+oqg+Mt7LdYyw7IcnHZvr5+Fh2\nwti9uBwAAACAdaqGC4CW6alqU5I3d/f9x88bk3wySSd5fpLju/spVfXSJJd396vH/s5PckmSnUnO\n6e6HjeUPTfJL3f2oOdM7I8kZSbJx48ZTt23bdhCzyKzdu3dnw4YNa10NFtmx6zNrXYUkycZjkpu+\nuLZ1OOWEY9e2AkzSdjCP2GAescFSxAfziI31x7nKvo6k85WtW7de1d2bl+vv6AMZeXfftNBdVa9I\n8ubx464kJ870eu+xbNfYvbh83vjPS3JekmzevLm3bNlyINVkwvbt22N5rj+nn3nxWlchSfKcU27O\ni3YcULOwanY+ccuaTp9p2g7mERvMIzZYivhgHrGx/jhX2dft8XzlgG5VG59ZtOCHkyy8ce2iJKdV\n1Z2q6j4ZHoJ9RXffmOSzVfXg8W1qT0rypoOoNwAAAACH2LLpuqr6kyRbkhxXVR9P8rwkW6rqgRlu\nVduZ5GeSpLuvrarXJbkuyc1Jnt7dt4yjelqGN7Qdk+H2tUtWc0YAAAAAWF3LJo66+wkTxecv0f/Z\nSc6eKL8yyf33q3YAAAAArJm1v0EQgLk2raN7ytfD/e07z3nkWlcBAABuVw7oGUcAAAAAHPkkjgAA\nAACYJHEEAAAAwCSJIwAAAAAmSRwBAAAAMEniCAAAAIBJEkcAAAAATJI4AgAAAGCSxBEAAAAAkySO\nAAAAAJgkcQQAAADAJIkjAAAAACZJHAEAAAAwSeIIAAAAgEkSRwAAAABMkjgCAAAAYJLEEQAAAACT\nJI4AAAAAmCRxBAAAAMAkiSMAAAAAJkkcAQAAADBJ4ggAAACASRJHAAAAAEySOAIAAABgksQRAAAA\nAJMkjgAAAACYJHEEAAAAwCSJIwAAAAAmSRwBAAAAMEniCAAAAIBJEkcAAAAATJI4AgAAAGCSxBEA\nAAAAkySOAAAAAJgkcQQAAADAJIkjAAAAACZJHAEAAAAwSeIIAAAAgEkSRwAAAABMkjgCAAAAYJLE\nEQAAAACTJI4AAAAAmHT0WlcAAACAtbXpzIvXugpJkueccnNOXwd12XnOI9e6CrBuuOIIAAAAgEnL\nJo6q6oKq+kRVXTNTds+qurSqPjT+v8fMd8+tqhuq6vqqevhM+alVtWP87iVVVas/OwAAAACslpVc\ncXRhkkcsKjszyWXdfVKSy8bPqaqTk5yW5H7jMOdW1VHjMC9P8tNJThr/Fo8TAAAAgHVk2cRRd78r\nyacWFT86ySvH7lcmecxM+bbu/nJ3fyTJDUkeVFXHJ7lbd1/e3Z3kVTPDAAAAALAO1ZDHWaanqk1J\n3tzd9x8//2t3333sriSf7u67V9VLk1ze3a8evzs/ySVJdiY5p7sfNpY/NMkvdfej5kzvjCRnJMnG\njRtP3bZt28HMIzN2796dDRs2rHU1WGTHrs+sdRWSJBuPSW764trW4ZQTjl3bCqwzYmNf4mP9sV9h\nHrHBUsTH+uOYY1+OOfYSG/s6kmJj69atV3X35uX6O+i3qnV3V9Xy2af9G+d5Sc5Lks2bN/eWLVtW\nc/S3a9u3b4/luf6shzdHJMNbLF60Y21ftrjziVvWdPrrjdjYl/hYf+xXmEdssBTxsf445tiXY469\nxMa+bo+xcaBvVbtpvP0s4/9PjOW7kpw409+9x7JdY/ficgAAAADWqQNNHF2U5Mlj95OTvGmm/LSq\nulNV3SfDQ7Cv6O4bk3y2qh483tr2pJlhAAAAAFiHlr3Oq6r+JMmWJMdV1ceTPC/JOUleV1U/meSj\nSR6XJN19bVW9Lsl1SW5O8vTuvmUc1dMyvKHtmAzPPbpkVecEAAAAgFW1bOKou58w56vvndP/2UnO\nnii/Msn996t2R5BN6+i+0PVwj+rOcx651lUAAAAAlnGgt6oBAAAAcISTOAIAAABgksQRAAAAAJMk\njgAAAACYJHEEAAAAwCSJIwAAAAAmSRwBAAAAMEniCAAAAIBJEkcAAAAATJI4AgAAAGCSxBEAAAAA\nkySOAAAAAJgkcQQAAADAJIkjAAAAACZJHAEAAAAwSeIIAAAAgEkSRwAAAABMkjgCAAAAYJLEEQAA\nAACTJI4AAAAAmCRxBAAAAMAkiSMAAAAAJkkcAQAAADBJ4ggAAACASRJHAAAAAEySOAIAAABgksQR\nAAAAAJOOXusKAAAAh8emMy9e6yokSZ5zys05fY3rsvOcR67p9AFuK1xxBAAAAMAkiSMAAAAAJkkc\nAQAAADBJ4ggAAACASRJHAAAAAEySOAIAAABgksQRAAAAAJMkjgAAAACYJHEEAAAAwCSJIwAAAAAm\nSRwBAAAAMEniCAAAAIBJEkcAAAAATJI4AgAAAGCSxBEAAAAAkySOAAAAAJh0UImjqtpZVTuq6uqq\nunIsu2dVXVpVHxr/32Om/+dW1Q1VdX1VPfxgKw8AAADAobMaVxxt7e4Hdvfm8fOZSS7r7pOSXDZ+\nTlWdnOS0JPdL8ogk51bVUaswfQAAAAAOgUNxq9qjk7xy7H5lksfMlG/r7i9390eS3JDkQYdg+gAA\nAACsgoNNHHWSd1TVVVV1xli2sbtvHLv/KcnGsfuEJB+bGfbjYxkAAAAA61B194EPXHVCd++qqq9L\ncmmSZyS5qLvvPtPPp7v7HlX10iSXd/erx/Lzk1zS3X82Md4zkpyRJBs3bjx127ZtB1zH9WLHrs+s\ndRWSJBuPSW764lrXIjnlhGPXugrrivjYS2zsS2zsS3ysP7t3786GDRvWuhqsQ2JjfbJf2cs+ZV9i\nY1/iYy+xsa8jKTa2bt161cxjh+Y6+mAm0t27xv+fqKo3Zrj17KaqOr67b6yq45N8Yux9V5ITZwa/\n91g2Nd7zkpyXJJs3b+4tW7YcTDXXhdPPvHitq5Akec4pN+dFOw5qta+KnU/cstZVWFfEx15iY19i\nY1/iY/3Zvn17joT9NKtPbKxP9it72afsS2zsS3zsJTb2dXuMjQO+Va2q7lpVX7PQneT7k1yT5KIk\nTx57e3KSN43dFyU5raruVFX3SXJSkisOdPoAAAAAHFoHk67bmOSNVbUwnj/u7rdW1XuTvK6qfjLJ\nR5M8Lkm6+9qqel2S65LcnOTp3X3LQdUeAAAAgEPmgBNH3f3hJN8yUf4vSb53zjBnJzn7QKcJAAAA\nwOFzsG9VAwAAAOAIJXEEAAAAwCSJIwAAAAAmSRwBAAAAMEniCAAAAIBJEkcAAAAATJI4AgAAAGCS\nxBEAAAAAkySOAAAAAJgkcQQAAADAJIkjAAAAACZJHAEAAAAw6ei1rgAAAKtr05kXr3UV8pxTbs7p\n66AeO8955FpXAQBu01xxBAAAAMAkiSMAAAAAJkkcAQAAADBJ4ggAAACASRJHAAAAAEySOAIAAABg\n0tFrXQEAYP+th9etJ165DgBwpHPFEQAAAACTJI4AAAAAmCRxBAAAAMAkiSMAAAAAJkkcAQAAADBJ\n4ggAAACASRJHAAAAAEySOAIAAABgksQRAAAAAJMkjgAAAACYJHEEAAAAwCSJIwAAAAAmSRwBAAAA\nMEniCAAAAIBJEkcAAAAATJI4AgAAAGCSxBEAAAAAkySOAAAAAJgkcQQAAADAJIkjAAAAACZJHAEA\nAAAwSeIIAAAAgEkSRwAAAABMkjgCAAAAYNJhTxxV1SOq6vqquqGqzjzc0wcAAABgZQ5r4qiqjkry\nsiQ/kOTkJE+oqpMPZx0AAAAAWJnDfcXRg5Lc0N0f7u6vJNmW5NGHuQ4AAAAArMDhThydkORjM58/\nPpYBAAAAsM5Udx++iVU9Nskjuvunxs8/keQ7uvvnFvV3RpIzxo/3TXL9Yavkke+4JJ9c60qwbokP\n5hEbzCM2mEdssBTxwTxig3nExur7hu6+13I9HX04ajJjV5ITZz7feyzbR3efl+S8w1Wp25OqurK7\nN691PVifxAfziA3mERvMIzZYivhgHrHBPGJj7RzuW9Xem+SkqrpPVf27JKcluegw1wEAAACAFTis\nVxx1981V9XNJ3pbkqCQXdPe1h7MOAAAAAKzM4b5VLd39liRvOdzTZQ+3ALIU8cE8YoN5xAbziA2W\nIj6YR2wwj9hYI4f14dgAAAAA3HYc7mccAQAAAHAbIXEEAAAAwKQjJnFUVV1Vr575fHRV/XNVvfkw\n1+OsqtpVVVdX1TVV9UOHc/qHU1WdXlVfv8T3/1dVPWw/xvcHVXXy6tRu7VXVvavqTVX1oar6/6rq\nd8a3Cc7r/+5V9bSZz19fVX+2n9Pcr2W+nlXVn1TVB6rq2bPzVVXPqqq7rHX9bouq6paZtulPl1uO\nVbV7BeO0nlaoqn6lqq4dl9fVVfUdY/mqtX0rWWerpao2VdWPLfH9frVhVbW5ql6yOrUjmY65lW6b\n+7sNj8cELx27n1pVTzqYurM2FtqQAzkGWTSe7VW14ldmV9WWpY7Zl2tvuLWq2llVx02UH7b9xDi9\nTVV1zdh9RLTz4/neLxxsP7cFh2qfcbAOxTqoqvtV1V9U1fXj+dv/rKoav9uzj1s0zFOqase4n72m\nqh69/3Nz23DEJI6SfD7J/avqmPHz9yXZtRojrqr9fYj4i7v7gUl+NMkFVXVQy7kG63FdnZ5kMnFU\nVUd196919ztWOrLu/qnuvm61KjdRp8P2MPixkXlDkj/v7pOSfFOSDUnOXmKwuyfZkzjq7n/s7sfu\nz3T3d5mvttVaxlX175N8e3c/oLtfvGi+npVEQuLAfLG7H9jd90/ylSRPPZiRWU8rV1XfmeRRSb6t\nux+Q5GFJPpYc+rbvENqUZPJErqqO3t82rLuv7O5nrlblJuq0Xvelh8QSMbfSbfOAt+Hu/r3uftWB\nDLtYVR21GuNh/xzIMcghtilz2hvWxoFsm4e6nU+0GYfAId9nrAdjDuGiJOd0932TfEuS78rMudnE\nMPdO8itJvnvczz44yQcOQ3XXxJF2APWWJI8cu5+Q5E8Wvqiqe1bVn4/ZwMur6gHLlJ9VVX9UVe9J\n8kdVdVRVvbCq3jv2+zPLVaa7P5jk5iTHVdW9qur14/DvraqHzEzngvGXmQ9X1TPH8k1jtvNVSa5J\ncmJVPWHMaF5TVb859ndUVV04lu2oqmeP5d9YVW+tqquq6t1V9Z8W12+c9ivH7z9aVf+tql4wjuet\nVXXHsb9fG+t8TVWdNx58PzbJ5iSvqeFXzGPGXzZ+s6rel+RHx3o9tqqOHeflvuP4/qSqfnqiPnt+\nnaqq3VV1dlX97bheNo7j+ejCgX9V3bWqPlZVd5w3v2Mdfq+q/ibJC6rqe8b6Xl1V76+qrxn7+z9n\n1u2vL7duV+C/JPlSd//hGAu3JHl2kqdU1dNquBJpew3Z7OeNw5yT5BvHur2w9v2F5vQxTi8dl/PP\nVdX/GOfh8qq658z8PraGX3QW5nNHVfV+xMVRVfVb4/r+QFU9Yyzf88vVOP7tY/fibeXyqrrf4vU6\nrq8LquqKsd5LZeTfnuSEsf4PnZmvZ2ZIVr6zqt55wGuHJHl3kv8jScZYumb8e9biHqvqVVX1mJnP\nrxnXn/W0cscn+WR3fzlJuvuT3f2PyWTb98IarhJ5R1U9qPbuH35o7Of0OW3IPlbSrq1wepvG9uJ9\n4993jYOfk+Sh4/p/9livi6rqL5JctqgNe3ZVXTB2nzLG2l0W1WXPFQc1f994TlU9fWaYPb8mTs1v\nTe9LD2ifeRt0q5hL8tgs2jar6uVVdeUYAwvLbZ9tuOYca8yzaL1sr+HY4Iqq+vuqeuhYfpeqel1V\nXVdVb6yqv1m0Hbyoqv42yXdW1alV9Zfj+nlbVR2/UM9x+A9U1baxbHI/z/6pWx+DvGHcRj5UVS+Y\n6e9W8TMxrp8c1/0VVfWKmvjVflH/U+twcXtzv3F8V4/r/6Rx2F8Zp/VXNRxv3uav+FiJGo6xLq7h\nuPmaqnr8zHfHVNUlNX3sPbmfqOGY86pxvZ4xU75429xZVb9ew75hx3Jt50ra+fG7H59Zv79fYzJo\nXrzVonOQOdPeXlUvHof/YFV9+xjXH6qq/zXT3+Qx0WxsJbnvTPkRs/+YiKPnZRX3GWu5Dmpif7HI\njyV5T3e/PUm6+wtJfi7JmUsssq9L8rkku8dhdnf3R1ayrG+TuvuI+Muwwh6Q5M+S3DnJ1Um2JHnz\n+P3vJnne2P1fkly9TPlZSa5Kcsz4+Ywkvzp23ynJlUnuM1GPs5L8wtj9HUn+MUkl+eMM2cgk+Q9J\nPjjT//87jvO4JP+S5I4Zfln5apIHj/19fZJ/SHKvJEcn+Yskj0lyapJLZ6Z/9/H/ZUlOmqnHX8yp\n61+N0/uWJF9I8gPjd29M8pix+54zw/xRkv86dm9Psnnmu51JfnHm84VJHjt2f1+Sv05yWpK3zlmH\ne8aXpGem84KZZf+mJFvH7scn+YOl5nesw5uTHDV+/t9JHjJ2bxiX5fdneLVjZUimvjnJfz7IeHxm\n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\nRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(20,5))\n", "plt.grid(True)\n", "plt.bar(left=[l*0.8 for l in range(8)],height=a1, width=0.4,\n", " tick_label=list(a1.index))\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "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.2" } }, "nbformat": 4, "nbformat_minor": 2 }