{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "_cell_guid": "e00a26e3-3e91-bd88-c5e3-409828080b71"
      },
      "source": [
        "Let's test"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "_cell_guid": "21396e77-e712-d666-792f-4ced072559d0"
      },
      "outputs": [],
      "source": [
        "# load packages\n",
        "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",
        "%matplotlib inline"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "_cell_guid": "6bd0e394-aea4-a60c-e733-1938cc582c6b"
      },
      "outputs": [],
      "source": [
        "# Load data\n",
        "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",
        "train_images, test_images,train_labels, test_labels = train_test_split(images, labels, train_size=0.8, random_state=0)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "_cell_guid": "40eb258f-5b43-5945-f14e-b8ec4e073174"
      },
      "outputs": [],
      "source": [
        "# View image\n",
        "i=1325\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": "code",
      "execution_count": null,
      "metadata": {
        "_cell_guid": "23c14c29-5815-1775-f6d1-c5c279b3df8c"
      },
      "outputs": [],
      "source": [
        "# Histogram\n",
        "plt.hist(train_images.iloc[i])"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "_cell_guid": "2da4bc91-cffc-2b55-635c-9fc6a19c943e"
      },
      "outputs": [],
      "source": [
        "# Training model\n",
        "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": "c1e4991f-1954-0af2-1309-5fbf0b852616"
      },
      "outputs": [],
      "source": [
        "# improve by converting to black and white\n",
        "test_images[test_images>0]=1\n",
        "train_images[train_images>0]=1\n",
        "\n",
        "img=train_images.iloc[i].as_matrix().reshape((28,28))\n",
        "plt.imshow(img,cmap='binary')\n",
        "plt.title(train_labels.iloc[i])"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "_cell_guid": "17d29446-b06c-c94f-7313-458e60eb2413"
      },
      "outputs": [],
      "source": [
        "# histogram\n",
        "plt.hist(train_images.iloc[i])"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "_cell_guid": "8b520043-c2ec-5951-94ca-c420c9281a38"
      },
      "outputs": [],
      "source": [
        "# model\n",
        "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": "74f72401-1ac1-4576-59ed-0d4d16ba00db"
      },
      "outputs": [],
      "source": [
        "# prediction\n",
        "test_data=pd.read_csv('../input/test.csv')\n",
        "test_data[test_data>0]=1\n",
        "results=clf.predict(test_data[0:5000])"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "_cell_guid": "2354bc4b-297d-8b5f-180c-dbb3f98b8cdc"
      },
      "outputs": [],
      "source": [
        "results"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "_cell_guid": "2edccc1c-90d2-9587-a2d5-4658ea29a655"
      },
      "outputs": [],
      "source": [
        "# Save for competition\n",
        "df = pd.DataFrame({\"ImageId\": list(range(1,len(results)+1)),\n",
        "                         \"Label\": results})\n",
        "df.to_csv('results.csv', header=True)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "_cell_guid": "a00bf1b3-5d3a-43ca-95a5-00c12013a28c"
      },
      "outputs": [],
      "source": [
        "df.head()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "_cell_guid": "98456287-c7d8-265f-968b-fcc9394cd988"
      },
      "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
}