{"cells":[
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load in \n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory\n\nfrom subprocess import check_output\nprint(check_output([\"ls\", \"../input\"]).decode(\"utf8\"))\n\n# Any results you write to the current directory are saved as output."
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "import matplotlib.pyplot as plt\n%matplotlib inline\n\nimport warnings\nwarnings.filterwarnings(\"ignore\")"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "# read data\ntrain = pd.read_csv('../input/train.csv')"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "# get the most frequent place_id\nplace_id_freq = list(train.place_id.value_counts().index)\nprint(place_id_freq[:10])"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "from sklearn.neighbors import NearestNeighbors\nimport scipy.stats as ss\n\nplace = place_id_freq[10] # the id of place id\n\nsample_train = train[train.place_id==place]\n\nnbrs = NearestNeighbors(n_neighbors=2).fit(sample_train[['x','y']])\ndistances, indices = nbrs.kneighbors(sample_train[['x','y']])\n\nsample_train['avg_dist'] = ss.zscore(np.mean(distances[:,1:],axis=1))\nsample_train['is_outlier'] = (sample_train['avg_dist']>10).astype(int)\n\nsample_train.plot(kind='scatter',x='x',y='y',c=sample_train.is_outlier)\nplt.title(\"place_id: \"+str(place))"
 },
 {
  "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}