{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "_cell_guid": "a0e27cf4-15be-47f1-a25b-cbef4cef6d81"
      },
      "source": [
        "#based on Charlie H's svm intro****"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "_cell_guid": "67369f2e-b914-8996-3848-53575b5b0fb2"
      },
      "outputs": [],
      "source": [
        "import pandas as pd\n",
        "import matplotlib.pyplot as plt, matplotlib.image as mpimg\n",
        "from sklearn.cross_validation import train_test_split\n",
        "from sklearn import svm\n",
        "import numpy as np\n",
        "%matplotlib inline"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "_cell_guid": "1199e5f1-fef2-d8b5-b266-7f784e78e6fe"
      },
      "outputs": [],
      "source": [
        "labeled_images = pd.read_csv('../input/train.csv')"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "_cell_guid": "e2697d3c-48f2-437a-17a3-f8d6dee18860"
      },
      "outputs": [],
      "source": [
        "### for trial run with smaller dataset ####\n",
        "\n",
        "#np.random.seed = 28\n",
        "#rand_image_index=np.random.randint(0,labeled_images.shape[0],5000)\n",
        "#images = labeled_images.iloc[rand_image_index,1:]\n",
        "#labels = labeled_images.iloc[rand_image_index,:1]\n",
        "\n",
        "\n",
        "### for actual run with full dataset\n",
        "images = labeled_images.iloc[:,1:]\n",
        "labels = labeled_images.iloc[:,:1]"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "_cell_guid": "d661d3df-1b3f-be90-3d82-08c949634452"
      },
      "outputs": [],
      "source": [
        "train_images, test_images,train_labels, test_labels = train_test_split(images, labels, train_size=0.8, random_state=0)\n",
        "train_images /= 255\n",
        "test_images /= 255\n",
        "\n",
        "#from sklearn.preprocessing import Binarizer\n",
        "#scaler = Binarizer()\n",
        "#train_images = scaler.fit_transform(train_images)\n",
        "#test_images = scaler.transform(test_images)\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "_cell_guid": "aae7af58-ff65-f257-15c7-00088c238547"
      },
      "outputs": [],
      "source": [
        "clf = svm.SVC(kernel='rbf', gamma=0.01, C=10)                                          \n",
        "\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": "a598de1d-c106-3f18-00c1-fe32759833a9"
      },
      "outputs": [],
      "source": [
        "test_data=pd.read_csv('../input/test.csv')\n",
        "test_data /= 255\n",
        "results=clf.predict(test_data)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "_cell_guid": "92c558c8-6a17-6c01-2dc8-fdfa70c32ae8"
      },
      "outputs": [],
      "source": [
        "df = pd.DataFrame({'ImageID': range(1, test_data.shape[0]+1, 1),\n",
        "                  'Label': results})\n",
        "df.to_csv('results.csv', index=False)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "_cell_guid": "15335a75-a9b1-e3ef-a869-22644ea29fa8"
      },
      "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
}