{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Fuzzy Logic Quality Control" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example of the fuzzy approach to quality control\n", "\n", "The source code of this ipython notebook, as well as other examples, can be found in the documentation of CoTeDe (http://cotede.castelao.net)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import numpy as np\n", "import skfuzzy as fuzz\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's assume a set of measurements $x$ that could be temperature measurements from an ARGO or salinity from a CTD. \n", "The goal here is to evaluate the quality of each measurement ($x_i$) using Fuzzy Logic.\n", "We would like to evaluate each measurement $x_i$ not only by the value itself, but from different perspectives, like how similar is that measurement to the climatology? We'll call each one of this perspectives as a feature, and will construct a multi-dimensional evaluation system. \n", "\n", "The features we'll use here are:\n", "\n", "- Spike\n", "- Climatology\n", "- Gradient\n", "\n", "We'll assume that the measurement $x_i$ resulted in the following values:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "spike = 1.0\n", "clim = 5.4\n", "grad = 0.9" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Membership Functions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The first step to do is to define the membership functions on 3 levels of uncertainty: low, medium and high, for each feature. " ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[u'gradient', u'woa_normbias', u'fuzzylogic', u'spike']" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from cotede.utils import load_cfg\n", "cfg = load_cfg('fuzzylogic')['TEMP']\n", "cfg.keys()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "An example of membership function parameters. The fuzzy set 'low' for feature 'spike' is:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "{u'high': [2, 6],\n", " u'low': [0.07, 0.2],\n", " u'medium': [0.07, 0.2, 2, 6],\n", " u'weight': 1}" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cfg['fuzzylogic']['features']['spike']" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [], "source": [ "data = {}\n", "\n", "data['x_spike'] = np.linspace(0, 7, 200)\n", "data['x_clim'] = np.linspace(0, 10, 200)\n", "data['x_grad'] = np.linspace(0, 6, 200)\n", "x_QC = np.linspace(0.0, 1.0, 200)\n", "\n", "# Generate fuzzy membership functions\n", "data['spike_lo'] = fuzz.zmf(data['x_spike'],\n", " cfg['fuzzylogic']['features']['spike']['low'][0],\n", " cfg['fuzzylogic']['features']['spike']['low'][1])\n", "data['spike_md'] = fuzz.pimf(data['x_spike'],\n", " cfg['fuzzylogic']['features']['spike']['medium'][0],\n", " cfg['fuzzylogic']['features']['spike']['medium'][1],\n", " cfg['fuzzylogic']['features']['spike']['medium'][2],\n", " cfg['fuzzylogic']['features']['spike']['medium'][3]\n", " )\n", "data['spike_hi'] = fuzz.smf(data['x_spike'],\n", " cfg['fuzzylogic']['features']['spike']['high'][0],\n", " cfg['fuzzylogic']['features']['spike']['high'][1])\n", "\n", "data['clim_lo'] = fuzz.zmf(data['x_clim'],\n", " cfg['fuzzylogic']['features']['woa_normbias']['low'][0],\n", " cfg['fuzzylogic']['features']['woa_normbias']['low'][1])\n", "data['clim_md'] = fuzz.pimf(data['x_clim'],\n", " cfg['fuzzylogic']['features']['woa_normbias']['medium'][0],\n", " cfg['fuzzylogic']['features']['woa_normbias']['medium'][1],\n", " cfg['fuzzylogic']['features']['woa_normbias']['medium'][2],\n", " cfg['fuzzylogic']['features']['woa_normbias']['medium'][3]\n", " )\n", "data['clim_hi'] = fuzz.smf(data['x_clim'],\n", " cfg['fuzzylogic']['features']['woa_normbias']['high'][0],\n", " cfg['fuzzylogic']['features']['woa_normbias']['high'][1])\n", "\n", "data['grad_lo'] = fuzz.zmf(data['x_grad'],\n", " cfg['fuzzylogic']['features']['gradient']['low'][0],\n", " cfg['fuzzylogic']['features']['gradient']['low'][1])\n", "data['grad_md'] = fuzz.pimf(data['x_grad'],\n", " cfg['fuzzylogic']['features']['gradient']['medium'][0],\n", " cfg['fuzzylogic']['features']['gradient']['medium'][1],\n", " cfg['fuzzylogic']['features']['gradient']['medium'][2],\n", " cfg['fuzzylogic']['features']['gradient']['medium'][3]\n", " )\n", "data['grad_hi'] = fuzz.smf(data['x_grad'],\n", " cfg['fuzzylogic']['features']['gradient']['high'][0],\n", " cfg['fuzzylogic']['features']['gradient']['high'][1])\n", "\n", "QC_lo = fuzz.trimf(x_QC, [0.0, 0.225, 0.45])\n", "QC_md = fuzz.trimf(x_QC, [0.275, 0.5, 0.725])\n", "QC_hi = fuzz.trimf(x_QC, [0.55, 0.775, 1.0])\n", "QC_hi = fuzz.trapmf(x_QC, [0.55, 0.775, 1.0, 1e30])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's visualize the membership functions, and the input features being evaluated." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nFPGPbF25HQYAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Visualize these universes and membership functions\n", "fig, (ax0, ax1, ax2, ax3) = plt.subplots(nrows=4, figsize=(8, 9))\n", "\n", "ax0.plot(data['x_spike'], data['spike_lo'], 'g', linewidth=1.5, label='Low')\n", "ax0.plot(data['x_spike'], data['spike_md'], 'y', linewidth=1.5, label='Medium')\n", "ax0.plot(data['x_spike'], data['spike_hi'], 'r', linewidth=1.5, label='High')\n", "ax0.axvline(spike, color='k', linewidth=4, alpha=0.7)\n", "ax0.set_title('Spike')\n", "ax0.legend()\n", "\n", "ax1.plot(data['x_clim'], data['clim_lo'], 'g', linewidth=1.5, label='Low')\n", "ax1.plot(data['x_clim'], data['clim_md'], 'y', linewidth=1.5, label='Medium')\n", "ax1.plot(data['x_clim'], data['clim_hi'], 'r', linewidth=1.5, label='High')\n", "ax1.axvline(clim, color='k', linewidth=4, alpha=0.7)\n", "ax1.set_title('Climatology')\n", "ax1.legend()\n", "\n", "ax2.plot(data['x_grad'], data['grad_lo'], 'g', linewidth=1.5, label='Low')\n", "ax2.plot(data['x_grad'], data['grad_md'], 'y', linewidth=1.5, label='Medium')\n", "ax2.plot(data['x_grad'], data['grad_hi'], 'r', linewidth=1.5, label='High')\n", "ax2.axvline(grad, color='k', linewidth=4, alpha=0.7)\n", "ax2.set_title('Gradient')\n", "ax2.legend()\n", "\n", "ax3.plot(x_QC, QC_lo, 'g', linewidth=1.5, label='Low')\n", "ax3.plot(x_QC, QC_md, 'y', linewidth=1.5, label='Medium')\n", "ax3.plot(x_QC, QC_hi, 'r', linewidth=1.5, label='High')\n", "ax3.set_title('QC output')\n", "ax3.legend()\n", "\n", "# Turn off top/right axes\n", "for ax in (ax0, ax1, ax2):\n", " ax.spines['top'].set_visible(False)\n", " ax.spines['right'].set_visible(False)\n", " ax.get_xaxis().tick_bottom()\n", " ax.get_yaxis().tick_left()\n", "\n", "plt.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Fuzzy Membership" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Spike: 1.0\n", "Low uncert.: 0.00, Medium uncert.: 1.00, High uncert.: 0.00\n", "\n", "Climatology bias: 5.4\n", "Low uncert.: 0.00, Medium uncert.: 0.68, High uncert.: 0.32\n", "\n", "Gradient: 0.9\n", "Low uncert.: 0.68, Medium uncert.: 0.32, High uncert.: 0.00\n" ] } ], "source": [ "spike_level_lo = fuzz.interp_membership(data['x_spike'], data['spike_lo'], spike)\n", "spike_level_md = fuzz.interp_membership(data['x_spike'], data['spike_md'], spike)\n", "spike_level_hi = fuzz.interp_membership(data['x_spike'], data['spike_hi'], spike)\n", "\n", "print(\"Spike: %s\" % spike)\n", "print(\"Low uncert.: %.2f, Medium uncert.: %.2f, High uncert.: %.2f\" %\n", " (spike_level_lo, spike_level_md, spike_level_hi))\n", "\n", "clim_level_lo = fuzz.interp_membership(data['x_clim'], data['clim_lo'], clim)\n", "clim_level_md = fuzz.interp_membership(data['x_clim'], data['clim_md'], clim)\n", "clim_level_hi = fuzz.interp_membership(data['x_clim'], data['clim_hi'], clim)\n", "\n", "print(\"\")\n", "print(\"Climatology bias: %s\" % clim)\n", "print(\"Low uncert.: %.2f, Medium uncert.: %.2f, High uncert.: %.2f\" %\n", " (clim_level_lo, clim_level_md, clim_level_hi))\n", "\n", "grad_level_lo = fuzz.interp_membership(data['x_grad'], data['grad_lo'], grad)\n", "grad_level_md = fuzz.interp_membership(data['x_grad'], data['grad_md'], grad)\n", "grad_level_hi = fuzz.interp_membership(data['x_grad'], data['grad_hi'], grad)\n", "\n", "print(\"\")\n", "print(\"Gradient: %s\" % grad)\n", "print(\"Low uncert.: %.2f, Medium uncert.: %.2f, High uncert.: %.2f\" %\n", " (grad_level_lo, grad_level_md, grad_level_hi))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Fuzzy Rules" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we take our rules and apply them." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Low uncertainty" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "active rule low: 0.0, 0.0, 0.679768187672 -> 0.226589395891\n" ] } ], "source": [ "active_rule1 = np.mean((spike_level_lo, clim_level_lo, grad_level_lo), axis=0)\n", "print(\"active rule low: %s, %s, %s -> %s\" %\n", " (spike_level_lo, clim_level_lo, grad_level_lo, active_rule1))\n", "\n", "# Now we apply this by clipping the top off the corresponding output\n", "# membership function with `np.fmin`\n", "QC_activation_lo = np.fmin(active_rule1, QC_lo)\n", "#print(\"QC_activation_lo: %s\" % QC_activation_lo)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Medium uncertainty" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "active rule medium: 1.0, 0.678745486225, 0.320231812328 -> 0.666325766184\n" ] } ], "source": [ "active_rule2 = np.mean((spike_level_md, clim_level_md, grad_level_md), axis=0)\n", "print(\"active rule medium: %s, %s, %s -> %s\" %\n", " (spike_level_md, clim_level_md, grad_level_md, active_rule2))\n", "\n", "#QC_activation_md = np.fmin(clim_level_md, QC_md)\n", "QC_activation_md = np.fmin(active_rule2, QC_md)\n", "#print(\"QC_activation_md: %s\" % QC_activation_md)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### High uncertainty" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "active rule high: 0.0, 0.321254513775, 0.0 -> 0.321254513775\n" ] } ], "source": [ "# The OR operator means we take the maximum of these.\n", "\n", "active_rule3 = np.fmax(grad_level_hi, np.fmax(spike_level_hi, clim_level_hi))\n", "print(\"active rule high: %s, %s, %s -> %s\" %\n", " (spike_level_hi, clim_level_hi, grad_level_hi, active_rule3))\n", "\n", "QC_activation_hi = np.fmin(active_rule3, QC_hi)\n", "#print(\"QC_activation_hi: %s\" % QC_activation_hi)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nRK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Visualize this\n", "fig, ax0 = plt.subplots(figsize=(8, 3))\n", "\n", "QC0 = np.zeros_like(x_QC)\n", "\n", "ax0.fill_between(x_QC, QC0, QC_activation_lo, facecolor='g', alpha=0.7, label='low')\n", "ax0.plot(x_QC, QC_lo, 'g', linewidth=0.5, linestyle='--', )\n", "ax0.fill_between(x_QC, QC0, QC_activation_md, facecolor='y', alpha=0.7, label='medium')\n", "ax0.plot(x_QC, QC_md, 'y', linewidth=0.5, linestyle='--')\n", "ax0.fill_between(x_QC, QC0, QC_activation_hi, facecolor='r', alpha=0.7, label='high')\n", "ax0.plot(x_QC, QC_hi, 'r', linewidth=0.5, linestyle='--')\n", "ax0.set_title('Output membership activity')\n", "\n", "# Turn off top/right axes\n", "for ax in (ax0,):\n", " ax.spines['top'].set_visible(False)\n", " ax.spines['right'].set_visible(False)\n", " ax.get_xaxis().tick_bottom()\n", " ax.get_yaxis().tick_left()\n", "\n", "plt.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Defuzzifying" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The QC was evaluated as: 0.53\n" ] } ], "source": [ "# Aggregate all three output membership functions together\n", "aggregated = np.fmax(QC_activation_lo,\n", " np.fmax(QC_activation_md, QC_activation_hi))\n", "\n", "# Calculate defuzzified result\n", "#QC = fuzz.defuzz(x_QC, aggregated, 'centroid')\n", "QC = fuzz.defuzz(x_QC, aggregated, 'bisector')\n", "QC_activation = fuzz.interp_membership(x_QC, aggregated, QC) # for plot\n", "\n", "print(\"The QC was evaluated as: %.2f\" % QC)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nSUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Visualize this\n", "fig, ax0 = plt.subplots(figsize=(8, 3))\n", "\n", "ax0.plot(x_QC, QC_lo, 'b', linewidth=0.5, linestyle='--', )\n", "ax0.plot(x_QC, QC_md, 'g', linewidth=0.5, linestyle='--')\n", "ax0.plot(x_QC, QC_hi, 'r', linewidth=0.5, linestyle='--')\n", "ax0.fill_between(x_QC, QC0, aggregated, facecolor='Orange', alpha=0.7)\n", "ax0.plot([QC, QC], [0, QC_activation], 'k', linewidth=4, alpha=0.9)\n", "ax0.set_title('Aggregated membership and result (line)')\n", "\n", "# Turn off top/right axes\n", "for ax in (ax0,):\n", " ax.spines['top'].set_visible(False)\n", " ax.spines['right'].set_visible(False)\n", " ax.get_xaxis().tick_bottom()\n", " ax.get_yaxis().tick_left()\n", "\n", "plt.tight_layout()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [] } ], "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 }