{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\tHiroshi TAKEMOTO\n", "\t(take.pwave@gmail.com)\n", "\t\n", "\t

入門機械学習による異常検出

\n", "\t

\n", "\t\t井出 剛著の「入門機械学習による異常検出」(以降、井出本と記す)の例題をSageを使ってお復習いします。\n", "\t

\n", "\n", "\n", "\n", "\t

7章 時系列データの異常検知

\n", "\t

\n", "\t\tこの章でのポイントは、まだ勉強中\n", "\t

\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

準備

\n", "\t

\n", "\t\tいつものように必要なライブラリを読み込み、テストデータとしてRのMASSパッケージに含まれているUScribeを使用します。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%HTML\n", "" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# RとPandasのデータフレームを相互に変換する関数を読み込む\n", "# Rの必要なライブラリ\n", "r('library(ggplot2)')\n", "r('library(jsonlite)')\n", "\n", "# python用のパッケージ\n", "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt \n", "import seaborn as sns\n", "%matplotlib inline\n", "\n", "# jupyter用のdisplayメソッド\n", "from IPython.display import display, Latex, HTML, Math, JSON\n", "# sageユーティリティ\n", "load('script/sage_util.py')\n", "# Rユーティリティ\n", "load('script/RUtil.py')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ " [1] \"FNN\" \"jsonlite\" \"ggplot2\" \"stats\" \"graphics\" \"grDevices\" \"utils\" \"datasets\" \n", " [9] \"methods\" \"base\" " ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# FNNライブラリをロード\n", "r('library(FNN)')" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nNzI4ZGI4MDI1M2i5QcoAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Rの例題をそのまま実行\n", "r('dt <- read.table(file=\"data/qtdbsel102.txt\")' )\n", "r('w <- 100; nk <- 1')\n", "r('Xtr <- dt[1:3000, 2]; Dtr <- embed(Xtr, w)')\n", "r('X <- dt[3001:6000, 2]; D <- embed(X, w)')\n", "r('d <- knnx.dist(Dtr, D, k=nk); a <- d[,1]')\n", "# グラフにプロット\n", "graph = preGraph(\"fig7.1.pdf\")\n", "r('plot(a, ylab=\"anomaly score\", type=\"l\")')\n", "postGraph(graph)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "2901 x 100 dense matrix over Real Double Field (use the '.str()' method to see the entries)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# embedのデータの生成方法を調べる\n", "Dtr = sageobj(r('Dtr'))\n", "Dtr " ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(4.83, 4.84, 4.855, 4.84, 4.83, 4.83, 4.845, 4.84, 4.83, 4.83, 4.845, 4.845, 4.845, 4.83, 4.85, 4.86, 4.85, 4.845, 4.86, 4.87, 4.86, 4.86, 4.875, 4.88, 4.87, 4.87, 4.89, 4.89, 4.885, 4.885, 4.885, 4.895, 4.89, 4.885, 4.88, 4.88, 4.87, 4.84, 4.835, 4.835, 4.815, 4.805, 4.785, 4.785, 4.77, 4.75, 4.73, 4.73, 4.73, 4.705, 4.695, 4.675, 4.68, 4.66, 4.65, 4.65, 4.66, 4.65, 4.635, 4.625, 4.65, 4.635, 4.625, 4.625, 4.645, 4.655, 4.64, 4.645, 4.665, 4.675, 4.65, 4.655, 4.675, 4.68, 4.66, 4.655, 4.675, 4.675, 4.66, 4.65, 4.66, 4.655, 4.635, 4.635, 4.645, 4.665, 4.68, 4.67, 4.67, 4.675, 4.685, 4.68, 4.675, 4.685, 4.695, 4.71, 4.75, 4.805, 4.82, 4.77)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# embedは、100番目から降順にサンプリングしている!\n", "Dtr[0] " ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(4.835, 4.83, 4.84, 4.855, 4.84, 4.83, 4.83, 4.845, 4.84, 4.83, 4.83, 4.845, 4.845, 4.845, 4.83, 4.85, 4.86, 4.85, 4.845, 4.86, 4.87, 4.86, 4.86, 4.875, 4.88, 4.87, 4.87, 4.89, 4.89, 4.885, 4.885, 4.885, 4.895, 4.89, 4.885, 4.88, 4.88, 4.87, 4.84, 4.835, 4.835, 4.815, 4.805, 4.785, 4.785, 4.77, 4.75, 4.73, 4.73, 4.73, 4.705, 4.695, 4.675, 4.68, 4.66, 4.65, 4.65, 4.66, 4.65, 4.635, 4.625, 4.65, 4.635, 4.625, 4.625, 4.645, 4.655, 4.64, 4.645, 4.665, 4.675, 4.65, 4.655, 4.675, 4.68, 4.66, 4.655, 4.675, 4.675, 4.66, 4.65, 4.66, 4.655, 4.635, 4.635, 4.645, 4.665, 4.68, 4.67, 4.67, 4.675, 4.685, 4.68, 4.675, 4.685, 4.695, 4.71, 4.75, 4.805, 4.82)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Dtr[1]は、101番目から降順に100個をサンプリングしている\n", "Dtr[1] " ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Sageとsklearnを使って同様の問題を解く\n", "# トレーニングで学習したnbrsを作成\n", "from sklearn.neighbors import NearestNeighbors\n", "nbrs = NearestNeighbors(n_neighbors=1).fit(Dtr) " ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# 検証用データでの距離を求める\n", "D = sageobj(r('D'))\n", "distances, indices = nbrs.kneighbors(D) " ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nBBHi/wP/WvjX62fHcwAAAABJRU5ErkJggg==\n", "text/plain": [ "Graphics object consisting of 1 graphics primitive" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# グラフに表示\n", "list_plot(distances, plotjoined =True, figsize=4) " ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 1 graphics primitive" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 検証用に使用した心電図のデータ\n", "X = sageobj(r('X'))\n", "list_plot(X, plotjoined =True, figsize=4) " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "SageMath 7.2", "language": "", "name": "sagemath" }, "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 }