From da3c0e7b62e39c36c3688168e0220831a894d3e8 Mon Sep 17 00:00:00 2001 From: Jun Nakano Date: Wed, 27 Jul 2016 12:57:07 +0900 Subject: [PATCH] Added notebook for Chapter 1 --- ch01/web_traffic.ipynb | 333 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 333 insertions(+) create mode 100644 ch01/web_traffic.ipynb diff --git a/ch01/web_traffic.ipynb b/ch01/web_traffic.ipynb new file mode 100644 index 00000000..5761f8e0 --- /dev/null +++ b/ch01/web_traffic.ipynb @@ -0,0 +1,333 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Web アクセスの解析\n", + "## 入力データの把握" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import scipy as sp\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[ 1.00000000e+00 2.27200000e+03]\n", + " [ 2.00000000e+00 1.65600000e+03]\n", + " [ 3.00000000e+00 1.38600000e+03]\n", + " [ 4.00000000e+00 1.36500000e+03]\n", + " [ 5.00000000e+00 1.48800000e+03]\n", + " [ 6.00000000e+00 1.33700000e+03]\n", + " [ 7.00000000e+00 1.88300000e+03]\n", + " [ 8.00000000e+00 2.28300000e+03]\n", + " [ 9.00000000e+00 1.33500000e+03]\n", + " [ 1.00000000e+01 1.02500000e+03]]\n" + ] + } + ], + "source": [ + "data = sp.genfromtxt('data/web_traffic.tsv', delimiter='\\t')\n", + "print data[:10]" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(743L, 2L)\n", + "0\n" + ] + } + ], + "source": [ + "print data.shape\n", + "x = data[:, 0]\n", + "y = data[:, 1]\n", + "print sp.sum(sp.isnan(y))" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nIgMhhBAil/8PJ5sc1Q8RnV8AAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def plot_data():\n", + " plt.scatter(x, y, s=1)\n", + " plt.title('Web traffic over the last month')\n", + " plt.xlabel('Time')\n", + " plt.ylabel('Hits/hour')\n", + " plt.xticks([w * 7 * 24 for w in range(10)],\n", + " ['week %d' % w for w in range(10)])\n", + " plt.autoscale(tight=True)\n", + " plt.grid()\n", + "\n", + "plot_data()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 線形回帰" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model parameters: [ 2.57152281 1002.10684085]\n", + " \n", + "2.572 x + 1002\n", + "319874314.777\n" + ] + } + ], + "source": [ + "def error(f, x, y):\n", + " return sp.sum((f(x) - y)**2)\n", + "\n", + "fp1, residuals, rank, sv, rcond = sp.polyfit(x, y, 1, full=True)\n", + "print 'Model parameters: %s' % fp1\n", + "f1 = sp.poly1d(fp1)\n", + "print f1\n", + "print error(f1, x, y)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "xs = sp.linspace(0, x[-1], 1000)\n", + "plot_data()\n", + "plt.plot(xs, f1(xs))\n", + "plt.legend(['d=%d' % f1.order], loc='upper left')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 高次の多項式で近似" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Error d=1: 3.19874e+08\n", + "Error d=2: 1.82006e+08\n", + "Error d=3: 1.40656e+08\n", + "Error d=10: 1.23592e+08\n", + "Error d=100: 1.11276e+08\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\Owner\\Anaconda2\\lib\\site-packages\\numpy\\lib\\polynomial.py:580: RuntimeWarning: overflow encountered in multiply\n", + " scale = NX.sqrt((lhs*lhs).sum(axis=0))\n", + "C:\\Users\\Owner\\Anaconda2\\lib\\site-packages\\numpy\\lib\\polynomial.py:588: RankWarning: Polyfit may be poorly conditioned\n", + " warnings.warn(msg, RankWarning)\n" + ] + } + ], + "source": [ + "fs = {1: f1}\n", + "for d in (2, 3, 10, 100):\n", + " fp = sp.polyfit(x, y, d)\n", + " fs[d] = sp.poly1d(fp)\n", + "\n", + "for d in (1, 2, 3, 10, 100):\n", + " print 'Error d=%d: %g' % (d, error(fs[d], x, y))" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nCILglv8H/9FWFYWCk3gAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_data()\n", + "lines = ('b-', 'g--', 'r-.', 'm:', 'c-')\n", + "i = 0\n", + "for d in (1, 2, 3, 10, 100):\n", + " plt.plot(xs, fs[d](xs), lines[i], linewidth=2)\n", + " i += 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 折れ線による近似" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Error inflection = 1.36468e+08\n" + ] + }, + { + "data": { + "text/plain": [ + "(0, 6200)" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "inflection = 3.5 * 7 * 24\n", + "xa = x[:inflection]\n", + "ya = y[:inflection]\n", + "xb = x[inflection:]\n", + "yb = y[inflection:]\n", + "\n", + "fa = sp.poly1d(sp.polyfit(xa, ya, 1))\n", + "fb = sp.poly1d(sp.polyfit(xb, yb, 1))\n", + "print 'Error inflection = %g' % (error(fa, xa, ya) + error(fb, xb, yb))\n", + "\n", + "plot_data()\n", + "plt.plot(xs, fa(xs), 'b-', linewidth=2)\n", + "plt.plot(xs, fb(xs), 'b--', linewidth=2)\n", + "plt.ylim((0, 6200))" + ] + } + ], + "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 +}