{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 機械学習の分類の話\n", "\n", "分類(Classification)は、教師あり学習の1つで、予測対象はカテゴリなどの離散的な値を予測します。 \n", "具体的には、メールがスパムかどうかや、画像に映っているのがどういった物体か、といったバイナリで表現できる値を予測する場合にモデルを作ります。\n", "\n", "基本的に、入力データをベクトル $x$ (例えば `[1, 3, 4, 8]` )と考えた時に、予測対象のカテゴリ $y$ ( ham/spam )を出力します。 \n", "入力ベクトルは整数や小数のベクトルの場合が多いですが、「晴れ」「雨」などといったカテゴリ情報も適当な数値に変換して扱うことが多いです。 \n", "同様に出力されたカテゴリは、-1や1などの整数で表現することが多いです。\n", "\n", "このnotebookでは、分類について以下のモデルを紹介します。\n", "\n", "- **パーセプトロン**(Perceptron)\n", "- **ロジスティック回帰**(Logistic Regression)\n", "- **SVM**(Support Vector Machine, サポートベクターマシン)\n", "- **ニューラルネットワーク**(Neural Network)\n", "- **k-NN**(k近傍法, k Nearest Neighbor)\n", "- **決定木**(Decision Tree)\n", " - **ランダムフォレスト**(Random Forest)\n", " - **GBDT**(Gradient Boosted Decision Tree)\n", "\n", "パーセプトロン、ロジスティック回帰、SVM、ニューラルネットワークの4つは、 \n", "2つのクラスを分類する面(**決定境界**(Dicision Boundary)と言います)を表現する関数を学習します。 \n", "k-NNは最近傍法とも呼ばれ、学習済みのデータから距離が近いデータを元に判断をします。 \n", "決定木、ランダムフォレスト、GBDTは、木構造のルールを学習します。\n", "\n", "また、このnotebookでは詳しく扱いませんが、この他にもテキスト分類などでよく使われる \n", "**ナイーブベイズ**(Naive Bayes)や、音声認識で伝統的に使われてきた**HMM**(Hidden Markov Model)などがあります。 \n", "これらのモデルは、データの背景に隠れた確率分布を推測することで、データをモデル化する手法です。 \n", "\n", "それでは、個々のアルゴリズムについて説明しましょう。\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. パーセプトロン\n", "\n", "\n", "
パーセプトロンのイメージ図
\n", "\n", " **パーセプトロン** (単純パーセプトロンと呼ぶこともあります)は、 \n", "入力ベクトル(例えば $x$ とします)と \n", "学習した重みベクトル(例えば $w$ とします)を \n", "掛けあわせた値を足しあわせて、その値が0以上の時はクラス1、0未満の時はクラス2と分類するというシンプルなモデルです。\n", "\n", "重みベクトルを配列 `w` 、入力ベクトルを配列 `x` としてとても簡単な擬似コードで書くとこうなります。\n", "\n", "```py\n", "def predict(x, w):\n", " s = np.dot(x, w)\n", " if s >= 0:\n", " return 1\n", " else\n", " return -1\n", "```\n", "\n", "実際には、\n", "\n", "```py\n", "w[0] * 1 + w[1] * x[1] + w[2] * x[2]\n", "```\n", "\n", "の合計値が正なのか負なのかでクラスを判断をします。\n", "\n", "この例では、データが2次元であるという設定で書いています。 \n", "もちろん、入力ベクトル `x` が3次元以上(ベクトルの要素が3以上)になっても構いません。 \n", "重みベクトル `w` が3つ要素があるのは、 `w[0]` はバイアスと呼ばれる変数 `x[1], x[2]` とは独立な重みを表現しているからです。\n", "\n", "この重みベクトル `w` を学習するのが目標です。\n", "\n", "### パーセプトロンの特徴、あるいは線形分離可能とは\n", "\n", "パーセプトロンの特徴としては、以下のような特徴があります。\n", "\n", "- 線形分離可能な問題のみ解ける\n", "- オンライン学習で学習する\n", "- 予測性能はそこそこで、学習は速い\n", "- 過学習には弱い\n", "\n", "パーセプトロンは**線形分離可能**(Linearly Separable)な問題のみ解くことができます。 \n", "線形分離可能とは、データをある直線でスパっと2つに分けられるデータのことを言います。\n", "\n", "少しコードで説明しましょう。 \n", "\n", "以下の2つのセルのコードは、ダミーデータの生成とそのプロットのためのコードです。 \n", "細かい所は気にしなくても良いですが、 \n", "- `df`には直線で分離できる(=線形分離可能)ダミーデータ\n", "- `df_xor`は直線では分離できない(=線形分離不可能)ダミーデータ\n", "\n", "を格納しているということを覚えておいて下さい。" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "%matplotlib inline\n", "\n", "from sklearn.svm import SVC\n", "from sklearn.tree import DecisionTreeClassifier\n", "from sklearn.ensemble import RandomForestClassifier\n", "from sklearn.linear_model import LogisticRegression, Perceptron\n", "from sklearn.neighbors import KNeighborsClassifier\n", "from sklearn.cross_validation import train_test_split\n", "import pandas as pd\n", "import numpy as np\n", "from numpy.random import normal as rnorm\n", "from matplotlib.colors import ListedColormap\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "plt.rcParams['font.size'] = 16\n", "\n", "def plot_result(clf, clf_name, df): \n", " X = df[['x','y']]\n", " Y = df['label']\n", " X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=.4, random_state=40)\n", " n_classes = len(Y.unique())\n", " cm = plt.cm.RdBu\n", " plot_colors = \"rbym\"\n", " plot_markers = \"o^v*\"\n", " plot_step = 0.02\n", " \n", " x_min, x_max = X.ix[:, 0].min() - .5, X.ix[:, 0].max() + .5\n", " y_min, y_max = X.ix[:, 1].min() - .5, X.ix[:, 1].max() + .5\n", " xx, yy = np.meshgrid(np.arange(x_min, x_max, plot_step),\n", " np.arange(y_min, y_max, plot_step))\n", " \n", " clf.fit(X_train,y_train) \n", " score = clf.score(X_test, y_test)\n", "\n", " Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])\n", " Z = Z.reshape(xx.shape)\n", " cs = plt.contourf(xx, yy, Z, cmap=cm, alpha=.5)\n", "\n", " # 学習用の点をプロット\n", " for i, color, m in zip(range(n_classes), plot_colors, plot_markers):\n", " plt.scatter(X[Y==i].x, X[Y==i].y, c=color, label=i, cmap=cm, marker=m, s=80)\n", "\n", " plt.text(xx.max() - .3, yy.min() + .3, ('%.2f' % score).lstrip('0'),\n", " size=15, horizontalalignment='right') \n", " plt.title(clf_name)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# 線形分離可能\n", "N = 50\n", "p1 = pd.DataFrame(np.hstack((rnorm(loc=2.0, scale=0.5, size=(N,1)), \n", " rnorm(loc=2.0, scale=0.5, size=(N,1)))),\n", " columns=['x','y'])\n", "p1['label'] = 0\n", "p2 = pd.DataFrame(np.hstack((rnorm(loc=1.0, scale=0.5, size=(N,1)), \n", " rnorm(loc=1.0, scale=0.5, size=(N,1)))),\n", " columns=['x','y'])\n", "p2['label'] = 1\n", "df = pd.concat([p1, p2])\n", "\n", "# XORパターン(線形分離不可能)\n", "N = 50\n", "p1 = pd.DataFrame(np.hstack((rnorm(loc=1.0, scale=1.0, size=(N,1)), \n", " rnorm(loc=1.0, scale=1.0, size=(N,1)))),\n", " columns=['x','y'])\n", "p1['label'] = 0\n", "p2 = pd.DataFrame(np.hstack((rnorm(loc=-1.0, scale=1.0, size=(N,1)), \n", " rnorm(loc=1.0, scale=1.0, size=(N,1)))),\n", " columns=['x','y'])\n", "p2['label'] = 1\n", "p3 = pd.DataFrame(np.hstack((rnorm(loc=-1.0, scale=1.0, size=(N,1)), \n", " rnorm(loc=-1.0, scale=1.0, size=(N,1)))),\n", " columns=['x','y'])\n", "p3['label'] = 0\n", "p4 = pd.DataFrame(np.hstack((rnorm(loc=1.0, scale=1.0, size=(N,1)), \n", " rnorm(loc=-1.0, scale=1.0, size=(N,1)))),\n", " columns=['x','y'])\n", "p4['label'] = 1\n", "df_xor = pd.concat([p1,p2,p3,p4])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "それでは、準備ができたのでパーセプトロンがどのようにデータを分離するのかを見てみましょう。\n", "\n", "次のコードでプロットされる、1つ目のデータは単純に直線で分離ができる(線形分離可能)なデータ、 \n", "2つ目がいわゆる[XOR](https://ja.wikipedia.org/wiki/%E6%8E%92%E4%BB%96%E7%9A%84%E8%AB%96%E7%90%86%E5%92%8C)と言われる線形分離不可能なデータです。 \n", "(図右下の数字は正解率です)\n", "\n", "このように、パーセプトロンは直線で分類することしかできないので、上の図しか分類できていないですね。" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "collapsed": false, "scrolled": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "ロジスティック回帰のイメージ図
\n", "\n", "**ロジスティック回帰** は、回帰という名前とは裏腹に分類のためのモデルです。 \n", "イメージ図はパーセプトロンとよく似ていますが、活性化関数が少し違います。\n", "\n", "パーセプトロンとよく似ていますが、以下のような特徴があります。\n", "\n", "- 出力とは別に、その出力のクラスに所属する確率値が出せる\n", "- 学習はオンライン学習でもバッチ学習でも可能\n", "- 予測性能はまずまず、学習速度は速い\n", "- 過学習を防ぐための正則化項が加わっている\n", "\n", "特に出力の確率値が出せるという特徴のため、広告のクリック予測にもよく使われています。\n", "\n", "ロジスティック回帰は、パーセプトロンと同じく線形分離可能な分類器のため、決定境界は直線になります。 \n", "以下に、実際の分類例を示します。" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\niuIB/j9bFlIh1DvzYAAAAABJRU5ErkJggg==\n", "text/plain": [ "SVMのイメージ図
\n", "\n", "\n", "SVMは、分類問題を解くときに非常に良く利用されているモデルです。 \n", "パーセプトロンを拡張したモデルと考えることができ、線形分離不可能な問題も解くことができます。 \n", "様々なアルゴリズムやライブラリが開発されており、高速な学習ができます。 \n", "\n", "以下のような特徴があります。\n", "\n", "- **マージン最大化** をすることで、なめらかな超平面を学習できる\n", "- カーネル(Kernel)と呼ばれる方法を使い、非線形なデータを分離できる\n", "- 線形カーネルなら次元数の多い疎なデータも学習可能\n", "- バッチ学習でもオンライン学習でも可能\n", "\n", "損失関数はパーセプトロンと同じく、ヒンジ損失を使います。 \n", "厳密にはパーセプトロンとは、横軸との交点の場所が違います。 \n", "グラフとして書くと以下のようになります。" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[SVMのイメージ図(再掲)
\n", "\n", "\n", "マージン最大化は、イメージ図のように超平面をどのように引けば、2クラスそれぞれ最も近いデータ(これをサポートベクターと言います)までの距離が最大化できるかを考えます。 \n", "サポートベクターから等距離となるように超平面を引けば、未知のデータに対して余裕のある超平面が得ることができます。\n", "\n", "サポートベクターと超平面までの距離(これを**マージン**といいます)が \n", "最大になるような超平面の引き方を決めることで、既知のデータに対して最もあそびが生まれます。 \n", "このおかげで、データに特化し過ぎない余裕のある決定境界を得ることが出来ます。 \n", "\n", "最適化手法は様々あり詳細は割愛しますが、バッチ学習のためのアルゴリズムもオンライン学習も両方あります。 " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### SVMの特徴その2:カーネルトリック\n", "\n", "2つ目の特徴は、カーネルと呼ばれるテクニックです。\n", "\n", "これは線形分離不可能なデータでも、カーネルと呼ばれる関数を使ってデータをより高次元空間に変換することで、 \n", "線形分離可能にするという方法です。 \n", "以下のイメージ図を見てみると、1次元では線形分離できなかったのが、2次元に変換をすることで、線形分離可能になっています。 \n", "\n", "\n", "カーネルトリックのイメージ
\n", "\n", "カーネルには、\n", "- **線形カーネル**(Linear Kernel)\n", "- **多項式カーネル**(Polynomial Kernel)\n", "- **RBFカーネル**(Radial Basis Function Kernel, 動的基底関数カーネル)\n", "\n", "などがあります。 \n", "\n", "次の4つの図に、線形カーネルとRBFカーネルの時の決定境界を示します。 \n", "特に、線形カーネル(XOR)とRBFカーネル(XOR)の図を見比べるとわかるように、RBFカーネルの方がXORに対して適切に分離できているのがわかります。\n", "\n", "線形カーネルは処理の速さから主にテキストなどの高次元で疎なベクトルのデータに、RBFカーネルは画像や音声信号などの密なデータによく使われます。" ] }, { "cell_type": "code", "execution_count": 59, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n5QH/D9V16IObBBskAAAAAElFTkSuQmCC\n", "text/plain": [ "ニューラルネットワークのイメージ図
\n", "\n", "\n", "**ニューラルネットワーク**(Neural Network)は多層パーセプトロンとも呼ばれ、パーセプトロンを1つのノードとして階層上に重ねたもののことです。 \n", "脳の神経モデルを模倣しているためこの名前になっています。\n", "\n", "ニューラルネットワークはいろいろな形状がありますが、一番基本的な3階層のフィードフォワード型ニューラルネットワークを考えます。 \n", "入力層、中間層、出力層という順番に入力と重みを掛けあわせて計算していき、出力層に分類したいクラスだけノードを用意します。 \n", "入力層、出力層の数に応じて中間層(隠れ層とも言います)の数を用意します。\n", "\n", "活性関数には、初期はステップ関数が、その後シグモイド関数が良く利用されてきました。 \n", "近年では深層学習では**ReLU**(Rectified Linear Unit)が性能が良いためよく使われています。 \n", "ReLUは以下のようなグラフになります。" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nRU5ErkJggg==\n", "text/plain": [ "k-NNのイメージ図
\n", "\n", "\n", "\n", "イメージ図の例を見てみましょう。 \n", "新しいデータである□が、○と△のどちらのクラスかということを考えます。 \n", "□の周囲3つのデータを見ると○になることがわかります。 \n", "もちろん、kの数を変えると所属するクラスは容易に変わります。 \n", "\n", "kを3としてダミーデータで分類をした図が以下の2つになります。 \n", "XORの例を見てもわかるように、決定境界は直線にはなりません。" ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nRK5CYII=\n", "text/plain": [ "{np.linalg.norm(a - b)}で求めたほうが高速です。)\n",
"\n",
"### k-NNの使いドコロ\n",
"\n",
"自然言語処理のときなど、疎なデータの場合は次元の呪いのため予測性能がでないことが多いです。 \n",
"こうしたときには、後述する次元削減手法で次元圧縮をすると性能が改善することが知られています。\n",
"\n",
"k-NNはシンプルでな手法のため、気軽に試すのには良い方法です。 \n",
"また、距離さえ定義できれば応用が効くので、例えばElasticsearchなどの全文検索エンジンのスコアを距離とみなしてk-NNを使うなどもできます。 \n",
"計算時間がかかる問題については、近似的に近傍探索をするなどいくつかの手法がでています。"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 決定木、ランダムフォレスト、GBDT\n",
"\n",
"\n",
"決定木のイメージ図
\n",
"\n",
"\n",
"決定木は、木の根から順番に条件分岐をたどっていき、葉に到達すると予測結果を返すモデルです。 \n",
"**不純度**(Impurity)と呼ばれる基準を使って、分割する前と後でできるだけ違うクラスが混ざらなくなるように分岐条件を学習していきます。 \n",
"具体的には**情報ゲイン**(Information Gain)や**ジニ係数**(Gini coefficient)などの基準を不純度として使い、不純度が下がるようにデータを分割します。 \n",
"決定木を使うことで、データからうまく分類できるようなIF-THENルールのツリーを、イメージ図のように得ることができるのです。\n",
"\n",
"\n",
"### 決定木の特徴\n",
"\n",
"決定木の特徴をまとめると、以下のようになります。\n",
"\n",
"- 学習したモデルを人間が見て解釈しやすい\n",
"- 入力データの正規化がいらない\n",
"- カテゴリー変数や欠損値などを入力しても内部で処理してくれる\n",
"- 特定の条件下では過学習しやすい傾向にある\n",
"- 非線形分離可能だが、線形分離可能な問題は不得意\n",
"- クラスごとのデータ数に偏りのあるデータは不得意\n",
"- データの小さな変化に対して結果が大きく変わりやすい\n",
"- 予測性能はまずまず\n",
"- バッチ学習でしか学習できない\n",
"\n",
"決定木の大きな特徴としては、学習したモデルを可視化して解釈しやすいという点があげられます。 \n",
"これは、学習結果としてIF-THENルールが得られるため、工場のセンサー値から製品の故障を予測したい場合、どのセンサーが異常の原因なのかといったように、 \n",
"この分類結果に至った条件が得られることが求められるシーンには有効でしょう。 \n",
"\n",
"パーセプトロンやロジスティック回帰とは異なり、線形分離不可能なデータも分類できます。 \n",
"一方で線形分離可能な問題はそこまで得意ではありません。\n",
"\n",
"また、データを条件分岐で分けていくという性質上、木の深さが深くなると学習に使えるデータ数が少なくなるため、過学習しやすくなる傾向にあります。 \n",
"これについては、木の深さを少なくしたり**枝刈り**(剪定, pruning)することである程度防ぐことが出来ます。 \n",
"特徴の数が多い時も過学習しやすくなるため、事前に次元削減や特徴選択をしておくと良いでしょう。 \n",
"\n",
"ダミーデータに対する決定境界を見ても、線形分離可能な単純な例の方が過学習気味になっているのがわかります。"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\nMAAAAABJRU5ErkJggg==\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"clf = DecisionTreeClassifier()\n",
"plot_result(clf, 'Decision Tree', df)\n",
"plt.show()\n",
"plot_result(clf, 'Decision Tree (XOR)', df_xor)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 決定木を複数作って統合する、ランダムフォレスト\n",
"\n",
"決定木を応用した手法に、**ランダムフォレスト**(Random Forest)や**Gradient Boosted Decision Tree**(GBDT)があります。\n",
"\n",
"ランダムフォレストは、利用する特徴量の組み合わせを色々用意して、性能がよかった学習器複数の予測結果を多数決で統合します。 \n",
"複数の木を独立に学習できるため並列で学習できます。 \n",
"また、決定木の枝刈りをしないため主なパラメータは2つと後述するGBDTと比べて少ないですが、過学習しやすい傾向にあります。 \n",
"\n",
"予測性能は決定木より高く、パラメータ数が少ないためチューニングも比較的簡単で手頃です。 \n",
"決定境界を見てもわかるように、決定木ベースのアルゴリズムのため傾向は似ています。\n"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\npZTygP8Pdz7eG+jX0YkAAAAASUVORK5CYII=\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"clf = RandomForestClassifier()\n",
"plot_result(clf, 'Random Forest', df)\n",
"plt.show()\n",
"plot_result(clf, 'Random Forest (XOR)', df_xor)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 直列的に複数の木を学習するGBDT\n",
"\n",
"ランダムフォレストが並列的に学習して予測結果を利用するのに対して、 \n",
"GBDTはサンプリングしたデータに対して直列的に浅い木を学習していく勾配ブースティング法(Gradient Boosting)を使うアルゴリズムです。\n",
"\n",
"予測した値と実際の値のズレを目的変数として考慮することで、弱点を補強しながら複数の学習器が学習されます。\n",
"直列で学習するため時間がかかること、ランダムフォレストと比べてもパラメータが多いためチューニングにコストがかかりますが、予測性能はランダムフォレストよりも高いです。 \n",
"\n",
"[XGBoost](https://github.com/dmlc/xgboost)という高速なライブラリが出たこともあり大規模なデータでも処理しやすく、コンペサイトのKaggleでも人気です。 \n",
"特にXGBoostは確率的な最適化をしているため、大規模データにも高速に処理できます。\n",
"\n",
"### アンサンブル学習とは\n",
"\n",
"ランダムフォレストやGBDTのように、複数の学習結果を組み合わせる手法を**アンサンブル学習**(Ensemble Learning)といいます。\n",
"アンサンブル学習は通常、ロジスティック回帰やルールが1つだけの決定木などの \n",
"シンプルな学習器(弱学習器(Week Learner)といいます)を複数組み合わせて学習をします。\n",
"\n",
"単純な決定木は、データの追加を行うと学習結果が大きく変わるのに対して、ランダムフォレストなどは学習結果が安定しやすくなるといったメリットもあります。\n",
"また、予測性能もアンサンブルをしたほうがより良くなることが知られています。"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 参考文献\n",
"\n",
"- http://scikit-learn.org/stable/auto_examples/linear_model/plot_sgd_loss_functions.html\n",
"- [jgbos's notebook](http://nbviewer.jupyter.org/github/jgbos/iPython-Notebooks/blob/master/Comparing%20machine%20learning%20classifiers%20based%20on%20their%20hyperplanes%20or%20decision%20boundaries.ipynb) \n",
"- http://scikit-learn.org/dev/auto_examples/neural_networks/plot_mlp_alpha.html"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"
この 作品 は クリエイティブ・コモンズ 表示 - 非営利 - 継承 4.0 国際 ライセンスの下に提供されています。"
]
},
{
"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.5.1"
}
},
"nbformat": 4,
"nbformat_minor": 0
}