{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Generate Synthetic Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "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>x1</th>\n",
       "      <th>x2</th>\n",
       "      <th>y</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>14</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>50</td>\n",
       "      <td>49</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>66</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>34</td>\n",
       "      <td>35</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>12</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   x1  x2  y\n",
       "0   0  14  0\n",
       "1  50  49  0\n",
       "2  66   3  0\n",
       "3  34  35  0\n",
       "4  12   2  0"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x1 = np.random.randint(low=0, high=100, size= 200)\n",
    "x2 = np.random.randint(low=0, high=100, size= 200)\n",
    "data = {'x1':x1, 'x2':x2, 'y':0}\n",
    "\n",
    "df_red = pd.DataFrame.from_dict(data)\n",
    "df_red.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Int64Index([7, 23, 56, 78, 91, 99, 114, 142, 147, 177], dtype='int64')"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "idx = df_red[(df_red.x1 < 50) & (df_red.x2> 20) & (df_red.x2 < 30)].index\n",
    "idx"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_red.drop(index =idx, inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_red = df_red.sample(100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "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>x1</th>\n",
       "      <th>x2</th>\n",
       "      <th>y</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>10</td>\n",
       "      <td>21</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>34</td>\n",
       "      <td>29</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>16</td>\n",
       "      <td>29</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>29</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>43</td>\n",
       "      <td>27</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   x1  x2  y\n",
       "0  10  21  1\n",
       "1  34  29  1\n",
       "2  16  29  1\n",
       "3   3  29  1\n",
       "4  43  27  1"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x1 = np.random.randint(low=0, high=50, size= 100)\n",
    "x2 = np.random.randint(low=20, high=30, size= 100)\n",
    "data = {'x1':x1, 'x2':x2, 'y':1}\n",
    "\n",
    "df_blue = pd.DataFrame.from_dict(data)\n",
    "df_blue.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "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>x1</th>\n",
       "      <th>x2</th>\n",
       "      <th>y</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>109</th>\n",
       "      <td>99</td>\n",
       "      <td>34</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>94</td>\n",
       "      <td>93</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>50</td>\n",
       "      <td>79</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>75</td>\n",
       "      <td>54</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>50</td>\n",
       "      <td>49</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     x1  x2  y\n",
       "109  99  34  0\n",
       "32   94  93  0\n",
       "26   50  79  0\n",
       "13   75  54  0\n",
       "1    50  49  0"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = pd.concat([df_red, df_blue], axis=0)\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Visualise Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x1158c3e48>"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1126c41d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(data[data.y==0].x1, data[data.y==0].x2, 'o', label = \"blues\")\n",
    "plt.plot(data[data.y==1].x1, data[data.y==1].x2, 'o', label = \"caz\")\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Apply Machine LEarning Algorithms\n",
    "\n",
    "Look at\n",
    " - [Scikit-Learn Cheat Sheet](https://s3.amazonaws.com/assets.datacamp.com/blog_assets/Scikit_Learn_Cheat_Sheet_Python.pdf)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Helper Method to display decision Regions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "from matplotlib.colors import ListedColormap\n",
    "def plot_decision_regions(X, y, classifier, resolution=0.02):\n",
    "    # setup marker generator and color map\n",
    "    markers = ('s', 'x', 'o', '^', 'v')\n",
    "    colors = ('red', 'blue', 'lightgreen', 'gray', 'cyan')\n",
    "    cmap = ListedColormap(colors[:len(np.unique(y))])\n",
    "    # plot the decision surface\n",
    "    x1_min, x1_max = X[:, 0].min() - 1, X[:, 0].max() + 1\n",
    "    \n",
    "    x2_min, x2_max = X[:, 1].min() - 1, X[:, 1].max() + 1\n",
    "    xx1, xx2 = np.meshgrid(np.arange(x1_min, x1_max, resolution),\n",
    "    np.arange(x2_min, x2_max, resolution))\n",
    "    Z = classifier.predict(np.array([xx1.ravel(), xx2.ravel()]).T)\n",
    "    Z = Z.reshape(xx1.shape)\n",
    "    plt.contourf(xx1, xx2, Z, alpha=0.3, cmap=cmap)\n",
    "    plt.xlim(xx1.min(), xx1.max())\n",
    "    plt.ylim(xx2.min(), xx2.max())\n",
    "    # plot class samples\n",
    "    for idx, cl in enumerate(np.unique(y)):\n",
    "        plt.scatter(x=X[y == cl, 0],\n",
    "        y=X[y == cl, 1],\n",
    "        alpha=0.8,\n",
    "        c=colors[idx],\n",
    "        marker=markers[idx],\n",
    "        label=cl,\n",
    "        edgecolor='black')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## K-Nearest Neighbors"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/anaconda3/lib/python3.6/site-packages/sklearn/utils/validation.py:475: DataConversionWarning: Data with input dtype int64 was converted to float64 by StandardScaler.\n",
      "  warnings.warn(msg, DataConversionWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "1.0"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn import neighbors, preprocessing\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.metrics import accuracy_score # evaluation\n",
    "\n",
    "# Split data\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=33)\n",
    "\n",
    "# Scaler\n",
    "scaler = preprocessing.StandardScaler().fit(X_train)\n",
    "X_train = scaler.transform(X_train)\n",
    "X_test = scaler.transform(X_test)\n",
    "\n",
    "# Apply ML\n",
    "knn = neighbors.KNeighborsClassifier(n_neighbors=5)\n",
    "# Learn best parameters\n",
    "knn.fit(X_train, y_train)\n",
    "# Prediction\n",
    "y_pred = knn.predict(X_test)\n",
    "# Evaluation\n",
    "accuracy_score(y_test, y_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/anaconda3/lib/python3.6/site-packages/sklearn/utils/validation.py:475: DataConversionWarning: Data with input dtype int64 was converted to float64 by StandardScaler.\n",
      "  warnings.warn(msg, DataConversionWarning)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1a1eb2b5c0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_decision_regions(scaler.transform(X), y, classifier=knn)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Logistic REgression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.82\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/anaconda3/lib/python3.6/site-packages/sklearn/utils/validation.py:475: DataConversionWarning: Data with input dtype int64 was converted to float64 by StandardScaler.\n",
      "  warnings.warn(msg, DataConversionWarning)\n"
     ]
    }
   ],
   "source": [
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.metrics import accuracy_score\n",
    "from sklearn import preprocessing\n",
    "\n",
    "X, y = data.values[:,:-1], data.values[:,-1]\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=33, stratify=y)\n",
    "scaler = preprocessing.StandardScaler().fit(X_train)\n",
    "X_train = scaler.transform(X_train)\n",
    "X_test = scaler.transform(X_test)\n",
    "model = LogisticRegression(penalty='l2')\n",
    "model.fit(X_train, y_train)\n",
    "y_pred = model.predict(X_test)\n",
    "print(accuracy_score(y_test, y_pred))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/anaconda3/lib/python3.6/site-packages/sklearn/utils/validation.py:475: DataConversionWarning: Data with input dtype int64 was converted to float64 by StandardScaler.\n",
      "  warnings.warn(msg, DataConversionWarning)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x112648a90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_decision_regions(scaler.transform(X), y, classifier=model)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Decision Tree Algorithm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.0\n"
     ]
    }
   ],
   "source": [
    "from sklearn.tree import DecisionTreeClassifier\n",
    "tree = DecisionTreeClassifier(criterion='gini', max_depth=4, random_state=1)\n",
    "tree.fit(X_train, y_train)\n",
    "y_pred = tree.predict(X_test)\n",
    "print(accuracy_score(y_test, y_pred))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/anaconda3/lib/python3.6/site-packages/sklearn/utils/validation.py:475: DataConversionWarning: Data with input dtype int64 was converted to float64 by StandardScaler.\n",
      "  warnings.warn(msg, DataConversionWarning)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1a1d55d6d8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_decision_regions(scaler.transform(X), y, classifier=tree)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Neural Networks"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/anaconda3/lib/python3.6/site-packages/sklearn/utils/validation.py:475: DataConversionWarning: Data with input dtype int64 was converted to float64 by StandardScaler.\n",
      "  warnings.warn(msg, DataConversionWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.0\n"
     ]
    }
   ],
   "source": [
    "from sklearn.neural_network import MLPClassifier\n",
    "clf = MLPClassifier(solver='lbfgs', alpha=1e-1, hidden_layer_sizes=(10, 10), random_state=1)\n",
    "\n",
    "X, y = data.values[:,:-1], data.values[:,-1]\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=33,stratify=y)\n",
    "scaler = preprocessing.StandardScaler().fit(X_train)\n",
    "X_train = scaler.transform(X_train)\n",
    "X_test = scaler.transform(X_test)\n",
    "clf.fit(X_train, y_train) \n",
    "\n",
    "y_pred = clf.predict(X_test)\n",
    "print(accuracy_score(y_test, y_pred))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/anaconda3/lib/python3.6/site-packages/sklearn/utils/validation.py:475: DataConversionWarning: Data with input dtype int64 was converted to float64 by StandardScaler.\n",
      "  warnings.warn(msg, DataConversionWarning)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1a1d9baef0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_decision_regions(scaler.transform(X), y, classifier=clf)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Random Forest"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.0\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/anaconda3/lib/python3.6/site-packages/sklearn/utils/validation.py:475: DataConversionWarning: Data with input dtype int64 was converted to float64 by StandardScaler.\n",
      "  warnings.warn(msg, DataConversionWarning)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1a1ed79ef0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.ensemble import RandomForestClassifier\n",
    "forest = RandomForestClassifier(n_estimators=500, random_state=1)\n",
    "forest.fit(X_train, y_train)\n",
    "y_pred = forest.predict(X_test)\n",
    "print(accuracy_score(y_test, y_pred))\n",
    "\n",
    "\n",
    "plot_decision_regions(scaler.transform(X), y, classifier=forest)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Importance of Features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "importances = forest.feature_importances_\n",
    "importances\n",
    "\n",
    "indices = np.argsort(importances)[::-1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1a1d567860>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.bar(range(X_train.shape[1]),importances[indices], align='center')\n",
    "plt.xticks(range(X_train.shape[1]), data.columns[:-1][indices], rotation=90)\n",
    "plt.title('Feature Importance');plt.tight_layout()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "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.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}