Skip to content

Instantly share code, notes, and snippets.

@smellslikeml
Created February 23, 2019 22:52
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 smellslikeml/b98a93c880f07068059ca41306b69314 to your computer and use it in GitHub Desktop.
Save smellslikeml/b98a93c880f07068059ca41306b69314 to your computer and use it in GitHub Desktop.
anomaly detection on droop counts
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Anomalous Droop Detection"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here we analyze our time series of droop counts from our irrigation experiment using tomato plants grown under a ceramic metal halide lamp in a 3x3 indoor grow tent. Droop counts refer to the number of 'droop' objects identified with our specialized object detection model and offers a measure of drought stress intensity for our purposes."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/funk/anaconda3/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.\n",
" from ._conv import register_converters as _register_converters\n",
"Using TensorFlow backend.\n"
]
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"import numpy as np\n",
"import keras\n",
"from keras.models import Sequential\n",
"from keras.callbacks import EarlyStopping\n",
"from keras.layers import Dense, Dropout, Conv1D, MaxPooling1D, Flatten\n",
"from keras.optimizers import RMSprop\n",
"from keras import losses"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df = pd.read_csv('/home/funk/droop.csv')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>droop</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>5000.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>4.795200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>1.709807</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>4.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>5.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>6.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>13.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" droop\n",
"count 5000.000000\n",
"mean 4.795200\n",
"std 1.709807\n",
"min 0.000000\n",
"25% 4.000000\n",
"50% 5.000000\n",
"75% 6.000000\n",
"max 13.000000"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nOTa/gmGNAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(range(df.shape[0]), df.droop.values[::-1], 'bo:', alpha=0.1)\n",
"plt.title('Droop over 2/1/19-2/23/19')\n",
"plt.xlabel('TimeStep')\n",
"plt.ylabel('Droop Count')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here we the the average droop count drifts in time. See the corresponding video: https://youtu.be/buS3CeGmz9o\n",
"Initially, there are signs of drought stress, we increase irrigation frequency and observe a growth spurt before the plant begins yellowing and drooping due to excessive irrigation."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Instead of simply flagging those points which are far from a rolling mean/median as anomalous, we want to learn to predict the time series value following an observed window. In the following, we set up the regression problem which benefits from parameter sharing in the CNN architecture. Then when the predicted and observed value are far apart, we can flag the observation as an anomaly."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"WARNING:tensorflow:From /home/funk/anaconda3/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:1264: calling reduce_prod (from tensorflow.python.ops.math_ops) with keep_dims is deprecated and will be removed in a future version.\n",
"Instructions for updating:\n",
"keep_dims is deprecated, use keepdims instead\n",
"_________________________________________________________________\n",
"Layer (type) Output Shape Param # \n",
"=================================================================\n",
"conv1d_1 (Conv1D) (None, 8, 8) 32 \n",
"_________________________________________________________________\n",
"max_pooling1d_1 (MaxPooling1 (None, 4, 8) 0 \n",
"_________________________________________________________________\n",
"conv1d_2 (Conv1D) (None, 3, 8) 136 \n",
"_________________________________________________________________\n",
"max_pooling1d_2 (MaxPooling1 (None, 1, 8) 0 \n",
"_________________________________________________________________\n",
"flatten_1 (Flatten) (None, 8) 0 \n",
"_________________________________________________________________\n",
"dense_1 (Dense) (None, 32) 288 \n",
"_________________________________________________________________\n",
"dropout_1 (Dropout) (None, 32) 0 \n",
"_________________________________________________________________\n",
"dense_2 (Dense) (None, 16) 528 \n",
"_________________________________________________________________\n",
"dropout_2 (Dropout) (None, 16) 0 \n",
"_________________________________________________________________\n",
"dense_3 (Dense) (None, 1) 17 \n",
"=================================================================\n",
"Total params: 1,001\n",
"Trainable params: 1,001\n",
"Non-trainable params: 0\n",
"_________________________________________________________________\n",
"WARNING:tensorflow:From /home/funk/anaconda3/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:1349: calling reduce_mean (from tensorflow.python.ops.math_ops) with keep_dims is deprecated and will be removed in a future version.\n",
"Instructions for updating:\n",
"keep_dims is deprecated, use keepdims instead\n"
]
}
],
"source": [
"window = 10\n",
"def anom_detect():\n",
" model = Sequential()\n",
" model.add(Conv1D(8, kernel_size=3, activation='relu', input_shape=(window, 1)))\n",
" model.add(MaxPooling1D(pool_size=2))\n",
" model.add(Conv1D(8, kernel_size=2, activation='relu'))\n",
" model.add(MaxPooling1D(pool_size=2))\n",
" model.add(Flatten())\n",
" model.add(Dense(32, activation='relu'))\n",
" model.add(Dropout(0.2))\n",
" model.add(Dense(16, activation='relu'))\n",
" model.add(Dropout(0.2))\n",
" model.add(Dense(1, activation='relu'))\n",
" model.summary()\n",
" return model\n",
"\n",
"model = anom_detect()\n",
"model.compile(loss=losses.mean_absolute_error,\n",
" optimizer=RMSprop(lr=0.0001),\n",
" metrics=['accuracy'])"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def split_sequence(sequence, n_steps):\n",
" '''Helper function to create sequential training samples \n",
" from our time series sequence.\n",
" '''\n",
" X, y = list(), list()\n",
" for i in range(len(sequence)):\n",
" end_ix = i + n_steps\n",
" if end_ix > len(sequence) - 1:\n",
" break\n",
" seq_x, seq_y = sequence[i:end_ix], sequence[end_ix]\n",
" X.append(seq_x)\n",
" y.append(seq_y)\n",
" return np.array(X), np.array(y)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"raw_seq = df.droop.values[::-1]\n",
"X_train, y_train = split_sequence(raw_seq, window)\n",
"X_train = np.expand_dims(X_train, axis=-1)\n",
"N = 1000\n",
"X_val, y_val = X_train[-N:], y_train[-N:]\n",
"X_train, y_train = X_train[:-N], y_train[:-N]"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train on 3990 samples, validate on 1000 samples\n",
"Epoch 1/50\n",
"3990/3990 [==============================] - 3s 671us/step - loss: 4.1382 - acc: 0.0033 - val_loss: 6.5764 - val_acc: 0.0000e+00\n",
"Epoch 2/50\n",
"3990/3990 [==============================] - 0s 66us/step - loss: 3.9880 - acc: 0.0055 - val_loss: 6.2298 - val_acc: 0.0000e+00\n",
"Epoch 3/50\n",
"3990/3990 [==============================] - 0s 67us/step - loss: 3.7976 - acc: 0.0100 - val_loss: 5.8739 - val_acc: 0.0000e+00\n",
"Epoch 4/50\n",
"3990/3990 [==============================] - 0s 69us/step - loss: 3.5399 - acc: 0.0128 - val_loss: 5.4762 - val_acc: 0.0000e+00\n",
"Epoch 5/50\n",
"3990/3990 [==============================] - 0s 70us/step - loss: 3.2723 - acc: 0.0248 - val_loss: 5.0276 - val_acc: 0.0000e+00\n",
"Epoch 6/50\n",
"3990/3990 [==============================] - 0s 65us/step - loss: 2.9657 - acc: 0.0401 - val_loss: 4.5258 - val_acc: 0.0000e+00\n",
"Epoch 7/50\n",
"3990/3990 [==============================] - 0s 67us/step - loss: 2.6313 - acc: 0.0589 - val_loss: 3.9654 - val_acc: 0.0060\n",
"Epoch 8/50\n",
"3990/3990 [==============================] - 0s 66us/step - loss: 2.2786 - acc: 0.0860 - val_loss: 3.3750 - val_acc: 0.0100\n",
"Epoch 9/50\n",
"3990/3990 [==============================] - 0s 71us/step - loss: 1.9401 - acc: 0.1396 - val_loss: 2.7722 - val_acc: 0.0290\n",
"Epoch 10/50\n",
"3990/3990 [==============================] - 0s 66us/step - loss: 1.6376 - acc: 0.1987 - val_loss: 2.1601 - val_acc: 0.0790\n",
"Epoch 11/50\n",
"3990/3990 [==============================] - 0s 69us/step - loss: 1.4861 - acc: 0.2090 - val_loss: 1.6761 - val_acc: 0.1280\n",
"Epoch 12/50\n",
"3990/3990 [==============================] - 0s 66us/step - loss: 1.4074 - acc: 0.2303 - val_loss: 1.3698 - val_acc: 0.1680\n",
"Epoch 13/50\n",
"3990/3990 [==============================] - 0s 67us/step - loss: 1.4037 - acc: 0.2281 - val_loss: 1.2421 - val_acc: 0.1960\n",
"Epoch 14/50\n",
"3990/3990 [==============================] - 0s 67us/step - loss: 1.3610 - acc: 0.2361 - val_loss: 1.2149 - val_acc: 0.1980\n",
"Epoch 15/50\n",
"3990/3990 [==============================] - 0s 66us/step - loss: 1.3627 - acc: 0.2311 - val_loss: 1.2390 - val_acc: 0.1950\n",
"Epoch 16/50\n",
"3990/3990 [==============================] - 0s 66us/step - loss: 1.3308 - acc: 0.2416 - val_loss: 1.2696 - val_acc: 0.1880\n",
"Epoch 17/50\n",
"3990/3990 [==============================] - 0s 67us/step - loss: 1.3171 - acc: 0.2521 - val_loss: 1.2427 - val_acc: 0.1950\n",
"Epoch 18/50\n",
"3990/3990 [==============================] - 0s 70us/step - loss: 1.2922 - acc: 0.2511 - val_loss: 1.1921 - val_acc: 0.2060\n",
"Epoch 19/50\n",
"3990/3990 [==============================] - 0s 66us/step - loss: 1.2938 - acc: 0.2539 - val_loss: 1.1290 - val_acc: 0.2360\n",
"Epoch 20/50\n",
"3990/3990 [==============================] - 0s 68us/step - loss: 1.2644 - acc: 0.2581 - val_loss: 1.1790 - val_acc: 0.2090\n",
"Epoch 21/50\n",
"3990/3990 [==============================] - 0s 70us/step - loss: 1.2876 - acc: 0.2544 - val_loss: 1.1335 - val_acc: 0.2320\n",
"Epoch 22/50\n",
"3990/3990 [==============================] - 0s 65us/step - loss: 1.2816 - acc: 0.2419 - val_loss: 1.1734 - val_acc: 0.2190\n",
"Epoch 23/50\n",
"3990/3990 [==============================] - 0s 66us/step - loss: 1.2519 - acc: 0.2546 - val_loss: 1.2325 - val_acc: 0.1960\n",
"Epoch 24/50\n",
"3990/3990 [==============================] - 0s 68us/step - loss: 1.2394 - acc: 0.2596 - val_loss: 1.1577 - val_acc: 0.2240\n",
"Epoch 25/50\n",
"3990/3990 [==============================] - 0s 67us/step - loss: 1.2424 - acc: 0.2536 - val_loss: 1.1386 - val_acc: 0.2340\n",
"Epoch 26/50\n",
"3990/3990 [==============================] - 0s 67us/step - loss: 1.2358 - acc: 0.2604 - val_loss: 1.1790 - val_acc: 0.2120\n",
"Epoch 27/50\n",
"3990/3990 [==============================] - 0s 68us/step - loss: 1.2223 - acc: 0.2647 - val_loss: 1.1029 - val_acc: 0.2450\n",
"Epoch 28/50\n",
"3990/3990 [==============================] - 0s 66us/step - loss: 1.2532 - acc: 0.2509 - val_loss: 1.1602 - val_acc: 0.2220\n",
"Epoch 29/50\n",
"3990/3990 [==============================] - 0s 67us/step - loss: 1.2345 - acc: 0.2612 - val_loss: 1.1116 - val_acc: 0.2410\n",
"Epoch 30/50\n",
"3990/3990 [==============================] - 0s 67us/step - loss: 1.2028 - acc: 0.2624 - val_loss: 1.1367 - val_acc: 0.2330\n",
"Epoch 31/50\n",
"3990/3990 [==============================] - 0s 66us/step - loss: 1.2131 - acc: 0.2629 - val_loss: 1.1611 - val_acc: 0.2210\n",
"Epoch 32/50\n",
"3990/3990 [==============================] - 0s 65us/step - loss: 1.1844 - acc: 0.2719 - val_loss: 1.0865 - val_acc: 0.2530\n",
"Epoch 33/50\n",
"3990/3990 [==============================] - 0s 66us/step - loss: 1.1820 - acc: 0.2709 - val_loss: 1.1527 - val_acc: 0.2320\n",
"Epoch 34/50\n",
"3990/3990 [==============================] - 0s 67us/step - loss: 1.1772 - acc: 0.2724 - val_loss: 1.1196 - val_acc: 0.2380\n",
"Epoch 35/50\n",
"3990/3990 [==============================] - 0s 67us/step - loss: 1.1813 - acc: 0.2729 - val_loss: 1.1379 - val_acc: 0.2340\n",
"Epoch 36/50\n",
"3990/3990 [==============================] - 0s 67us/step - loss: 1.1785 - acc: 0.2669 - val_loss: 1.1062 - val_acc: 0.2450\n",
"Epoch 37/50\n",
"3990/3990 [==============================] - 0s 67us/step - loss: 1.1729 - acc: 0.2742 - val_loss: 1.1511 - val_acc: 0.2310\n",
"Epoch 38/50\n",
"3990/3990 [==============================] - 0s 68us/step - loss: 1.1749 - acc: 0.2647 - val_loss: 1.1235 - val_acc: 0.2390\n",
"Epoch 39/50\n",
"3990/3990 [==============================] - 0s 68us/step - loss: 1.1753 - acc: 0.2877 - val_loss: 1.1096 - val_acc: 0.2410\n",
"Epoch 40/50\n",
"3990/3990 [==============================] - 0s 67us/step - loss: 1.1485 - acc: 0.2862 - val_loss: 1.1127 - val_acc: 0.2410\n",
"Test loss: 1.112661756515503\n",
"Test accuracy: 0.241\n"
]
}
],
"source": [
"batch_size = 128\n",
"epochs = 50\n",
"early_stopping = EarlyStopping(monitor='val_loss', min_delta=0.0001, patience=8, verbose=0, mode='auto') \n",
"history = model.fit(X_train, y_train,\n",
" batch_size=batch_size,\n",
" epochs=epochs,\n",
" verbose=1,\n",
" validation_data=(X_val, y_val),\n",
" callbacks=[early_stopping])\n",
"\n",
"score = model.evaluate(X_val, y_val, verbose=0)\n",
"print('Test loss:', score[0])\n",
"print('Test accuracy:', score[1])"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\nexRuCD89FZsAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"yy = y_val.reshape(-1, 1)\n",
"xx = model.predict(X_val)\n",
"for idx in np.where(xx - yy < -4.0)[0]:\n",
" plt.plot(yy[idx - 5: idx + 5], 'bo:')\n",
" plt.plot(5, yy[idx], 'ro')\n",
" plt.plot(5, xx[idx], 'go')\n",
" plt.title('Candidate Irrigation Event at T=5')\n",
" plt.xlabel('+-5 Time Step Window around Candidate Event')\n",
" plt.ylabel('Droop Counts')\n",
" plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Observe the candidates for anomaly. We find the red (observed) droop count is much greater than the green (expected) droop count for that time. These candidate irrigation events can also be filtered by some additional logic to limit excessive irrigation while allowing for a dynamic response to observed stress signs."
]
}
],
"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.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment