Skip to content
Snippets Groups Projects
Anomaly Detection - Part 1 - Multivariate Gaussian.ipynb 543 KiB
Newer Older
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Anomaly Detection"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib as mpl\n",
    "\n",
    "from scipy.stats import multivariate_normal\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "from sklearn.metrics import precision_recall_fscore_support\n",
    "from sklearn.metrics import accuracy_score\n",
    "from sklearn.metrics import confusion_matrix\n",
    "from sklearn.metrics import f1_score\n",
    "from sklearn.metrics.pairwise import euclidean_distances\n",
    "\n",
    "from sklearn.cluster import KMeans\n",
    "\n",
    "import matplotlib.gridspec as gridspec\n",
    "\n",
    "from tqdm.notebook import tqdm\n",
    "import ipywidgets as widgets"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Exercise 1 -  Multivariate Gaussian distribution\n",
    "You watched the video tutorial by Andrew Ng on anomaly detection using the multivariate Gaussian distribution. There is a data set on ILIAS containing credit card transactions made available by a European bank in September 2013 on [Kaggle](https://www.kaggle.com/mlg-ulb/creditcardfraud). Not surprisingly, the data set is anonymized, i.e. a PCA transformation was executed on all features (each feature therefore is a linear combination of the original but unknown features). The only exceptions are amount and time (milliseconds since first transaction). Finally, there is a class feature to indicate whether the transaction is fraudulent (value: 1) or genuine (value: 0). Implement fraud detection using the statistical approach introduced by Andrew Ng."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/jpeg": "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\n",
      "text/html": [
       "\n",
       "        <iframe\n",
       "            width=\"400\"\n",
       "            height=\"300\"\n",
       "            src=\"https://www.youtube.com/embed/g2YBWQnqOpw\"\n",
       "            frameborder=\"0\"\n",
       "            allowfullscreen\n",
       "            \n",
       "        ></iframe>\n",
       "        "
      ],
      "text/plain": [
       "<IPython.lib.display.YouTubeVideo at 0x7f0702316f10>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from IPython.display import YouTubeVideo\n",
    "YouTubeVideo('g2YBWQnqOpw')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Data Quality Assessment"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Time</th>\n",
       "      <th>V1</th>\n",
       "      <th>V2</th>\n",
       "      <th>V3</th>\n",
       "      <th>V4</th>\n",
       "      <th>V5</th>\n",
       "      <th>V6</th>\n",
       "      <th>V7</th>\n",
       "      <th>V8</th>\n",
       "      <th>V9</th>\n",
       "      <th>...</th>\n",
       "      <th>V21</th>\n",
       "      <th>V22</th>\n",
       "      <th>V23</th>\n",
       "      <th>V24</th>\n",
       "      <th>V25</th>\n",
       "      <th>V26</th>\n",
       "      <th>V27</th>\n",
       "      <th>V28</th>\n",
       "      <th>Amount</th>\n",
       "      <th>Class</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.0</td>\n",
       "      <td>-1.359807</td>\n",
       "      <td>-0.072781</td>\n",
       "      <td>2.536347</td>\n",
       "      <td>1.378155</td>\n",
       "      <td>-0.338321</td>\n",
       "      <td>0.462388</td>\n",
       "      <td>0.239599</td>\n",
       "      <td>0.098698</td>\n",
       "      <td>0.363787</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.018307</td>\n",
       "      <td>0.277838</td>\n",
       "      <td>-0.110474</td>\n",
       "      <td>0.066928</td>\n",
       "      <td>0.128539</td>\n",
       "      <td>-0.189115</td>\n",
       "      <td>0.133558</td>\n",
       "      <td>-0.021053</td>\n",
       "      <td>149.62</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.191857</td>\n",
       "      <td>0.266151</td>\n",
       "      <td>0.166480</td>\n",
       "      <td>0.448154</td>\n",
       "      <td>0.060018</td>\n",
       "      <td>-0.082361</td>\n",
       "      <td>-0.078803</td>\n",
       "      <td>0.085102</td>\n",
       "      <td>-0.255425</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.225775</td>\n",
       "      <td>-0.638672</td>\n",
       "      <td>0.101288</td>\n",
       "      <td>-0.339846</td>\n",
       "      <td>0.167170</td>\n",
       "      <td>0.125895</td>\n",
       "      <td>-0.008983</td>\n",
       "      <td>0.014724</td>\n",
       "      <td>2.69</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.0</td>\n",
       "      <td>-1.358354</td>\n",
       "      <td>-1.340163</td>\n",
       "      <td>1.773209</td>\n",
       "      <td>0.379780</td>\n",
       "      <td>-0.503198</td>\n",
       "      <td>1.800499</td>\n",
       "      <td>0.791461</td>\n",
Loading
Loading full blame...