{"cells":[
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "import pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\n\n%matplotlib inline\n\ntrain = pd.read_csv('../input/train.csv')\nlabel = pd.DataFrame(train.label)\ntrain = train[train.columns.drop('label')]\ntest = pd.read_csv('../input/test.csv')"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "train.head()"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "label.label.value_counts(sort=False)"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "#how to put the pixels into an image\nfrom PIL import Image\n\ni = 0\nim = Image.new(\"RGB\",(28, 28))\npix = im.load()\nfor y in range(28):\n    for x in range(28):\n        pix[x,y] = (train.iloc[1,i],0,0)\n        i = i + 1\n\nim"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "from sklearn.ensemble import RandomForestClassifier\nfrom sklearn import cross_validation, metrics\n\ny = label\nX = train\n\nerror_rate = []\n\ncv = cross_validation.KFold(len(X), n_folds=5, shuffle=True)\n\nfor train_index, test_index in cv:\n    model = RandomForestClassifier(n_estimators=75, max_depth=15, min_samples_leaf=6).fit(X.iloc[train_index], y.iloc[train_index])\n    df = y.iloc[test_index]\n    df['predict'] = model.predict(X.iloc[test_index])\n    error_rate.append(float(len(df[df.label != df.predict]))/float(len(df)))\n    \n    \nprint(\"Error Rate:\", np.mean(error_rate))"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "test['label'] = pd.DataFrame(model.predict(test.fillna(0)))\npd.DataFrame(test.label)"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": ""
 }
],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"}}, "nbformat": 4, "nbformat_minor": 0}