Skip to content

Instantly share code, notes, and snippets.

@SirEdvin
Created November 25, 2015 12:07
Show Gist options
  • Save SirEdvin/f3f53a02b031445a5f1c to your computer and use it in GitHub Desktop.
Save SirEdvin/f3f53a02b031445a5f1c to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"application/javascript": [
"IPython.OutputArea.auto_scroll_threshold = 9999;"
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%javascript\n",
"IPython.OutputArea.auto_scroll_threshold = 9999;"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import numpy\n",
"import re\n",
"from pylab import *\n",
"import matplotlib.patches as mpatches\n",
"import matplotlib.lines as mlines\n",
"\n",
"def parsefile(file):\n",
" lines = file.readlines()\n",
" data = {'real':[], 'prediction':[], 'delta':[], 'scale':[]}\n",
" for line in lines:\n",
" line = line.replace(' .', ' 0.')\n",
" s = re.split('\\s{2,}|\\s\\.',line)\n",
" if len(s)<2:\n",
" break\n",
" elif s[0]=='future':\n",
" data['future'] = float(s[1])\n",
" data['prediction'].append(float(s[1]))\n",
" elif (s[0]=='Sum of Delta' or s[0]=='Sum of (Delta ^ 2)' or s[0]=='MSE'):\n",
" data[s[0]] = float(s[1])\n",
" else:\n",
" data['scale'].append(float(s[0]))\n",
" data['real'].append(float(s[1]))\n",
" data['prediction'].append(float(s[2]))\n",
" data['delta'].append(float(s[3]))\n",
" if len(data['prediction']) > len(data['scale']):\n",
" scale = data['scale']\n",
" scale.append(scale[len(scale)-1]+1)\n",
" return data\n",
"\n",
"def normalize_data(results):\n",
" true_len = len(results[5]['prediction'])\n",
" if len(results[5]['real']) < true_len:\n",
" results[5]['real'].append(results[5]['future'])\n",
" if len(results[5]['delta']) < true_len:\n",
" results[5]['delta'].append(0)\n",
"\n",
"def drawresults(results, image='result.png', linestyle='k-', secondlinestyle='k--', xlabel = \"Point\", ylabel = \"IPC\"):\n",
" count = len(results)\n",
" fig, axy = subplots(count//2+count%2,2)\n",
" for result in results:\n",
" index = results.index(result)\n",
" plt = axy[index//2,index%2]\n",
" plt.plot(result['scale'],result['prediction'],linestyle)\n",
" plt.plot(result['scale'] if 'future' not in result else result['scale'][:-1], result['real'],secondlinestyle)\n",
" plt.set_xlabel(xlabel)\n",
" fig.tight_layout()\n",
" prediction_line = mlines.Line2D([], [], color='black', label='Prediction IPC')\n",
" real_line = mlines.Line2D([], [], color='black', label='Real IPC', linestyle='--')\n",
" lgd = fig.legend([prediction_line, real_line], ['Prediction IPC', 'Real IPC'],bbox_to_anchor=(0, 1, 1, 1), loc = 3,\n",
" ncol=2, mode=\"expand\", borderaxespad=0.)\n",
" fig.savefig(image, dpi=500,bbox_inches='tight', bbox_extra_artist=[lgd])\n",
" show()\n",
" \n",
"def drawpredictions(results, image='prediction.png', linestyle='k-', secondlinestyle='k--', label='Window number', legendlabel = 'IPC(+1)', legendcolor = \"black\"):\n",
" IPC1data = list(map(lambda x:x['prediction'][len(x['prediction'])-1], results))\n",
" RIPC1data = list(map(lambda x:x['real'][len(x['real'])-1],results))\n",
" RIPC1data.pop()#Тому що останнє вікно в якому є лише\n",
" #future значення не враховується\n",
" ipc1line = plot(range(1,len(IPC1data)+1), IPC1data, linestyle, label='Prediction IPC(+1)')\n",
" ripc1line = plot(range(1,len(RIPC1data)+1),RIPC1data, secondlinestyle,label='Real IPC(+1)')\n",
" xlabel(label)\n",
" ipc1_line = mlines.Line2D([],[],color='black',label='Predicted IPC(+1)', linestyle= '-')\n",
" ripc1_line = mlines.Line2D([],[],color='black',label='Real IPC(+1)', linestyle='--')\n",
" legend(handles=[ipc1_line,ripc1_line])\n",
" savefig(image, dpi = 500)\n",
" show()\n",
" \n",
"def drawmse(results, image='mse.png', linestyle='k-', label='Window number', legendlabel='MSE', legendcolor='black'):\n",
" MSEdata = list(map(lambda x: x['MSE'], results))\n",
" plot(range(1,len(MSEdata)+1), MSEdata, linestyle)\n",
" xlabel(label)\n",
" mse_line = mlines.Line2D([],[],color='black',label='MSE',linestyle='-')\n",
" legend(handles=[mse_line])\n",
" savefig(image, dpi = 500)\n",
" show()\n",
" \n",
"def comparemse(results, v1results, image='compare.png', linestyle='k-', secondlinestyle = 'k--', label='Window number', firstlabel='MSE', secondlabel='Full MSE', legendcolor= 'black'):\n",
" MSEdata = list(map(lambda x: x['MSE'], results))\n",
" V1MSEdata = list(map(lambda x: x['MSE'], v1results))\n",
" plot(range(1,len(MSEdata)+1), MSEdata, linestyle, range(1,len(V1MSEdata)+1), V1MSEdata, secondlinestyle)\n",
" xlabel(label)\n",
" mse_line = mlines.Line2D([],[],color=legendcolor, linestyle='-', label=firstlabel)\n",
" v1mse_line = mlines.Line2D([],[],color='black',linestyle='--', label=secondlabel)\n",
" legend(handles=[mse_line, v1mse_line])\n",
" savefig(image, dpi = 500)\n",
" show()"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Аналіз результатів було виконано\n",
"('MSE:', [0.18, 0.19, 0.11, 0.15, 0.11, 0.06])\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f0aa776bf50>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAWoAAAEPCAYAAABr4Y4KAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xlc1NX6wPHPQWQzUHGLVDBZ8orLlcTdBE0pl9S6WZqS\npZZdu8VVM81KvWZpqW2/sldlC2b9/Gl51bS0FHDJNQkRzQXEPROXwFRAOb8/GCbEGRxkZr4DPO/X\ni5cz8z3zPc9M9MzDme85R2mtEUII4brcjA5ACCFE6SRRCyGEi5NELYQQLk4StRBCuDhJ1EII4eIk\nUQshhIuzKVErpWoqpRYrpfYqpdKUUu0dHZgQQohC7ja2extYpbV+UCnlDvg4MCYhhBDFqBtNeFFK\n+QHJWutg54QkhBCiOFuGPm4HspRSnyqldiqlPlRKeTs6MCGEEIVsSdTuQATwntY6ArgITHRoVEII\nIcxsGaM+BhzVWu8w3V8CPF+ykVJKFg0RQogy0lqrG7W5YUWttT4FHFVKhZke6gHssdJWfrRmypQp\nhsfgCj/yPsh7Ie9F6T+2svWqj2eAhUqp6kAG8JjNPQghhCgXmxK11joFiHRwLEIIISyQmYkOEBUV\nZXQILkHeh7/Ie/EXeS/K7obXUdt8IqW0vc4lhBBVgVIKbcOXibaOUQtRZTRp0oTDhw8bHYaoRIKC\ngsjMzLzp50tFLUQJpirH6DBEJWLtd8rWilrGqIUQwsVJohZCCBcniVoIIVycJGohBACHDx/Gzc2N\ngoICAHr37s2CBQsc3u+0adMYNmyYw/sByMvLIzw8nFOnTtn1nH/72984c+aM3c5Zkl0TdU5Ojj1P\nJ4QooUmTJvj4+ODn50dAQACPPfYYFy9etNv5lfrre61Vq1bZlEBvv/121q1bZ7d+i0tKSqJx48bm\n+1FRUXh7e+Pn50f9+vV54IEH+O2338zHt23bRp8+fahduzZ169alQ4cOfPbZZ+bjH374Id26daNB\ngwZlii8xMZHu3btTq1YtmjZtes0xDw8PRowYwWuvvVamc5aFXRP1vHnz7Hk6IUQJSilWrlxJdnY2\nO3fuZMeOHbzyyisW21aWK1eKJ3GlFO+//z7Z2dns37+f8+fPM3bsWAA2b95Mjx49iI6OJj09nays\nLObNm8fq1avNz//ggw+sfvgkJSURHR1t8ViNGjUYMWIEs2fPtnh88ODBfP755+Tn59/syyyVXRP1\n3Llz7frpLoS4XlECDggI4N5772X37t0AREdH8+KLL9KlSxdq1KjBoUOHyM7OZsSIEdx22200btyY\nl156yfz8goICxo8fT7169QgJCWHlypXX9BMdHc0nn3xivv/RRx/RvHlz/Pz8aNGiBb/88guxsbEc\nOXKEfv364efnZ05kW7ZsoXPnztSuXZs2bdqQlJRkPk9mZiZRUVHUrFmTmJgYsrKybur116pViwce\neMD8+idMmMBjjz3G+PHj8ff3B6BNmzZ89dVXABw9epRDhw7Rvr31nQStVfaRkZE88sgj3H777RaP\nN2zYEH9/f7Zs2VKm12IruybqTp068dFHH9nzlEIIK44ePcqqVauIiIgwP/bFF1/w8ccfk5OTQ2Bg\nII8++iienp5kZGSQnJzMDz/8wMcffwwUDgOsWrWKlJQUduzYwZIlS6z2tXjxYv7zn//wxRdfkJ2d\nzfLly6lTpw7x8fEEBgby7bffkp2dzfjx4zlx4gR9+/bl5Zdf5ty5c8yePZsHHnjAPIY7ZMgQIiMj\nycrK4sUXX+Tzzz+/qdeflZXF119/TUREBJcuXWLz5s088MADVtunpqbStGlT3Nwc89Vcs2bNSElJ\ncci57Toz8e233+aWW26x5ymFcDnWqq6yutmhiQEDBuDu7k7NmjXp27cvkyZNMh8bPnw4zZo1AwoT\n2Xfffccff/yBp6cnXl5exMXF8dFHHzFq1CgWL15MXFwct912GwCTJk26pvItbv78+UyYMMH8oVBy\nnLb4a/niiy/o06cPMTExAPTo0YO2bduyatUqoqKi2LFjB2vXrqV69ep07dqVfv36len1/+tf/2L8\n+PHUqFGDqKgo5syZw7lz5ygoKCAgIMDq886fP4+vr6/V4+UdKvL19eX8+fPlOoc1dk3UxQf9hais\njB77XbZsmdWx1OL/Dx4+fJj8/Hxz8ipaAzkwMBCAEydOXNM+KCjIap9Hjx4lONi2bVMPHz7M//3f\n/7FixQpzv1euXKF79+6cOHGC2rVr4+39125+QUFBHDt2zKZzA7z77rs8/vjj1zx26dIl3NzcOHny\nJGFhYRafV7t27esueJg1axYzZ85EKUV+fj65ubn4+/ujtUYpxdmzZ22OKycnh1q1atncvizk8jwh\nKpjSPiiKV/uNGzfGy8uLM2fOcPbsWc6dO8f58+fZtWsXUDjGffToUXP70tY3ady4Menp6Tfss6ht\nbGwsZ8+eNfebk5PDhAkTCAgI4Ny5c1y6dMnc/siRI6W/YBt4e3vTsWNHvv76a6ttWrVqxaFDh8yX\nHwI8//zznDt3jrNnz/Ltt9/SpUsXc8xlSdIAe/fupXXr1jf9GkojiVqISurWW2+lV69e/Pvf/yYn\nJwetNRkZGaxfvx6AQYMG8c4773D8+HHOnTvHrFmzrJ5r5MiRzJ49m507dwKQnp5uTvINGjQgIyPD\n3Hbo0KGsWLGCNWvWUFBQwOXLl0lKSuLEiRMEBgbStm1bpkyZQn5+Phs3bjRX3uX1+uuv89lnnzFn\nzhxzkk1JSWHw4MFA4Rd+ISEhbNu2rczn1lqTm5tLXl4eBQUF5ObmXnOFx4kTJzh37hwdOnSwy2sp\nSRK1EBVIaePjlo7Fx8eTl5dH8+bN8ff358EHHzRfdzxq1ChiYmJo3bo1bdu2ve6LuOLn+8c//sHk\nyZMZMmQIfn5+DBw40JwMJ02axPTp0/H392fu3Lk0atSIZcuW8eqrr1KvXj2CgoKYPXu2uZJduHAh\nW7ZsoU6dOkyfPp1HH33ULq+/Y8eOrFu3jrVr1xIcHEzdunUZPXo0ffr0Mbd58skniY+Pt7m/IuvX\nr8fb25u+ffty9OhRfHx8zGPwRa/p0UcfpXr16mU+ty0ctnrepk2b+PPPP+nVq5ddzi+Es8jqeZVX\nXl4eERERrF27tsyTXko759///nfWr19P3bp1LbYp7+p5DkvUa9asIS4ujt27dzvschghHEEStbA3\nl13mtGfPnvj6+vLNN984qgshhKgSHJaolVK8+OKLvPLKK1KdCCFEOTh0TKJv374AfPvtt47sRggh\nKjWHJuqiqlqmlQshxM1z+J6JBQUF5OXl4eXlZZd+hHA0+TJR2JvLXvUhREUliVrYm8te9SGEEMI+\n7Jqot27das/TCSGcqOT60460Z88eIiMj7XrO1NRUOnfubNdzugq7JuoZM2bY83RCiBJKbsU1bNgw\np2yBV3JfQzc3N3x9ffHz86Nx48aMGzfumj/tv/zySyIjI/H19aVhw4b06dOHTZs2mY+//PLLTJgw\nocxxvPfee0RGRuLl5XXdCnotW7akdu3a122AUBnYlKiVUplKqRSlVLJSyuqKJtu3by914exff/2V\nMWPG3ESYQgi4diuulJQUUlNTrW7F5Yi+i9/etWsX2dnZrF27li+//NJ8ddfcuXMZO3YsL774Ir//\n/jtHjhxhzJgx5sWXTp48SWJiIv3797fYz7Rp0/jPf/5j8VjDhg156aWXGDFihMXjQ4YM4YMPPijP\ny3RJtlbUBUCU1rqN1rqdtUbjxo3j1VdftXqSJk2asGzZMvMKXEKIsiuqXOvXr09MTAxpaWnmY3l5\neYwfP56goCACAgL45z//SW5uLlC4cH6/fv2oX78+derUoV+/fhw/fvymYyiKIywsjK5du7J7926y\ns7OZMmUK77//Pv3798fb25tq1arRu3dvZs6cCcCPP/5IREQEHh4eZe53wIAB3HfffeattkqKiopi\n7dq1Dtu70Ci2JmplS9vRo0eTkJDAvn37LB738vLiueeec1oFIERlduzYMb777rtr9gB8/vnnOXjw\nILt27eLgwYMcP37cXJ0WFBTw+OOPc/ToUY4cOYKPjw9PP/10uePYs2cPGzZsICIigs2bN5Obm8uA\nAQOstk9NTeWOO+4od7+W3HbbbVSvXt1qDqqobE3UGvhBKbVdKTXKWqNbbrmFp59+2vzJacmoUaP4\n6aefzBtSClHRTJ06FaXUdT9Tp061ub21trYYMGAAfn5+BAYGEhwczOTJk83HPvroI958801q1qxJ\njRo1mDhxonlzV39/fwYOHIinpyc1atRg0qRJ5rWpb0ZERAR16tShf//+PPHEEwwfPpwzZ85Qt27d\nUhdiu9GWWOXlyC2xjGLrVlydtdYnlVL1KEzYe7XWGy01/Ne//kVISAiZmZk0adLkuuM+Pj6MHTuW\nGTNmmH+BhKhIpk6dWqZEW9b2N1K0Fdf69eu57777+Pnnn4mMjOT06dNcvHiRO++809y2oKDAPERx\n6dIl4uLiWL16NefPn0drzYULF8zbTpVVcnLydbty16lTh6ysLAoKCqwma0tbYvXr14+NGzeilOLS\npUsopXjrrbcA6NKlC8uXL7c5LkduiWUUmxK11vqk6d/TSqmlQDvgukRd9Mv4t7/9jWeffZZly5ZZ\nPN9TTz3Ffffdx+XLl2XGohBlVJR477rrLp5++mkmTJhAQkICdevWxcfHh7S0NIubvM6ZM4cDBw6w\nfft26tWrR0pKChERETedqC1N4OjYsSOenp7897//5f7777f4vFatWl23eH/xXV6mTZuGUoqXX365\nzDGdOHGC/Px8hw2tlFdiYiKJiYllft4Nhz6UUj5KqVtMt2sAvQCL4xZFlcM333zDhg0bOHnypMVz\n+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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f0aa7632190>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\nNg0aNHA6jsccPXqU6Oho4uLimDVrVq0YmXLmzBnGjBlDdnY2b775Js2aNXM6kjmPjboxjujZsycd\nOnQIqMnODh8+TGRkJMOGDas1RR6gTp06LF68mF/96lfceeedHDt2zOlI5iJZi9543O7du7nrrrv4\n7LPPaNy4sdNxLklubi4xMTE89thjPPbYY07HcYSqkpiYyLp169i8eTPXXHON05GMi7XojWO6dOlC\nr169mDt3rtNRLsm+ffuIiopi6tSptbbIQ2kxmTVrFsOHDycyMpK8vDynI5lqsha98YqcnBzCw8PJ\nycmhefPmTseptl27dnHPPfcwZ84c7r//fqfj+Iy5c+cyZ84c0tPTCQkJcTpOrWcteuOokJAQ+vfv\nz3PPPed0lGorW9/1lVdesSJ/nrJ1aO+44w727t3rdBzjJmvRG6/Jz8+nS5cu7N+/n6uvvtrpOG7Z\nvHkz999/PykpKfz61792Oo7PWrFiBQkJCaxfv57bb7/d6Ti1lk1qZnzCxIkTKS4uZv78+U5HqZIv\nrO/qT9544w3GjBlj69A6yAq98Qlff/01oaGhZGZm0qZNG6fjVGrVqlU8+uijrF+/3ifWd/UXtg6t\ns6yP3viEli1bMn78eKZPn+50lEotWbKEhIQE0tPTrchXU0xMDKmpqQwfPpw33njD6TimEtaiN15X\nWFhI+/btycjI4Oabb3Y6zjnmz5/P888/z+bNm20UySXIzMwkLi6Ol156iWHDhjkdp9awrhvjU55/\n/nl27NjBmjVrnI5ylr+s7+ov9u3bR58+fWwd2hpkhd74lFOnTtGuXTvWrl3rePeIP67v6i9yc3OJ\njo62dWhriBV643NeeeUVUlNTHV2Jqvz6rm+99RYtW7Z0LEugsnVoa47djDU+Z9SoURw8eJCtW7c6\ncv2y2Rh37tzJli1brMh7SXBwMNu2bWPZsmVMmTKl1qw65svcKvQiEisiWSKSIyKTKvj+RhF5X0R+\nEJGJ5ba3FpEtIrJfRPaKyKOeDG/8S7169Zg+fbojSw4WFxczfPhwv1/f1V+UX4f20UcftXVoHVZl\noReRIGAB0AfoAAwTkdDzdjsOPAI8f97208BEVe0A9ADGVXCsqUWGDh1KUVER69evr7Fr/vDDDwwa\nNIiioqKAWN/VX5StQ/vxxx/bOrQOc6dFHwbkqmqeqhYDK4F+5XdQ1WOquovSwl5++1FV3e16XwQc\n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\nAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f0aa76fcfd0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Порівняння з першим варіантом\n"
]
}
],
"source": [
"files = [\"Lab5_1.txt\",\"Lab5_2.txt\",\"Lab5_3.txt\",\"Lab5_4.txt\",\"Lab5_5.txt\",\"Lab5_6.txt\"]\n",
"results = []\n",
"for file in files:\n",
" a = open(file)\n",
" results.append(parsefile(a))\n",
" a.close()\n",
"print('Аналіз результатів було виконано')\n",
"print('MSE:', list(map(lambda x: x['MSE'], results)))\n",
"drawresults(results)\n",
"drawpredictions(results)\n",
"drawmse(results)\n",
"print('Порівняння з першим варіантом')\n",
"#v1files = [\"./V1_Lab1/Lab1_1.txt\",\"./V1_Lab1/Lab1_2.txt\",\"./V1_Lab1/Lab1_3.txt\",\"./V1_Lab1/Lab1_4.txt\",\"./V1_Lab1/Lab1_5.txt\",\"./V1_Lab1/Lab1_6.txt\"]\n",
"#v1results = []\n",
"#for v1file in v1files:\n",
"# a = open(v1file)\n",
"# v1results.append(parsefile(a))\n",
"# a.close()\n",
"#print('Аналіз результатів першого варіанту було виконано')\n",
"#print('MSE:', list(map(lambda x: x['MSE'], v1results)))\n",
"#comparemse(results, v1results)"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>prediction</th>\n",
" <th>real</th>\n",
" <th>delta</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4.78</td>\n",
" <td>4.6</td>\n",
" <td>0.180000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>14.20</td>\n",
" <td>14.2</td>\n",
" <td>0.000001</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>8.97</td>\n",
" <td>9.1</td>\n",
" <td>0.130000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>6.36</td>\n",
" <td>6.2</td>\n",
" <td>0.160000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4.53</td>\n",
" <td>4.6</td>\n",
" <td>0.070000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>9.27</td>\n",
" <td>9.4</td>\n",
" <td>0.130000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>7.49</td>\n",
" <td>7.4</td>\n",
" <td>0.090000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>3.05</td>\n",
" <td>3.0</td>\n",
" <td>0.050000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2.17</td>\n",
" <td>2.4</td>\n",
" <td>0.230000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>0.79</td>\n",
" <td>0.7</td>\n",
" <td>0.090000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>0.14</td>\n",
" <td>0.1</td>\n",
" <td>0.040000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>0.10</td>\n",
" <td>0.1</td>\n",
" <td>0.000153</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>5.23</td>\n",
" <td>5.7</td>\n",
" <td>0.470000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" prediction real delta\n",
"0 4.78 4.6 0.180000\n",
"1 14.20 14.2 0.000001\n",
"2 8.97 9.1 0.130000\n",
"3 6.36 6.2 0.160000\n",
"4 4.53 4.6 0.070000\n",
"5 9.27 9.4 0.130000\n",
"6 7.49 7.4 0.090000\n",
"7 3.05 3.0 0.050000\n",
"8 2.17 2.4 0.230000\n",
"9 0.79 0.7 0.090000\n",
"10 0.14 0.1 0.040000\n",
"11 0.10 0.1 0.000153\n",
"12 5.23 5.7 0.470000"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>prediction</th>\n",
" <th>real</th>\n",
" <th>delta</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>14.36</td>\n",
" <td>14.2</td>\n",
" <td>1.600000e-01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>8.93</td>\n",
" <td>9.1</td>\n",
" <td>1.700000e-01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>6.30</td>\n",
" <td>6.2</td>\n",
" <td>1.000000e-01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4.64</td>\n",
" <td>4.6</td>\n",
" <td>4.000000e-02</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>9.24</td>\n",
" <td>9.4</td>\n",
" <td>1.600000e-01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>7.53</td>\n",
" <td>7.4</td>\n",
" <td>1.300000e-01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>3.00</td>\n",
" <td>3.0</td>\n",
" <td>4.155824e-07</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2.22</td>\n",
" <td>2.4</td>\n",
" <td>1.800000e-01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>0.73</td>\n",
" <td>0.7</td>\n",
" <td>3.000000e-02</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>0.18</td>\n",
" <td>0.1</td>\n",
" <td>8.000000e-02</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>0.10</td>\n",
" <td>0.1</td>\n",
" <td>9.777887e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>5.58</td>\n",
" <td>5.7</td>\n",
" <td>1.200000e-01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>1.49</td>\n",
" <td>2.0</td>\n",
" <td>5.100000e-01</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" prediction real delta\n",
"0 14.36 14.2 1.600000e-01\n",
"1 8.93 9.1 1.700000e-01\n",
"2 6.30 6.2 1.000000e-01\n",
"3 4.64 4.6 4.000000e-02\n",
"4 9.24 9.4 1.600000e-01\n",
"5 7.53 7.4 1.300000e-01\n",
"6 3.00 3.0 4.155824e-07\n",
"7 2.22 2.4 1.800000e-01\n",
"8 0.73 0.7 3.000000e-02\n",
"9 0.18 0.1 8.000000e-02\n",
"10 0.10 0.1 9.777887e-04\n",
"11 5.58 5.7 1.200000e-01\n",
"12 1.49 2.0 5.100000e-01"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>prediction</th>\n",
" <th>real</th>\n",
" <th>delta</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>9.03</td>\n",
" <td>9.1</td>\n",
" <td>0.070000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>6.20</td>\n",
" <td>6.2</td>\n",
" <td>0.000002</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>4.59</td>\n",
" <td>4.6</td>\n",
" <td>0.010000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>9.35</td>\n",
" <td>9.4</td>\n",
" <td>0.050000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>7.48</td>\n",
" <td>7.4</td>\n",
" <td>0.080000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>3.13</td>\n",
" <td>3.0</td>\n",
" <td>0.130000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2.51</td>\n",
" <td>2.4</td>\n",
" <td>0.110000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>0.65</td>\n",
" <td>0.7</td>\n",
" <td>0.050000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>0.20</td>\n",
" <td>0.1</td>\n",
" <td>0.100000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>0.11</td>\n",
" <td>0.1</td>\n",
" <td>0.010000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>5.55</td>\n",
" <td>5.7</td>\n",
" <td>0.150000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>1.93</td>\n",
" <td>2.0</td>\n",
" <td>0.070000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>1.25</td>\n",
" <td>1.5</td>\n",
" <td>0.250000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" prediction real delta\n",
"0 9.03 9.1 0.070000\n",
"1 6.20 6.2 0.000002\n",
"2 4.59 4.6 0.010000\n",
"3 9.35 9.4 0.050000\n",
"4 7.48 7.4 0.080000\n",
"5 3.13 3.0 0.130000\n",
"6 2.51 2.4 0.110000\n",
"7 0.65 0.7 0.050000\n",
"8 0.20 0.1 0.100000\n",
"9 0.11 0.1 0.010000\n",
"10 5.55 5.7 0.150000\n",
"11 1.93 2.0 0.070000\n",
"12 1.25 1.5 0.250000"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>prediction</th>\n",
" <th>real</th>\n",
" <th>delta</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>6.12</td>\n",
" <td>6.2</td>\n",
" <td>0.080000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>4.49</td>\n",
" <td>4.6</td>\n",
" <td>0.110000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>9.40</td>\n",
" <td>9.4</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>7.43</td>\n",
" <td>7.4</td>\n",
" <td>0.030000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>3.15</td>\n",
" <td>3.0</td>\n",
" <td>0.150000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2.54</td>\n",
" <td>2.4</td>\n",
" <td>0.140000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>0.78</td>\n",
" <td>0.7</td>\n",
" <td>0.080000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>0.18</td>\n",
" <td>0.1</td>\n",
" <td>0.080000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>0.10</td>\n",
" <td>0.1</td>\n",
" <td>0.002045</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>5.67</td>\n",
" <td>5.7</td>\n",
" <td>0.030000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>1.90</td>\n",
" <td>2.0</td>\n",
" <td>0.100000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>1.41</td>\n",
" <td>1.5</td>\n",
" <td>0.090000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>0.79</td>\n",
" <td>1.2</td>\n",
" <td>0.410000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" prediction real delta\n",
"0 6.12 6.2 0.080000\n",
"1 4.49 4.6 0.110000\n",
"2 9.40 9.4 0.000003\n",
"3 7.43 7.4 0.030000\n",
"4 3.15 3.0 0.150000\n",
"5 2.54 2.4 0.140000\n",
"6 0.78 0.7 0.080000\n",
"7 0.18 0.1 0.080000\n",
"8 0.10 0.1 0.002045\n",
"9 5.67 5.7 0.030000\n",
"10 1.90 2.0 0.100000\n",
"11 1.41 1.5 0.090000\n",
"12 0.79 1.2 0.410000"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>prediction</th>\n",
" <th>real</th>\n",
" <th>delta</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4.44</td>\n",
" <td>4.6</td>\n",
" <td>1.600000e-01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>9.49</td>\n",
" <td>9.4</td>\n",
" <td>9.000000e-02</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>7.26</td>\n",
" <td>7.4</td>\n",
" <td>1.400000e-01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3.09</td>\n",
" <td>3.0</td>\n",
" <td>9.000000e-02</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2.57</td>\n",
" <td>2.4</td>\n",
" <td>1.700000e-01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>0.66</td>\n",
" <td>0.7</td>\n",
" <td>4.000000e-02</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>0.19</td>\n",
" <td>0.1</td>\n",
" <td>9.000000e-02</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>0.15</td>\n",
" <td>0.1</td>\n",
" <td>5.000000e-02</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>5.75</td>\n",
" <td>5.7</td>\n",
" <td>5.000000e-02</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>2.13</td>\n",
" <td>2.0</td>\n",
" <td>1.300000e-01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>1.41</td>\n",
" <td>1.5</td>\n",
" <td>9.000000e-02</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>1.20</td>\n",
" <td>1.2</td>\n",
" <td>4.652337e-07</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>0.84</td>\n",
" <td>0.9</td>\n",
" <td>6.000000e-02</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" prediction real delta\n",
"0 4.44 4.6 1.600000e-01\n",
"1 9.49 9.4 9.000000e-02\n",
"2 7.26 7.4 1.400000e-01\n",
"3 3.09 3.0 9.000000e-02\n",
"4 2.57 2.4 1.700000e-01\n",
"5 0.66 0.7 4.000000e-02\n",
"6 0.19 0.1 9.000000e-02\n",
"7 0.15 0.1 5.000000e-02\n",
"8 5.75 5.7 5.000000e-02\n",
"9 2.13 2.0 1.300000e-01\n",
"10 1.41 1.5 9.000000e-02\n",
"11 1.20 1.2 4.652337e-07\n",
"12 0.84 0.9 6.000000e-02"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>prediction</th>\n",
" <th>real</th>\n",
" <th>delta</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>9.40</td>\n",
" <td>9.40</td>\n",
" <td>0.003143</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>7.36</td>\n",
" <td>7.40</td>\n",
" <td>0.040000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>3.01</td>\n",
" <td>3.00</td>\n",
" <td>0.010000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2.50</td>\n",
" <td>2.40</td>\n",
" <td>0.100000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.78</td>\n",
" <td>0.70</td>\n",
" <td>0.080000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>0.20</td>\n",
" <td>0.10</td>\n",
" <td>0.100000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>0.13</td>\n",
" <td>0.10</td>\n",
" <td>0.030000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>5.63</td>\n",
" <td>5.70</td>\n",
" <td>0.070000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2.08</td>\n",
" <td>2.00</td>\n",
" <td>0.080000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>1.48</td>\n",
" <td>1.50</td>\n",
" <td>0.020000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>1.20</td>\n",
" <td>1.20</td>\n",
" <td>0.002961</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>0.90</td>\n",
" <td>0.90</td>\n",
" <td>0.000002</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>0.18</td>\n",
" <td>0.18</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" prediction real delta\n",
"0 9.40 9.40 0.003143\n",
"1 7.36 7.40 0.040000\n",
"2 3.01 3.00 0.010000\n",
"3 2.50 2.40 0.100000\n",
"4 0.78 0.70 0.080000\n",
"5 0.20 0.10 0.100000\n",
"6 0.13 0.10 0.030000\n",
"7 5.63 5.70 0.070000\n",
"8 2.08 2.00 0.080000\n",
"9 1.48 1.50 0.020000\n",
"10 1.20 1.20 0.002961\n",
"11 0.90 0.90 0.000002\n",
"12 0.18 0.18 0.000000"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import pandas as pd\n",
"from IPython.display import display\n",
"\n",
"normalize_data(results)\n",
"\n",
"for result in results:\n",
" df = pd.DataFrame(result, columns=['prediction','real','delta'])\n",
" display(df)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.10"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment