{ "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": {}, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "from cotede.fuzzy import membership_functions as fuzz\n", "from cotede.fuzzy.defuzz import defuzz\n", "from cotede.utils import load_cfg" ] }, { "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": {}, "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": {}, "outputs": [ { "data": { "text/plain": [ "odict_keys(['spike', 'woa_normbias', 'gradient', 'fuzzylogic'])" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cfg = load_cfg('fuzzylogic')['variables']['sea_water_temperature']\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": {}, "outputs": [ { "data": { "text/plain": [ "OrderedDict([('weight', 1),\n", " ('low', [0.07, 0.2]),\n", " ('medium', [0.07, 0.2, 2, 6]),\n", " ('high', [2, 6])])" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cfg['fuzzylogic']['features']['spike']" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "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'], cfg['fuzzylogic']['features']['spike']['low']['params'])\n", "data['spike_md'] = fuzz.trapmf(data['x_spike'], cfg['fuzzylogic']['features']['spike']['medium']['params'])\n", "data['spike_hi'] = fuzz.smf(data['x_spike'], cfg['fuzzylogic']['features']['spike']['high']['params'])\n", "\n", "data['clim_lo'] = fuzz.zmf(data['x_clim'], cfg['fuzzylogic']['features']['woa_normbias']['low']['params'])\n", "data['clim_md'] = fuzz.trapmf(data['x_clim'], cfg['fuzzylogic']['features']['woa_normbias']['medium']['params'])\n", "data['clim_hi'] = fuzz.smf(data['x_clim'], cfg['fuzzylogic']['features']['woa_normbias']['high']['params'])\n", "\n", "data['grad_lo'] = fuzz.zmf(data['x_grad'], cfg['fuzzylogic']['features']['gradient']['low']['params'])\n", "data['grad_md'] = fuzz.trapmf(data['x_grad'], cfg['fuzzylogic']['features']['gradient']['medium']['params'])\n", "data['grad_hi'] = fuzz.smf(data['x_grad'], cfg['fuzzylogic']['features']['gradient']['high']['params'])\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": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "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": {}, "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.60, High uncert.: 0.32\n", "\n", "Gradient: 0.9\n", "Low uncert.: 0.68, Medium uncert.: 0.40, High uncert.: 0.00\n" ] } ], "source": [ "spike_level_lo = np.interp(spike, data['x_spike'], data['spike_lo'])\n", "spike_level_md = np.interp(spike, data['x_spike'], data['spike_md'])\n", "spike_level_hi = np.interp(spike, data['x_spike'], data['spike_hi'])\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 = np.interp(clim, data['x_clim'], data['clim_lo'])\n", "clim_level_md = np.interp(clim, data['x_clim'], data['clim_md'])\n", "clim_level_hi = np.interp(clim, data['x_clim'], data['clim_hi'])\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 = np.interp(grad, data['x_grad'], data['grad_lo'])\n", "grad_level_md = np.interp(grad, data['x_grad'], data['grad_md'])\n", "grad_level_hi = np.interp(grad, data['x_grad'], data['grad_hi'])\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": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "active rule low: 0.0, 0.0, 0.6797681876720284 -> 0.22658939589067614\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": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "active rule medium: 1.0, 0.5999999999999996, 0.4 -> 0.6666666666666665\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": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "active rule high: 0.0, 0.32125451377490527, 0.0 -> 0.32125451377490527\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": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "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": {}, "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 = defuzz(x_QC, aggregated, 'bisector')\n", "QC_activation = np.interp(QC, x_QC, aggregated) # for plot\n", "\n", "print(\"The QC was evaluated as: %.2f\" % QC)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "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": {}, "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.7.3" } }, "nbformat": 4, "nbformat_minor": 1 }