Skip to content

Instantly share code, notes, and snippets.

@michitakaiida
Created September 14, 2016 15:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save michitakaiida/88222348ab30483058d82f2ece7a1471 to your computer and use it in GitHub Desktop.
Save michitakaiida/88222348ab30483058d82f2ece7a1471 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#matplotlib用の設定\n",
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"plt.style.use('ggplot')"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"#irisデータ読み込み\n",
"from sklearn import datasets\n",
"iris = datasets.load_iris()\n",
"features = iris.data\n",
"targets = iris.target"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 5.1, 3.5, 1.4, 0.2],\n",
" [ 4.9, 3. , 1.4, 0.2],\n",
" [ 4.7, 3.2, 1.3, 0.2],\n",
" [ 4.6, 3.1, 1.5, 0.2],\n",
" [ 5. , 3.6, 1.4, 0.2],\n",
" [ 5.4, 3.9, 1.7, 0.4],\n",
" [ 4.6, 3.4, 1.4, 0.3],\n",
" [ 5. , 3.4, 1.5, 0.2],\n",
" [ 4.4, 2.9, 1.4, 0.2],\n",
" [ 4.9, 3.1, 1.5, 0.1],\n",
" [ 5.4, 3.7, 1.5, 0.2],\n",
" [ 4.8, 3.4, 1.6, 0.2],\n",
" [ 4.8, 3. , 1.4, 0.1],\n",
" [ 4.3, 3. , 1.1, 0.1],\n",
" [ 5.8, 4. , 1.2, 0.2],\n",
" [ 5.7, 4.4, 1.5, 0.4],\n",
" [ 5.4, 3.9, 1.3, 0.4],\n",
" [ 5.1, 3.5, 1.4, 0.3],\n",
" [ 5.7, 3.8, 1.7, 0.3],\n",
" [ 5.1, 3.8, 1.5, 0.3],\n",
" [ 5.4, 3.4, 1.7, 0.2],\n",
" [ 5.1, 3.7, 1.5, 0.4],\n",
" [ 4.6, 3.6, 1. , 0.2],\n",
" [ 5.1, 3.3, 1.7, 0.5],\n",
" [ 4.8, 3.4, 1.9, 0.2],\n",
" [ 5. , 3. , 1.6, 0.2],\n",
" [ 5. , 3.4, 1.6, 0.4],\n",
" [ 5.2, 3.5, 1.5, 0.2],\n",
" [ 5.2, 3.4, 1.4, 0.2],\n",
" [ 4.7, 3.2, 1.6, 0.2],\n",
" [ 4.8, 3.1, 1.6, 0.2],\n",
" [ 5.4, 3.4, 1.5, 0.4],\n",
" [ 5.2, 4.1, 1.5, 0.1],\n",
" [ 5.5, 4.2, 1.4, 0.2],\n",
" [ 4.9, 3.1, 1.5, 0.1],\n",
" [ 5. , 3.2, 1.2, 0.2],\n",
" [ 5.5, 3.5, 1.3, 0.2],\n",
" [ 4.9, 3.1, 1.5, 0.1],\n",
" [ 4.4, 3. , 1.3, 0.2],\n",
" [ 5.1, 3.4, 1.5, 0.2],\n",
" [ 5. , 3.5, 1.3, 0.3],\n",
" [ 4.5, 2.3, 1.3, 0.3],\n",
" [ 4.4, 3.2, 1.3, 0.2],\n",
" [ 5. , 3.5, 1.6, 0.6],\n",
" [ 5.1, 3.8, 1.9, 0.4],\n",
" [ 4.8, 3. , 1.4, 0.3],\n",
" [ 5.1, 3.8, 1.6, 0.2],\n",
" [ 4.6, 3.2, 1.4, 0.2],\n",
" [ 5.3, 3.7, 1.5, 0.2],\n",
" [ 5. , 3.3, 1.4, 0.2],\n",
" [ 7. , 3.2, 4.7, 1.4],\n",
" [ 6.4, 3.2, 4.5, 1.5],\n",
" [ 6.9, 3.1, 4.9, 1.5],\n",
" [ 5.5, 2.3, 4. , 1.3],\n",
" [ 6.5, 2.8, 4.6, 1.5],\n",
" [ 5.7, 2.8, 4.5, 1.3],\n",
" [ 6.3, 3.3, 4.7, 1.6],\n",
" [ 4.9, 2.4, 3.3, 1. ],\n",
" [ 6.6, 2.9, 4.6, 1.3],\n",
" [ 5.2, 2.7, 3.9, 1.4],\n",
" [ 5. , 2. , 3.5, 1. ],\n",
" [ 5.9, 3. , 4.2, 1.5],\n",
" [ 6. , 2.2, 4. , 1. ],\n",
" [ 6.1, 2.9, 4.7, 1.4],\n",
" [ 5.6, 2.9, 3.6, 1.3],\n",
" [ 6.7, 3.1, 4.4, 1.4],\n",
" [ 5.6, 3. , 4.5, 1.5],\n",
" [ 5.8, 2.7, 4.1, 1. ],\n",
" [ 6.2, 2.2, 4.5, 1.5],\n",
" [ 5.6, 2.5, 3.9, 1.1],\n",
" [ 5.9, 3.2, 4.8, 1.8],\n",
" [ 6.1, 2.8, 4. , 1.3],\n",
" [ 6.3, 2.5, 4.9, 1.5],\n",
" [ 6.1, 2.8, 4.7, 1.2],\n",
" [ 6.4, 2.9, 4.3, 1.3],\n",
" [ 6.6, 3. , 4.4, 1.4],\n",
" [ 6.8, 2.8, 4.8, 1.4],\n",
" [ 6.7, 3. , 5. , 1.7],\n",
" [ 6. , 2.9, 4.5, 1.5],\n",
" [ 5.7, 2.6, 3.5, 1. ],\n",
" [ 5.5, 2.4, 3.8, 1.1],\n",
" [ 5.5, 2.4, 3.7, 1. ],\n",
" [ 5.8, 2.7, 3.9, 1.2],\n",
" [ 6. , 2.7, 5.1, 1.6],\n",
" [ 5.4, 3. , 4.5, 1.5],\n",
" [ 6. , 3.4, 4.5, 1.6],\n",
" [ 6.7, 3.1, 4.7, 1.5],\n",
" [ 6.3, 2.3, 4.4, 1.3],\n",
" [ 5.6, 3. , 4.1, 1.3],\n",
" [ 5.5, 2.5, 4. , 1.3],\n",
" [ 5.5, 2.6, 4.4, 1.2],\n",
" [ 6.1, 3. , 4.6, 1.4],\n",
" [ 5.8, 2.6, 4. , 1.2],\n",
" [ 5. , 2.3, 3.3, 1. ],\n",
" [ 5.6, 2.7, 4.2, 1.3],\n",
" [ 5.7, 3. , 4.2, 1.2],\n",
" [ 5.7, 2.9, 4.2, 1.3],\n",
" [ 6.2, 2.9, 4.3, 1.3],\n",
" [ 5.1, 2.5, 3. , 1.1],\n",
" [ 5.7, 2.8, 4.1, 1.3],\n",
" [ 6.3, 3.3, 6. , 2.5],\n",
" [ 5.8, 2.7, 5.1, 1.9],\n",
" [ 7.1, 3. , 5.9, 2.1],\n",
" [ 6.3, 2.9, 5.6, 1.8],\n",
" [ 6.5, 3. , 5.8, 2.2],\n",
" [ 7.6, 3. , 6.6, 2.1],\n",
" [ 4.9, 2.5, 4.5, 1.7],\n",
" [ 7.3, 2.9, 6.3, 1.8],\n",
" [ 6.7, 2.5, 5.8, 1.8],\n",
" [ 7.2, 3.6, 6.1, 2.5],\n",
" [ 6.5, 3.2, 5.1, 2. ],\n",
" [ 6.4, 2.7, 5.3, 1.9],\n",
" [ 6.8, 3. , 5.5, 2.1],\n",
" [ 5.7, 2.5, 5. , 2. ],\n",
" [ 5.8, 2.8, 5.1, 2.4],\n",
" [ 6.4, 3.2, 5.3, 2.3],\n",
" [ 6.5, 3. , 5.5, 1.8],\n",
" [ 7.7, 3.8, 6.7, 2.2],\n",
" [ 7.7, 2.6, 6.9, 2.3],\n",
" [ 6. , 2.2, 5. , 1.5],\n",
" [ 6.9, 3.2, 5.7, 2.3],\n",
" [ 5.6, 2.8, 4.9, 2. ],\n",
" [ 7.7, 2.8, 6.7, 2. ],\n",
" [ 6.3, 2.7, 4.9, 1.8],\n",
" [ 6.7, 3.3, 5.7, 2.1],\n",
" [ 7.2, 3.2, 6. , 1.8],\n",
" [ 6.2, 2.8, 4.8, 1.8],\n",
" [ 6.1, 3. , 4.9, 1.8],\n",
" [ 6.4, 2.8, 5.6, 2.1],\n",
" [ 7.2, 3. , 5.8, 1.6],\n",
" [ 7.4, 2.8, 6.1, 1.9],\n",
" [ 7.9, 3.8, 6.4, 2. ],\n",
" [ 6.4, 2.8, 5.6, 2.2],\n",
" [ 6.3, 2.8, 5.1, 1.5],\n",
" [ 6.1, 2.6, 5.6, 1.4],\n",
" [ 7.7, 3. , 6.1, 2.3],\n",
" [ 6.3, 3.4, 5.6, 2.4],\n",
" [ 6.4, 3.1, 5.5, 1.8],\n",
" [ 6. , 3. , 4.8, 1.8],\n",
" [ 6.9, 3.1, 5.4, 2.1],\n",
" [ 6.7, 3.1, 5.6, 2.4],\n",
" [ 6.9, 3.1, 5.1, 2.3],\n",
" [ 5.8, 2.7, 5.1, 1.9],\n",
" [ 6.8, 3.2, 5.9, 2.3],\n",
" [ 6.7, 3.3, 5.7, 2.5],\n",
" [ 6.7, 3. , 5.2, 2.3],\n",
" [ 6.3, 2.5, 5. , 1.9],\n",
" [ 6.5, 3. , 5.2, 2. ],\n",
" [ 6.2, 3.4, 5.4, 2.3],\n",
" [ 5.9, 3. , 5.1, 1.8]])"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#特徴ベクトルの確認\n",
"features"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
" 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
" 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n",
" 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n",
" 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#正解ベクトルの確認\n",
"targets"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(150, 4)"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#特徴ベクトルのデータ構造の確認(4次元の特徴が150レコード)\n",
"features.shape"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x115cb5470>"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\ngCE/fz/V7fO4U6EAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1140bef28>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#特徴の1次元目と2次元目でplotしてみる\n",
"plt.scatter(features[:, 0], features[:, 1], c=targets)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Using TensorFlow backend.\n"
]
}
],
"source": [
"#kerasに必要なものをインポート\n",
"from keras.models import Sequential\n",
"from keras.layers import Dense, Activation\n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/20\n",
"150/150 [==============================] - 0s - loss: 1.0919 - acc: 0.4467 \n",
"Epoch 2/20\n",
"150/150 [==============================] - 0s - loss: 0.8269 - acc: 0.6333 \n",
"Epoch 3/20\n",
"150/150 [==============================] - 0s - loss: 0.7604 - acc: 0.6667 \n",
"Epoch 4/20\n",
"150/150 [==============================] - 0s - loss: 0.6830 - acc: 0.6933 \n",
"Epoch 5/20\n",
"150/150 [==============================] - 0s - loss: 0.6372 - acc: 0.6600 \n",
"Epoch 6/20\n",
"150/150 [==============================] - 0s - loss: 0.5918 - acc: 0.7200 \n",
"Epoch 7/20\n",
"150/150 [==============================] - 0s - loss: 0.5555 - acc: 0.7200 \n",
"Epoch 8/20\n",
"150/150 [==============================] - 0s - loss: 0.5305 - acc: 0.7733 \n",
"Epoch 9/20\n",
"150/150 [==============================] - 0s - loss: 0.5099 - acc: 0.7867 \n",
"Epoch 10/20\n",
"150/150 [==============================] - 0s - loss: 0.4795 - acc: 0.8867 \n",
"Epoch 11/20\n",
"150/150 [==============================] - 0s - loss: 0.4636 - acc: 0.8400 \n",
"Epoch 12/20\n",
"150/150 [==============================] - 0s - loss: 0.4481 - acc: 0.8133 \n",
"Epoch 13/20\n",
"150/150 [==============================] - 0s - loss: 0.4344 - acc: 0.8133 \n",
"Epoch 14/20\n",
"150/150 [==============================] - 0s - loss: 0.4191 - acc: 0.8867 \n",
"Epoch 15/20\n",
"150/150 [==============================] - 0s - loss: 0.4124 - acc: 0.8733 \n",
"Epoch 16/20\n",
"150/150 [==============================] - 0s - loss: 0.3941 - acc: 0.8733 \n",
"Epoch 17/20\n",
"150/150 [==============================] - 0s - loss: 0.3872 - acc: 0.8667 \n",
"Epoch 18/20\n",
"150/150 [==============================] - 0s - loss: 0.3749 - acc: 0.9000 \n",
"Epoch 19/20\n",
"150/150 [==============================] - 0s - loss: 0.3722 - acc: 0.9200 \n",
"Epoch 20/20\n",
"150/150 [==============================] - 0s - loss: 0.3510 - acc: 0.9400 \n"
]
},
{
"data": {
"text/plain": [
"<keras.callbacks.History at 0x115c9c160>"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#モデルの設定\n",
"model = Sequential()\n",
"model.add(Dense(12, input_dim=4))\n",
"model.add(Activation('relu'))\n",
"model.add(Dense(3, input_dim=12))\n",
"model.add(Activation('softmax')) \n",
"model.compile(optimizer='SGD',loss='sparse_categorical_crossentropy',metrics=['accuracy'])\n",
"model.fit(features, targets, nb_epoch=20, batch_size=5)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 80/150 [===============>..............] - ETA: 0s"
]
},
{
"data": {
"text/plain": [
"array([[ 9.59954977e-01, 2.74088345e-02, 1.26361558e-02],\n",
" [ 9.40951288e-01, 4.11861688e-02, 1.78625714e-02],\n",
" [ 9.46390629e-01, 3.65388319e-02, 1.70704499e-02],\n",
" [ 9.21286643e-01, 5.58164082e-02, 2.28969175e-02],\n",
" [ 9.59175587e-01, 2.78702360e-02, 1.29541941e-02],\n",
" [ 9.51754153e-01, 3.44196893e-02, 1.38260880e-02],\n",
" [ 9.34864342e-01, 4.50550579e-02, 2.00806018e-02],\n",
" [ 9.48288321e-01, 3.61873657e-02, 1.55243417e-02],\n",
" [ 9.13130045e-01, 6.10570833e-02, 2.58128606e-02],\n",
" [ 9.41331327e-01, 4.13963646e-02, 1.72722787e-02],\n",
" [ 9.66351867e-01, 2.32274383e-02, 1.04207462e-02],\n",
" [ 9.32146192e-01, 4.83816303e-02, 1.94721557e-02],\n",
" [ 9.42304134e-01, 4.01768573e-02, 1.75190084e-02],\n",
" [ 9.45614755e-01, 3.59804556e-02, 1.84048265e-02],\n",
" [ 9.85631943e-01, 9.21962224e-03, 5.14840614e-03],\n",
" [ 9.76995111e-01, 1.55339269e-02, 7.47097936e-03],\n",
" [ 9.72126067e-01, 1.85004175e-02, 9.37350281e-03],\n",
" [ 9.56047773e-01, 3.01616881e-02, 1.37905423e-02],\n",
" [ 9.62481022e-01, 2.67215371e-02, 1.07974969e-02],\n",
" [ 9.56687272e-01, 2.99536251e-02, 1.33591183e-02],\n",
" [ 9.48454022e-01, 3.71789113e-02, 1.43671362e-02],\n",
" [ 9.50033307e-01, 3.47607099e-02, 1.52060054e-02],\n",
" [ 9.68606651e-01, 1.98753402e-02, 1.15181031e-02],\n",
" [ 9.09832239e-01, 6.52010739e-02, 2.49666367e-02],\n",
" [ 8.89094949e-01, 8.07161480e-02, 3.01888790e-02],\n",
" [ 9.27839518e-01, 5.20154051e-02, 2.01450530e-02],\n",
" [ 9.28953290e-01, 5.08146621e-02, 2.02321019e-02],\n",
" [ 9.57180262e-01, 2.98127756e-02, 1.30070150e-02],\n",
" [ 9.60719645e-01, 2.69546360e-02, 1.23257237e-02],\n",
" [ 9.19948578e-01, 5.74864484e-02, 2.25649681e-02],\n",
" [ 9.21394706e-01, 5.65776117e-02, 2.20276676e-02],\n",
" [ 9.52801704e-01, 3.30783278e-02, 1.41199818e-02],\n",
" [ 9.71242964e-01, 1.95611790e-02, 9.19577107e-03],\n",
" [ 9.78841066e-01, 1.40690422e-02, 7.08994688e-03],\n",
" [ 9.41331327e-01, 4.13963683e-02, 1.72722787e-02],\n",
" [ 9.61959243e-01, 2.53702216e-02, 1.26705412e-02],\n",
" [ 9.73636091e-01, 1.76434070e-02, 8.72057769e-03],\n",
" [ 9.41331327e-01, 4.13963683e-02, 1.72722787e-02],\n",
" [ 9.27436769e-01, 4.99399081e-02, 2.26234086e-02],\n",
" [ 9.51737881e-01, 3.37440223e-02, 1.45181445e-02],\n",
" [ 9.58870769e-01, 2.77311094e-02, 1.33980643e-02],\n",
" [ 8.96070778e-01, 7.34165683e-02, 3.05126086e-02],\n",
" [ 9.34200466e-01, 4.49712873e-02, 2.08282061e-02],\n",
" [ 9.18075681e-01, 5.84924035e-02, 2.34318450e-02],\n",
" [ 9.10681427e-01, 6.44480884e-02, 2.48705391e-02],\n",
" [ 9.30769742e-01, 4.84506935e-02, 2.07795464e-02],\n",
" [ 9.54756498e-01, 3.17644663e-02, 1.34791210e-02],\n",
" [ 9.34373379e-01, 4.55876812e-02, 2.00388525e-02],\n",
" [ 9.63908017e-01, 2.49366835e-02, 1.11552244e-02],\n",
" [ 9.52533782e-01, 3.27435359e-02, 1.47226388e-02],\n",
" [ 1.29763791e-02, 5.55498302e-01, 4.31525320e-01],\n",
" [ 1.21342288e-02, 4.80481803e-01, 5.07383943e-01],\n",
" [ 8.51597451e-03, 4.84869897e-01, 5.06614149e-01],\n",
" [ 1.71723235e-02, 4.65653509e-01, 5.17174184e-01],\n",
" [ 1.04278205e-02, 4.72273171e-01, 5.17298996e-01],\n",
" [ 1.09196901e-02, 4.15041804e-01, 5.74038506e-01],\n",
" [ 8.89648870e-03, 4.06245321e-01, 5.84858239e-01],\n",
" [ 4.44145761e-02, 5.53526163e-01, 4.02059257e-01],\n",
" [ 1.22161908e-02, 5.38478792e-01, 4.49305058e-01],\n",
" [ 1.77775733e-02, 4.18687820e-01, 5.63534617e-01],\n",
" [ 3.06322258e-02, 5.42165875e-01, 4.27201927e-01],\n",
" [ 1.47119043e-02, 4.53479737e-01, 5.31808376e-01],\n",
" [ 2.45687757e-02, 6.03628755e-01, 3.71802539e-01],\n",
" [ 9.10131074e-03, 4.18072820e-01, 5.72825849e-01],\n",
" [ 3.89268547e-02, 5.35700023e-01, 4.25373107e-01],\n",
" [ 1.82598587e-02, 5.54255128e-01, 4.27484930e-01],\n",
" [ 9.45766456e-03, 3.56037199e-01, 6.34505093e-01],\n",
" [ 2.09074672e-02, 5.69488227e-01, 4.09604281e-01],\n",
" [ 9.90218949e-03, 4.34886366e-01, 5.55211484e-01],\n",
" [ 2.27278117e-02, 5.49159825e-01, 4.28112388e-01],\n",
" [ 5.82301198e-03, 2.86603034e-01, 7.07573950e-01],\n",
" [ 2.49672607e-02, 5.51856279e-01, 4.23176438e-01],\n",
" [ 6.61965320e-03, 3.83413136e-01, 6.09967172e-01],\n",
" [ 1.02548683e-02, 4.65439439e-01, 5.24305701e-01],\n",
" [ 1.77782886e-02, 5.54195404e-01, 4.28026319e-01],\n",
" [ 1.60894264e-02, 5.44081092e-01, 4.39829469e-01],\n",
" [ 9.47631896e-03, 5.07714093e-01, 4.82809514e-01],\n",
" [ 6.16757059e-03, 3.85667503e-01, 6.08164966e-01],\n",
" [ 1.04690595e-02, 4.14209872e-01, 5.75321078e-01],\n",
" [ 6.82752579e-02, 5.81093311e-01, 3.50631505e-01],\n",
" [ 2.44687498e-02, 5.49515545e-01, 4.26015705e-01],\n",
" [ 3.22663076e-02, 5.79741180e-01, 3.87992531e-01],\n",
" [ 2.52154078e-02, 5.51569879e-01, 4.23214763e-01],\n",
" [ 4.45723347e-03, 2.88632333e-01, 7.06910431e-01],\n",
" [ 8.86845216e-03, 3.27653319e-01, 6.63478255e-01],\n",
" [ 1.05496906e-02, 3.97424072e-01, 5.92026234e-01],\n",
" [ 1.02059748e-02, 4.89863068e-01, 4.99930918e-01],\n",
" [ 1.30998613e-02, 5.18956721e-01, 4.67943490e-01],\n",
" [ 1.74577888e-02, 4.73283440e-01, 5.09258807e-01],\n",
" [ 1.77030172e-02, 4.68442500e-01, 5.13854504e-01],\n",
" [ 1.20954178e-02, 4.23356354e-01, 5.64548254e-01],\n",
" [ 1.04003670e-02, 4.37392175e-01, 5.52207410e-01],\n",
" [ 2.03369875e-02, 5.40177584e-01, 4.39485490e-01],\n",
" [ 4.67118733e-02, 5.62718987e-01, 3.90569150e-01],\n",
" [ 1.48759196e-02, 4.51404750e-01, 5.33719301e-01],\n",
" [ 1.69838518e-02, 4.95438784e-01, 4.87577349e-01],\n",
" [ 1.57144554e-02, 4.69709337e-01, 5.14576197e-01],\n",
" [ 1.56694446e-02, 5.29612362e-01, 4.54718113e-01],\n",
" [ 9.39818546e-02, 5.51435590e-01, 3.54582548e-01],\n",
" [ 1.73295513e-02, 4.85978007e-01, 4.96692508e-01],\n",
" [ 6.92240021e-04, 9.47038978e-02, 9.04603899e-01],\n",
" [ 3.17220041e-03, 2.09067315e-01, 7.87760496e-01],\n",
" [ 1.60211569e-03, 2.16398165e-01, 7.81999707e-01],\n",
" [ 2.24317727e-03, 2.18437701e-01, 7.79319108e-01],\n",
" [ 1.29522255e-03, 1.55139044e-01, 8.43565702e-01],\n",
" [ 7.59606191e-04, 1.83063194e-01, 8.16177189e-01],\n",
" [ 5.73125761e-03, 2.20061749e-01, 7.74206996e-01],\n",
" [ 1.30637106e-03, 2.37872913e-01, 7.60820687e-01],\n",
" [ 1.87995401e-03, 2.32367963e-01, 7.65752077e-01],\n",
" [ 9.64321778e-04, 1.49299905e-01, 8.49735796e-01],\n",
" [ 4.14621644e-03, 2.77833790e-01, 7.18019962e-01],\n",
" [ 3.07978434e-03, 2.49980345e-01, 7.46939838e-01],\n",
" [ 2.43146787e-03, 2.35591173e-01, 7.61977375e-01],\n",
" [ 3.07144970e-03, 1.92784429e-01, 8.04144144e-01],\n",
" [ 2.00233585e-03, 1.38505787e-01, 8.59491885e-01],\n",
" [ 2.33155629e-03, 1.86863080e-01, 8.10805321e-01],\n",
" [ 2.81959143e-03, 2.56135166e-01, 7.41045296e-01],\n",
" [ 7.21490243e-04, 1.73817113e-01, 8.25461388e-01],\n",
" [ 4.00878751e-04, 1.31799594e-01, 8.67799580e-01],\n",
" [ 5.06354449e-03, 3.19168419e-01, 6.75768018e-01],\n",
" [ 1.66512898e-03, 1.89556599e-01, 8.08778286e-01],\n",
" [ 3.55439819e-03, 1.97456822e-01, 7.98988760e-01],\n",
" [ 7.33192079e-04, 1.94839478e-01, 8.04427385e-01],\n",
" [ 5.42556681e-03, 3.18011314e-01, 6.76563144e-01],\n",
" [ 1.87692675e-03, 2.02187553e-01, 7.95935512e-01],\n",
" [ 1.96599262e-03, 2.72151917e-01, 7.25882113e-01],\n",
" [ 6.05149055e-03, 3.21708083e-01, 6.72240376e-01],\n",
" [ 5.31842932e-03, 2.94916540e-01, 6.99765086e-01],\n",
" [ 1.73992862e-03, 1.79543912e-01, 8.18716228e-01],\n",
" [ 2.89419619e-03, 3.44214588e-01, 6.52891219e-01],\n",
" [ 1.59422448e-03, 2.57899106e-01, 7.40506709e-01],\n",
" [ 1.40668545e-03, 2.68310338e-01, 7.30282962e-01],\n",
" [ 1.58137595e-03, 1.65172651e-01, 8.33245993e-01],\n",
" [ 5.43248840e-03, 3.53117675e-01, 6.41449809e-01],\n",
" [ 2.81008473e-03, 2.65412956e-01, 7.31776953e-01],\n",
" [ 1.30009558e-03, 2.21575424e-01, 7.77124465e-01],\n",
" [ 1.38093228e-03, 1.36036545e-01, 8.62582505e-01],\n",
" [ 2.75963149e-03, 2.45329440e-01, 7.51910865e-01],\n",
" [ 5.83753502e-03, 2.97207594e-01, 6.96954906e-01],\n",
" [ 2.93347472e-03, 2.62675643e-01, 7.34390914e-01],\n",
" [ 1.56745431e-03, 1.66304633e-01, 8.32127869e-01],\n",
" [ 3.66014964e-03, 2.67315418e-01, 7.29024470e-01],\n",
" [ 3.17220041e-03, 2.09067315e-01, 7.87760496e-01],\n",
" [ 1.20928383e-03, 1.58771828e-01, 8.40018868e-01],\n",
" [ 1.28067343e-03, 1.44810334e-01, 8.53908956e-01],\n",
" [ 2.91901571e-03, 2.28529721e-01, 7.68551290e-01],\n",
" [ 4.25161794e-03, 2.78902978e-01, 7.16845393e-01],\n",
" [ 3.51873180e-03, 2.60709524e-01, 7.35771656e-01],\n",
" [ 1.92763726e-03, 1.59641787e-01, 8.38430583e-01],\n",
" [ 3.80136003e-03, 2.40844190e-01, 7.55354404e-01]], dtype=float32)"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.predict(features, batch_size=10, verbose=1)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"120/150 [=======================>......] - ETA: 0s"
]
},
{
"data": {
"text/plain": [
"[0.353749048213164, 0.82000000278155005]"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.evaluate(features, targets, batch_size=10)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"['loss', 'acc']"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.metrics_names"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"ename": "Exception",
"evalue": "Error when checking model target: expected activation_4 to have shape (None, 3) but got array with shape (150, 1)",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mException\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-12-809119062291>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mActivation\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'softmax'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcompile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0moptimizer\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'SGD'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mloss\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'categorical_crossentropy'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mmetrics\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'accuracy'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfeatures\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtargets\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnb_epoch\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m20\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbatch_size\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m5\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m/Users/michi/Documents/DEV/keras/kerastest/lib/python3.4/site-packages/keras/models.py\u001b[0m in \u001b[0;36mfit\u001b[0;34m(self, x, y, batch_size, nb_epoch, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, **kwargs)\u001b[0m\n\u001b[1;32m 427\u001b[0m \u001b[0mshuffle\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mshuffle\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 428\u001b[0m \u001b[0mclass_weight\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mclass_weight\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 429\u001b[0;31m sample_weight=sample_weight)\n\u001b[0m\u001b[1;32m 430\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 431\u001b[0m def evaluate(self, x, y, batch_size=32, verbose=1,\n",
"\u001b[0;32m/Users/michi/Documents/DEV/keras/kerastest/lib/python3.4/site-packages/keras/engine/training.py\u001b[0m in \u001b[0;36mfit\u001b[0;34m(self, x, y, batch_size, nb_epoch, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight)\u001b[0m\n\u001b[1;32m 1034\u001b[0m \u001b[0mclass_weight\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mclass_weight\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1035\u001b[0m \u001b[0mcheck_batch_dim\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1036\u001b[0;31m batch_size=batch_size)\n\u001b[0m\u001b[1;32m 1037\u001b[0m \u001b[0;31m# prepare validation data\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1038\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mvalidation_data\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/Users/michi/Documents/DEV/keras/kerastest/lib/python3.4/site-packages/keras/engine/training.py\u001b[0m in \u001b[0;36m_standardize_user_data\u001b[0;34m(self, x, y, sample_weight, class_weight, check_batch_dim, batch_size)\u001b[0m\n\u001b[1;32m 965\u001b[0m \u001b[0moutput_shapes\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 966\u001b[0m \u001b[0mcheck_batch_dim\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 967\u001b[0;31m exception_prefix='model target')\n\u001b[0m\u001b[1;32m 968\u001b[0m sample_weights = standardize_sample_weights(sample_weight,\n\u001b[1;32m 969\u001b[0m self.output_names)\n",
"\u001b[0;32m/Users/michi/Documents/DEV/keras/kerastest/lib/python3.4/site-packages/keras/engine/training.py\u001b[0m in \u001b[0;36mstandardize_input_data\u001b[0;34m(data, names, shapes, check_batch_dim, exception_prefix)\u001b[0m\n\u001b[1;32m 106\u001b[0m \u001b[0;34m' to have shape '\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mshapes\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m+\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 107\u001b[0m \u001b[0;34m' but got array with shape '\u001b[0m \u001b[0;34m+\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 108\u001b[0;31m str(array.shape))\n\u001b[0m\u001b[1;32m 109\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0marrays\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 110\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mException\u001b[0m: Error when checking model target: expected activation_4 to have shape (None, 3) but got array with shape (150, 1)"
]
}
],
"source": [
"#わざと損失関数の設定をミスってみる\n",
"model = Sequential()\n",
"model.add(Dense(12, input_dim=4))\n",
"model.add(Activation('relu'))\n",
"model.add(Dense(3, input_dim=12))\n",
"model.add(Activation('softmax')) \n",
"model.compile(optimizer='SGD',loss='categorical_crossentropy',metrics=['accuracy'])\n",
"model.fit(features, targets, nb_epoch=20, batch_size=5)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/20\n",
"150/150 [==============================] - 0s - loss: 6.0804 - acc: 0.3333 \n",
"Epoch 2/20\n",
"150/150 [==============================] - 0s - loss: 6.0658 - acc: 0.3333 \n",
"Epoch 3/20\n",
"150/150 [==============================] - 0s - loss: 6.0658 - acc: 0.3333 \n",
"Epoch 4/20\n",
"150/150 [==============================] - 0s - loss: 6.0658 - acc: 0.3333 \n",
"Epoch 5/20\n",
"150/150 [==============================] - 0s - loss: 6.0658 - acc: 0.3333 \n",
"Epoch 6/20\n",
"150/150 [==============================] - 0s - loss: 6.0658 - acc: 0.3333 \n",
"Epoch 7/20\n",
"150/150 [==============================] - 0s - loss: 6.0658 - acc: 0.3333 \n",
"Epoch 8/20\n",
"150/150 [==============================] - 0s - loss: 6.0658 - acc: 0.3333 \n",
"Epoch 9/20\n",
"150/150 [==============================] - 0s - loss: 6.0658 - acc: 0.3333 \n",
"Epoch 10/20\n",
"150/150 [==============================] - 0s - loss: 6.0658 - acc: 0.3333 \n",
"Epoch 11/20\n",
"150/150 [==============================] - 0s - loss: 6.0658 - acc: 0.3333 \n",
"Epoch 12/20\n",
"150/150 [==============================] - 0s - loss: 6.0658 - acc: 0.3333 \n",
"Epoch 13/20\n",
"150/150 [==============================] - 0s - loss: 6.0658 - acc: 0.3333 \n",
"Epoch 14/20\n",
"150/150 [==============================] - 0s - loss: 6.0658 - acc: 0.3333 \n",
"Epoch 15/20\n",
"150/150 [==============================] - 0s - loss: 6.0658 - acc: 0.3333 \n",
"Epoch 16/20\n",
"150/150 [==============================] - 0s - loss: 6.0658 - acc: 0.3333 \n",
"Epoch 17/20\n",
"150/150 [==============================] - 0s - loss: 6.0658 - acc: 0.3333 \n",
"Epoch 18/20\n",
"150/150 [==============================] - 0s - loss: 6.0658 - acc: 0.3333 \n",
"Epoch 19/20\n",
"150/150 [==============================] - 0s - loss: 6.0658 - acc: 0.3333 \n",
"Epoch 20/20\n",
"150/150 [==============================] - 0s - loss: 6.0658 - acc: 0.3333 \n"
]
},
{
"data": {
"text/plain": [
"<keras.callbacks.History at 0x11dd52630>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model = Sequential()\n",
"model.add(Dense(12, input_dim=4))\n",
"model.add(Activation('relu'))\n",
"model.add(Dense(3, input_dim=12))\n",
"model.add(Activation('relu')) #最後をsoftmaxでなく、reluにすると一気に正答率が落ちる\n",
"model.compile(optimizer='SGD',loss='sparse_categorical_crossentropy',metrics=['accuracy'])\n",
"model.fit(features, targets, nb_epoch=20, batch_size=5)"
]
},
{
"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.4.1"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment