{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "_cell_guid": "559e9428-931d-5f17-251e-aca82c0a75d8"
      },
      "source": [
        "Import"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "_cell_guid": "91c80df2-2be5-0bd7-bac5-e094fc79359d"
      },
      "outputs": [],
      "source": [
        "import pandas as pd\n",
        "import matplotlib.pyplot as plt, matplotlib.image as mpimg\n",
        "from sklearn.model_selection import train_test_split\n",
        "from sklearn import svm\n",
        "from scipy.ndimage.filters import gaussian_filter\n",
        "%matplotlib inline\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "_cell_guid": "ca6eba54-cb0f-5050-2732-27b7496685b6"
      },
      "source": [
        "Load data"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "_cell_guid": "d2317aef-05d0-b11c-5592-de23faca8266"
      },
      "outputs": [],
      "source": [
        "labeled_images = pd.read_csv('../input/train.csv')\n",
        "images = labeled_images.iloc[0:5000,1:]\n",
        "labels = labeled_images.iloc[0:5000,:1]\n",
        "\n",
        "for i in range(images.shape[0]):\n",
        "    img=images.iloc[i].as_matrix()\n",
        "    img=img.reshape((28,28))\n",
        "    img=gaussian_filter(img, sigma=1)\n",
        "    img=img.reshape(784,1)\n",
        "    images.iloc[i].as_matrix=img\n",
        "\n",
        "\n",
        "train_images, test_images,train_labels, test_labels = train_test_split(images, labels, train_size=0.8, random_state=0)\n",
        "\n",
        "\n",
        "i=50\n",
        "img=train_images.iloc[i].as_matrix()\n",
        "img=img.reshape((28,28))\n",
        "img=gaussian_filter(img, sigma=1)\n",
        "plt.imshow(img,cmap='gray')\n",
        "plt.title(train_labels.iloc[i,0])"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "_cell_guid": "7c261dd2-8bbb-c9f4-091d-52401c697e03"
      },
      "source": [
        "Pre-process data"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "_cell_guid": "26bc76d2-0996-d3b8-da5a-03f3986e7c05"
      },
      "outputs": [],
      "source": [
        "test_images[test_images<1]=0\n",
        "test_images[test_images>=1]=1\n",
        "train_images[train_images<1]=0\n",
        "train_images[train_images>=1]=1\n",
        "#train_images/=255\n",
        "#test_images/=255\n",
        "\n",
        "i=50\n",
        "img=train_images.iloc[i].as_matrix()\n",
        "img=img.reshape((28,28))\n",
        "plt.imshow(img,cmap='gray')\n",
        "plt.title(train_labels.iloc[i,0])"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "_cell_guid": "ded2b87f-3956-8ac2-e75c-b157a0a73f93"
      },
      "source": [
        "Learn by SVM and display accuracy"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "_cell_guid": "4433aa0f-25f5-4440-bd91-95767f262413"
      },
      "outputs": [],
      "source": [
        "clf = svm.SVC()\n",
        "clf.fit(train_images, train_labels.values.ravel())\n",
        "clf.score(test_images,test_labels)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "_cell_guid": "05be8155-7c04-b00f-78d7-95189af341d5"
      },
      "outputs": [],
      "source": [
        ""
      ]
    }
  ],
  "metadata": {
    "_change_revision": 0,
    "_is_fork": false,
    "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.0"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}