Skip to content

Instantly share code, notes, and snippets.

@fhennecker
Created October 12, 2016 20:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fhennecker/c65db7adb1ca7ce21c82ee56a92fabd6 to your computer and use it in GitHub Desktop.
Save fhennecker/c65db7adb1ca7ce21c82ee56a92fabd6 to your computer and use it in GitHub Desktop.
{
"cells": [
{
"cell_type": "code",
"execution_count": 146,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"from sknn.mlp import Layer, Classifier\n",
"from sklearn.ensemble import RandomForestClassifier"
]
},
{
"cell_type": "code",
"execution_count": 147,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df = pd.read_csv('openings.csv')"
]
},
{
"cell_type": "code",
"execution_count": 148,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"nn = Classifier(\n",
" layers=[\n",
" Layer(\"Sigmoid\", units=100),\n",
" Layer(\"Softmax\")],\n",
" loss_type='mcc',\n",
" learning_rate=0.001,\n",
" n_iter=1)"
]
},
{
"cell_type": "code",
"execution_count": 149,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"df['t'] = df['Unnamed: 0'].apply(pd.to_datetime)"
]
},
{
"cell_type": "code",
"execution_count": 150,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"df['weekday'] = df.t.dt.weekday\n",
"df['hour'] = df.t.dt.hour\n",
"df['month'] = df.t.dt.month\n",
"df['woy'] = df.t.dt.weekofyear\n",
"df['openlastweek'] = df.is_open.shift(24*7).fillna(False).astype(np.int32)\n",
"df['openlastday'] = df.is_open.shift(24).fillna(False).astype(np.int32)\n",
"df['openlasthour2'] = df.is_open.shift(2).fillna(False).astype(np.int32)\n",
"df['openlasthour'] = df.is_open.shift(1).fillna(False).astype(np.int32)"
]
},
{
"cell_type": "code",
"execution_count": 151,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(27289, 8) (27289, 1)\n",
"[22 8 0 0 0 0 5 35]\n"
]
},
{
"data": {
"text/plain": [
"['hour',\n",
" 'month',\n",
" 'openlastday',\n",
" 'openlasthour',\n",
" 'openlasthour2',\n",
" 'openlastweek',\n",
" 'weekday',\n",
" 'woy']"
]
},
"execution_count": 151,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Xtr = np.array(df[sorted(list(set(df.columns) ^ set(['id', 'Unnamed: 0', 'is_open', 't'])))])\n",
"ytr = np.array(df['is_open'], dtype=np.int32).reshape(Xtr.shape[0], 1)\n",
"print(Xtr.shape, ytr.shape)\n",
"print(Xtr[0])\n",
"sorted(list(set(df.columns) ^ set(['id', 'Unnamed: 0', 'is_open', 't'])))"
]
},
{
"cell_type": "code",
"execution_count": 152,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"#nn.fit(Xtr, ytr)"
]
},
{
"cell_type": "code",
"execution_count": 153,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/fhennecker/Documents/ulb/urlab/neurowed/ve/lib/python3.5/site-packages/ipykernel/__main__.py:4: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples,), for example using ravel().\n"
]
},
{
"data": {
"text/plain": [
"RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',\n",
" max_depth=None, max_features='auto', max_leaf_nodes=None,\n",
" min_impurity_split=1e-07, min_samples_leaf=1,\n",
" min_samples_split=2, min_weight_fraction_leaf=0.0,\n",
" n_estimators=100, n_jobs=1, oob_score=False, random_state=None,\n",
" verbose=0, warm_start=False)"
]
},
"execution_count": 153,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rf = RandomForestClassifier(n_estimators=100)\n",
"from sklearn.model_selection import train_test_split\n",
"Xtraining, Xtest, ytraining, ytest = train_test_split(Xtr, ytr, test_size = 0.33) \n",
"rf.fit(Xtraining, ytraining)"
]
},
{
"cell_type": "code",
"execution_count": 154,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.95514101709971133"
]
},
"execution_count": 154,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rf.score(Xtest, ytest)"
]
},
{
"cell_type": "code",
"execution_count": 155,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"119.73445238095238"
]
},
"execution_count": 155,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def score(predictor, X, y):\n",
" p = predictor.predict(X)\n",
" return (predictor.predict_proba(X).max(axis=1) - 0.5)[p != y.flatten()].sum()\n",
"\n",
"score(rf, Xtest, ytest)"
]
},
{
"cell_type": "code",
"execution_count": 156,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(array([ 32., 36., 35., 38., 23., 17., 40., 36., 42., 105.]),\n",
" array([ 0. , 0.05, 0.1 , 0.15, 0.2 , 0.25, 0.3 , 0.35, 0.4 ,\n",
" 0.45, 0.5 ]),\n",
" <a list of 10 Patch objects>)"
]
},
"execution_count": 156,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x116a5bf28>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"p = rf.predict(Xtest)\n",
"plt.hist((rf.predict_proba(Xtest).max(axis=1) - 0.5)[p != ytest.flatten()])"
]
},
{
"cell_type": "code",
"execution_count": 157,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0.11167977, 0.02713162, 0.05992564, 0.41686455, 0.18582091,\n",
" 0.06844707, 0.05183866, 0.07829178])"
]
},
"execution_count": 157,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rf.feature_importances_"
]
},
{
"cell_type": "code",
"execution_count": 158,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"41"
]
},
"execution_count": 158,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.to_datetime('2016-10-12 22:00').weekofyear"
]
},
{
"cell_type": "code",
"execution_count": 159,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([1], dtype=int32)"
]
},
"execution_count": 159,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#['hour', 'month', 'openlastday', 'openlasthour', 'openlasthour2', 'openlastweek', 'weekday', 'woy']\n",
"from datetime import datetime\n",
"rf.predict(np.array([[2, 10, 1, 1, 1, 1, 2, pd.to_datetime('2016-10-12 22:00').weekofyear]]))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"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.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 146,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"from sknn.mlp import Layer, Classifier\n",
"from sklearn.ensemble import RandomForestClassifier"
]
},
{
"cell_type": "code",
"execution_count": 147,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df = pd.read_csv('openings.csv')"
]
},
{
"cell_type": "code",
"execution_count": 148,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"nn = Classifier(\n",
" layers=[\n",
" Layer(\"Sigmoid\", units=100),\n",
" Layer(\"Softmax\")],\n",
" loss_type='mcc',\n",
" learning_rate=0.001,\n",
" n_iter=1)"
]
},
{
"cell_type": "code",
"execution_count": 149,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"df['t'] = df['Unnamed: 0'].apply(pd.to_datetime)"
]
},
{
"cell_type": "code",
"execution_count": 150,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"df['weekday'] = df.t.dt.weekday\n",
"df['hour'] = df.t.dt.hour\n",
"df['month'] = df.t.dt.month\n",
"df['woy'] = df.t.dt.weekofyear\n",
"df['openlastweek'] = df.is_open.shift(24*7).fillna(False).astype(np.int32)\n",
"df['openlastday'] = df.is_open.shift(24).fillna(False).astype(np.int32)\n",
"df['openlasthour2'] = df.is_open.shift(2).fillna(False).astype(np.int32)\n",
"df['openlasthour'] = df.is_open.shift(1).fillna(False).astype(np.int32)"
]
},
{
"cell_type": "code",
"execution_count": 151,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(27289, 8) (27289, 1)\n",
"[22 8 0 0 0 0 5 35]\n"
]
},
{
"data": {
"text/plain": [
"['hour',\n",
" 'month',\n",
" 'openlastday',\n",
" 'openlasthour',\n",
" 'openlasthour2',\n",
" 'openlastweek',\n",
" 'weekday',\n",
" 'woy']"
]
},
"execution_count": 151,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Xtr = np.array(df[sorted(list(set(df.columns) ^ set(['id', 'Unnamed: 0', 'is_open', 't'])))])\n",
"ytr = np.array(df['is_open'], dtype=np.int32).reshape(Xtr.shape[0], 1)\n",
"print(Xtr.shape, ytr.shape)\n",
"print(Xtr[0])\n",
"sorted(list(set(df.columns) ^ set(['id', 'Unnamed: 0', 'is_open', 't'])))"
]
},
{
"cell_type": "code",
"execution_count": 152,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"#nn.fit(Xtr, ytr)"
]
},
{
"cell_type": "code",
"execution_count": 153,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/fhennecker/Documents/ulb/urlab/neurowed/ve/lib/python3.5/site-packages/ipykernel/__main__.py:4: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples,), for example using ravel().\n"
]
},
{
"data": {
"text/plain": [
"RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',\n",
" max_depth=None, max_features='auto', max_leaf_nodes=None,\n",
" min_impurity_split=1e-07, min_samples_leaf=1,\n",
" min_samples_split=2, min_weight_fraction_leaf=0.0,\n",
" n_estimators=100, n_jobs=1, oob_score=False, random_state=None,\n",
" verbose=0, warm_start=False)"
]
},
"execution_count": 153,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rf = RandomForestClassifier(n_estimators=100)\n",
"from sklearn.model_selection import train_test_split\n",
"Xtraining, Xtest, ytraining, ytest = train_test_split(Xtr, ytr, test_size = 0.33) \n",
"rf.fit(Xtraining, ytraining)"
]
},
{
"cell_type": "code",
"execution_count": 154,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.95514101709971133"
]
},
"execution_count": 154,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rf.score(Xtest, ytest)"
]
},
{
"cell_type": "code",
"execution_count": 155,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"119.73445238095238"
]
},
"execution_count": 155,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def score(predictor, X, y):\n",
" p = predictor.predict(X)\n",
" return (predictor.predict_proba(X).max(axis=1) - 0.5)[p != y.flatten()].sum()\n",
"\n",
"score(rf, Xtest, ytest)"
]
},
{
"cell_type": "code",
"execution_count": 156,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(array([ 32., 36., 35., 38., 23., 17., 40., 36., 42., 105.]),\n",
" array([ 0. , 0.05, 0.1 , 0.15, 0.2 , 0.25, 0.3 , 0.35, 0.4 ,\n",
" 0.45, 0.5 ]),\n",
" <a list of 10 Patch objects>)"
]
},
"execution_count": 156,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAg8AAAFkCAYAAACn/timAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAGD9JREFUeJzt3X+QZWV95/H3dxx+7GDNQIXAxLgohnVsd1NgjwFnEyRx\nYghxYySpjVzoMguFaxQM1cYFKaWCkqSUlDRRMSGaMioDFkEToEIxUcyi8ssVRqzShsQVtkWYYdsZ\nRMARYb7545xO7lymZ/q5fc69fXver6pTM/c5z733e5+5M/2Z5zznnMhMJEmSFmrFsAuQJEmjxfAg\nSZKKGB4kSVIRw4MkSSpieJAkSUUMD5IkqYjhQZIkFTE8SJKkIoYHSZJUxPAgSZKKFIeHiDgxIm6I\niO9FxK6IeH3XvpUR8YGI+EZEPFH3+WRE/EzPaxwWEZsi4gcRsSMiPh4RhzTxgSRJUrv6mXk4BPg6\ncA7Qe2OMVcBxwHuBVwCnAuuA63v6XQ2MARuB1wGvBq7soxZJkjRgsZgbY0XELuANmXnDXvq8ErgL\neFFmPhQRY8A3gfWZuaXuczLwD8ALM3Nr3wVJkqTWDWLNw6FUMxSP1Y9fBeyYCw61L9R9ThhAPZIk\naRFWtvniEXEQ8H7g6sx8om5eCzza3S8zn42I7fW+Pb3OTwEnAw8CO1srWJKk5edg4MXA5sz8fhMv\n2Fp4iIiVwN9SzSi8bSFP4blrKOacDGxqqDRJkvZHZ1CtOVy0VsJDV3D4j8BrumYdALYCR/T0fx5w\nGLBtnpd8EOCqq65ibGys8Xq1Z5OTk0xNTQ27jP2KYz54jvngOeaDNT09zcTEBNQ/S5vQeHjoCg4v\nAX4lM3f0dLkDODQiXtG17mEj1czDXfO87E6AsbExxsfHmy5Z81izZo3jPWCO+eA55oPnmA9NY4f9\ni8NDfT2GY6h+2AO8JCKOBbYDDwOfpTpd878BB0TEkXW/7Zn5k8y8LyI2Ax+LiLcCBwIfBq7xTAtJ\nkpa+fmYeXgn8E9X6hAQ+WLd/kur6Dr9Zt3+9bp9by/ArwJfqttOBj1CdZbELuA44r49aJEnSgBWH\nh8y8lb2f4rnP0z8z8zFgovS9JUnS8HlvC82r0+kMu4T9jmM+eI754Dnmo29RV5gclIgYB+6+++67\nXWQjSVKBe+65h/Xr10N1Zed7mnhNZx4kSVIRw4MkSSpieJAkSUUMD5IkqYjhQZIkFTE8SJKkIoYH\nSZJUxPAgSZKKGB4kSVIRw4MkSSpieJAkSUUMD5IkqYjhQZIkFTE8SJKkIoYHSZJUxPAgSZKKGB4k\nSVIRw4MkSSpieJAkSUUMD5IkqYjhQZIkFTE8SJKkIoYHSZJUxPAgSZKKGB4kSVIRw4MkSSpieJAk\nSUUMD5IkqYjhQZIkFTE8SJKkIiuHXYAkSaNgZmaG2dnZYZdRbHp6uvHXNDxIkrQPMzMzrFs3xs6d\nTw27lCXB8CBJ0j7Mzs7WweEqYGzY5RS6Cbio0Vc0PEiStGBjwPiwiyjU/GELF0xKkqQihgdJklTE\n8CBJkooYHiRJUhHDgyRJKlIcHiLixIi4ISK+FxG7IuL1e+jzvoh4OCKeiojPR8QxPfsPi4hNEfGD\niNgRER+PiEMW80EkSdJg9DPzcAjwdeAcIHt3RsQFwLnAW4DjgSeBzRFxYFe3q6nOd9kIvA54NXBl\nH7VIkqQBK77OQ2beDNwMEBGxhy7nAZdk5o11nzcB24A3ANdGxBhwMrA+M7fUfd4O/ENEvDMzt/b1\nSSRJ0kA0uuYhIo4G1gK3zLVl5uPAXcCGuulVwI654FD7AtUsxglN1iNJkprX9ILJtVQhYFtP+7Z6\n31yfR7t3ZuazwPauPpIkaYka1OWpgz2sjyjtMzk5yZo1a3Zr63Q6dDqdxVUnSdKycE29dXuo8Xdp\nOjxspQoBR7L77MMRwJauPkd0PykingccxnNnLHYzNTXF+PioXVNckqRB6dRbt03ARKPv0uhhi8x8\ngCocbJxri4jVVGsZbq+b7gAOjYhXdD11I1XouKvJeiRJUvOKZx7q6zEcQ/XDHuAlEXEssD0zvwtc\nDrwnIr4NPAhcQjVncj1AZt4XEZuBj0XEW4EDgQ8D13imhSRJS18/hy1eCfwT1fqEBD5Yt38SOCsz\nL42IVVTXbTgU+DJwSmY+3fUapwMfoTrLYhdwHdUpnpIkaYnr5zoPt7KPwx2ZeTFw8V72P0bTB2Ak\nSdJAeG8LSZJUxPAgSZKKGB4kSVIRw4MkSSpieJAkSUUMD5IkqYjhQZIkFTE8SJKkIoYHSZJUxPAg\nSZKKGB4kSVIRw4MkSSpieJAkSUUMD5IkqYjhQZIkFTE8SJKkIoYHSZJUxPAgSZKKGB4kSVIRw4Mk\nSSpieJAkSUUMD5IkqYjhQZIkFTE8SJKkIoYHSZJUxPAgSZKKGB4kSVIRw4MkSSpieJAkSUUMD5Ik\nqYjhQZIkFTE8SJKkIoYHSZJUxPAgSZKKGB4kSVIRw4MkSSpieJAkSUUMD5IkqYjhQZIkFTE8SJKk\nIo2Hh4hYERGXRMR3IuKpiPh2RLxnD/3eFxEP130+HxHHNF2LJElqXhszD+8C3gK8DXgZcD5wfkSc\nO9chIi4Azq37HQ88CWyOiANbqEeSJDVoZQuvuQG4PjNvrh/PRMTpVCFhznnAJZl5I0BEvAnYBrwB\nuLaFmiRJUkPamHm4HdgYEf8JICKOBX4RuKl+fDSwFrhl7gmZ+ThwF1XwkCRJS1gbMw/vB1YD90XE\ns1QB5d2Z+Zl6/1ogqWYaum2r90mSpCWsjfDwRuB04DTgW8BxwJ9HxMOZ+em9PC+oQoUkSVrC2ggP\nlwJ/mpl/Wz/+ZkS8GLgQ+DSwlSooHMnusw9HAFv29sKTk5OsWbNmt7ZOp0On02mkcEmSRts19dbt\nocbfpY3wsIrnziDsol5fkZkPRMRWYCPwDYCIWA2cAFyxtxeemppifHy88YIlSVoeOvXWbRMw0ei7\ntBEebgTeHRHfBb4JjAOTwMe7+lwOvCcivg08CFxCFY2ub6EeSZLUoDbCw7lUYeAKqkMRDwN/UbcB\nkJmXRsQq4ErgUODLwCmZ+XQL9UiSpAY1Hh4y80ngHfW2t34XAxc3/f6SJKld3ttCkiQVMTxIkqQi\nhgdJklTE8CBJkooYHiRJUhHDgyRJKmJ4kCRJRQwPkiSpiOFBkiQVMTxIkqQihgdJklTE8CBJkooY\nHiRJUhHDgyRJKmJ4kCRJRQwPkiSpiOFBkiQVMTxIkqQihgdJklTE8CBJkooYHiRJUhHDgyRJKmJ4\nkCRJRQwPkiSpiOFBkiQVMTxIkqQihgdJklTE8CBJkooYHiRJUhHDgyRJKmJ4kCRJRQwPkiSpiOFB\nkiQVMTxIkqQihgdJklTE8CBJkooYHiRJUhHDgyRJKmJ4kCRJRQwPkiSpiOFBkiQVaSU8RMQLIuLT\nETEbEU9FxL0RMd7T530R8XC9//MRcUwbtUiSpGY1Hh4i4lDgNuDHwMnAGPCHwI6uPhcA5wJvAY4H\nngQ2R8SBTdcjSZKatbKF13wXMJOZZ3e1/b+ePucBl2TmjQAR8SZgG/AG4NoWapIkSQ1p47DFbwJf\ni4hrI2JbRNwTEf8WJCLiaGAtcMtcW2Y+DtwFbGihHkmS1KA2wsNLgLcC9wO/Bvwl8KGImKj3rwWS\naqah27Z6nyRJWsLaOGyxAvhqZl5UP743Iv4zVaC4ai/PC6pQMa/JyUnWrFmzW1un06HT6SyiXEmS\nlotr6q3bQ42/Sxvh4RFguqdtGvjt+vdbqYLCkew++3AEsGVvLzw1NcX4+PjeukiStB/r1Fu3TcDE\nHvr2r43DFrcB63ra1lEvmszMB6gCxMa5nRGxGjgBuL2FeiRJUoPamHmYAm6LiAupzpw4ATgbeHNX\nn8uB90TEt4EHgUuo5lWub6EeSZLUoMbDQ2Z+LSJOBd4PXAQ8AJyXmZ/p6nNpRKwCrgQOBb4MnJKZ\nTzddjyRJalYbMw9k5k3ATfvoczFwcRvvL0mS2uO9LSRJUhHDgyRJKmJ4kCRJRQwPkiSpiOFBkiQV\nMTxIkqQihgdJklTE8CBJkooYHiRJUhHDgyRJKmJ4kCRJRQwPkiSpiOFBkiQVMTxIkqQihgdJklTE\n8CBJkooYHiRJUhHDgyRJKmJ4kCRJRQwPkiSpiOFBkiQVMTxIkqQihgdJklTE8CBJkooYHiRJUhHD\ngyRJKmJ4kCRJRQwPkiSpiOFBkiQVMTxIkqQihgdJklTE8CBJkooYHiRJUhHDgyRJKmJ4kCRJRQwP\nkiSpiOFBkiQVMTxIkqQihgdJklTE8CBJkoqsHHYBkqT9y8zMDLOzs8Muo8j09PSwS1hSWg8PEXEh\n8CfA5Zn5jrrtIOAy4I3AQcBm4G2Z+Wjb9UiShmdmZoZ168bYufOpYZeiRWg1PETELwBvBu7t2XU5\ncArwO8DjwBXAZ4ET26xHkjRcs7OzdXC4ChgbdjkFbgIuGnYRS0Zr4SEink/17TibrhGPiNXAWcBp\nmXlr3XYmMB0Rx2fmV9uqSZK0VIwB48MuooCHLbq1uWDyCuDGzPxiT/srqULLLXMNmXk/MANsaLEe\nSZLUgFZmHiLiNOA4qqDQ60jg6cx8vKd9G7C2jXokaT6juHgP4PDDD+eoo44adhnaTzUeHiLihVRr\nGl6bmT8peSqQe+swOTnJmjVrdmvrdDp0Op3iOiVplBfvHXzwKu6/f9oAoR7X1Fu3hxp/lzZmHtYD\nPw3cHRFRtz0PeHVEnAv8OnBQRKzumX04gmr2YV5TU1OMj4/SMTJJS9noLt6bZufOCWZnZw0P6tGp\nt26bgIlG36WN8PAF4Od72v6GarXJ+4HvAT8BNgJ/BxARLwWOAu5ooR5J2odRW7wnDVfj4SEznwS+\n1d0WEU8C38/M6frxXwOXRcQO4IfAh4DbPNNCkqSlb1BXmOxdyzAJPAtcR3WRqJuBcwZUi5a5UV0A\nBy6CkzQaBhIeMvM1PY9/DLy93qTGjPICOHARnKTR4L0ttKyM7gI4cBGcpFFheNAy5QI4SWqLt+SW\nJElFnHlomYv3JLVlFG8TPYo167kMDy1y8Z6kdjwCrGBiotkL/0gLZXhokYv3JLXjMWAXo/lvi7e2\nXg4MDwMxuov3Rm2KcdTqlRZnFP9t8e/ocmB40DycFpUk7ZnhQfMY1WlRp0QlqW2GB+3DqE2LOiUq\nSW3zOg+SJKmI4UGSJBUxPEiSpCKGB0mSVGSkFkyedNJGVq4cnZKfeeaZYZcgSVLjRucnMfDEE2cA\nPzvsMgrcCdww7CIkSWrUSIUHOIvROm3wLzA8SJKWG9c8SJKkIoYHSZJUxPAgSZKKGB4kSVIRw4Mk\nSSpieJAkSUUMD5IkqYjhQZIkFTE8SJKkIoYHSZJUxPAgSZKKGB4kSVIRw4MkSSpieJAkSUUMD5Ik\nqYjhQZIkFTE8SJKkIoYHSZJUxPAgSZKKGB4kSVKRlcMuQNLupqenh11CscMPP5yjjjpq2GVIGhDD\ng7RkPAKsYGJiYtiFFDv44FXcf/+0AULaTxgepCXjMWAXcBUwNuRaSkyzc+cEs7OzhgdpP9F4eIiI\nC4FTgZcBPwJuBy7IzH/u6nMQcBnwRuAgYDPwtsx8tOl6pNEzBowPuwhJmlcbCyZPBD4MnAD8KnAA\n8I8R8R+6+lwOvA74HeDVwAuAz7ZQiyRJaljjMw+Z+RvdjyPifwCPAuuBr0TEauAs4LTMvLXucyYw\nHRHHZ+ZXm65JkiQ1ZxCnah4KJLC9fryeKrTcMtchM+8HZoANA6hHkiQtQqvhISKC6hDFVzLzW3Xz\nWuDpzHy8p/u2ep8kSVrC2j7b4qPAy4FfWkDfoJqhkCRJS1hr4SEiPgL8BnBiZj7ctWsrcGBErO6Z\nfTiCavZhLyaBNT1tnXqTJGl/d029dXuo8XdpJTzUweG3gJMyc6Zn993AM8BG4O/q/i8FjgLu2Psr\nT+EpbJIkzWdP/6HeBDR78bk2rvPwUarKXw88GRFH1rt+kJk7M/PxiPhr4LKI2AH8EPgQcJtnWkiS\ntPS1MfPw+1RrF/53T/uZwKfq308CzwLXUV0k6mbgnBZqkSRJDWvjOg/7PIMjM38MvL3eJEnSCPGW\n3JIkqYjhQZIkFfGumpIaMT09PewSio1izdJSYHiQtEiPACuYmGj2VDBJS5fhQdIiPQbsAq6iup34\nKLkJuGjYRUgjx/AgqSFjjN5F3DxsIfXDBZOSJKmI4UGSJBUxPEiSpCKGB0mSVMTwIEmSihgeJElS\nEcODJEkqYniQJElFDA+SJKmI4UGSJBUxPEiSpCKGB0mSVMTwIEmSihgeJElSEcODJEkqYniQJElF\nDA+SJKmI4UGSJBUxPEiSpCKGB0mSVMTwIEmSihgeJElSEcODJEkqYniQJElFDA+SJKmI4UGSJBUx\nPEiSpCKGB0mSVMTwIEmSihgeJElSEcODJEkqYniQJElFDA+SJKmI4UGSJBUxPEiSpCJDCw8RcU5E\nPBARP4qIOyPiF4ZViyRJWrihhIeIeCPwQeCPgFcA9wKbI+LwYdQjSZIWblgzD5PAlZn5qcy8D/h9\n4CngrCHVI0mSFmjg4SEiDgDWA7fMtWVmAl8ANgy6HkmSVGblEN7zcOB5wLae9m3Aunmec3D1y+eA\nr7VVVwu+Uv96EzA9zEL6cFv966jVPqp1w+jWPqp1w+jWPqp1w+jWPqp1w7/XPvezdPGi+k//4ETE\nzwDfAzZk5l1d7ZcCv5SZ/3UPzzkd2DS4KiVJWnbOyMyrm3ihYcw8zALPAkf2tB/Bc2cj5mwGzgAe\nBHa2VpkkScvPwcCLqX6WNmLgMw8AEXEncFdmnlc/DmAG+FBm/tnAC5IkSQs2jJkHgMuAT0bE3cBX\nqc6+WAX8zZDqkSRJCzSU8JCZ19bXdHgf1eGLrwMnZ+b/H0Y9kiRp4YZy2EKSJI0u720hSZKKGB4k\nSVKRJRMeSm+UFRH/PSKm6/73RsQpg6p1uSgZ84h4eURcV/ffFRF/MMhal4vCMT87Ir4UEdvr7fPe\nQK5c4ZifGhH/JyJ2RMQTEbElIiYGWe9y0O+NDyPitPrfl8+1XeNyU/g9/716nJ+tf90VEU+VvN+S\nCA+lN8qKiA3A1cDHgOOAvwf+PiJePpiKR18fNydbBfxf4ALgkYEUucz0MeYnUX3Pfxl4FfBd4B/r\nC61pAfoY8+8Df0w13j8PfAL4RES8dgDlLgv93vgwIl4E/BnwpdaLXGb6HPMfAGu7thcVvWlmDn0D\n7gT+vOtxAA8B58/T/zPADT1tdwAfHfZnGZWtdMx7nvsA8AfD/gyjti1mzOv+K+q/8BPD/iyjsi12\nzOvn3A28d9ifZVS2fsa8/m5/GTiTKrB9btifY5S2Pn6G/h6wfTHvOfSZhz5vlLWh3t9t8176q4s3\nJxu8hsb8EOAAYHvjBS5DTYx5RGwEXgrc2kaNy80ixvyPgEcz8xPtVrj8LGLMnx8RD0bETEQUz9wP\nPTyw9xtlrZ3nOWsL+2t3/Yy5FqeJMf8A1X1heoOz9qyvMY+I1RHxw4h4GrgReHtmfrG9MpeV4jGP\niF+kmnE4u93Slq1+vuf3A2cBr6e69cMK4PaI+NmFvumwrjC5EAGUXISitL+eyzEcvAWNeUS8C/hd\n4KTMfLr1qpa3fY35D4FjgecDG4GpiPhOZnosvn97HPOIeD7waeDNmblj4FUtb/N+zzPzTqpDHVXH\niDuobhX6P6lmgfZpKYSHfm6UtbWwv3bXz5hrcfoe84h4J3A+sDEzv9lOectSX2NeT/l+p374jXo6\n90JcyLcQpWP+c1QL9W6s73EE9Yx4PfOzLjMfaKnW5WLR/55n5jMRsQU4ZqFvOvTDFpn5E6oFSRvn\n2uov0Ubg9nmedkd3/9pr63btQ59jrkXod8wj4n8B76a6fPuWtutcThr8nq8ADmq2uuWpjzGfpjqr\n5Tiq2Z5jgRuAL9a//27LJY+8Jr7nEbEC+C+UnEk37FWi9crP3wV+BLwJeBlwJdUpUz9d7/8U8Kdd\n/TcATwPvANYBF1Pdqvvlw/4so7L1MeYHUP1lPo7quPsH6sc/N+zPMipbH2N+fv29PpXqfxVz2yHD\n/iyjsvUx5u8CfhU4uu7/h8CPgTOH/VlGZSsd8z0837MtWh5z4CKq/3AfTXVq5zXAk8DLFvqeS+Gw\nBbnvG2W9EHimq/8dEdEB/qTe/gX4rcz81mArH12lYw68ANjCvx9De2e93Qq8ZiBFj7g+xvytVKHt\nup6Xem/9GtqHPsb8EOCKuv1HwH3AGZnZ+2egefQx5lqkPsb8MOCvqBZU7qCaudiQmfct9D29MZYk\nSSoy9DUPkiRptBgeJElSEcODJEkqYniQJElFDA+SJKmI4UGSJBUxPEiSpCKGB0mSVMTwIEmSihge\nJElSEcODJEkq8q8e53vmHB6g0wAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x116a5bf28>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"p = rf.predict(Xtest)\n",
"plt.hist((rf.predict_proba(Xtest).max(axis=1) - 0.5)[p != ytest.flatten()])"
]
},
{
"cell_type": "code",
"execution_count": 157,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0.11167977, 0.02713162, 0.05992564, 0.41686455, 0.18582091,\n",
" 0.06844707, 0.05183866, 0.07829178])"
]
},
"execution_count": 157,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rf.feature_importances_"
]
},
{
"cell_type": "code",
"execution_count": 158,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"41"
]
},
"execution_count": 158,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.to_datetime('2016-10-12 22:00').weekofyear"
]
},
{
"cell_type": "code",
"execution_count": 159,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([1], dtype=int32)"
]
},
"execution_count": 159,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#['hour', 'month', 'openlastday', 'openlasthour', 'openlasthour2', 'openlastweek', 'weekday', 'woy']\n",
"from datetime import datetime\n",
"rf.predict(np.array([[2, 10, 1, 1, 1, 1, 2, pd.to_datetime('2016-10-12 22:00').weekofyear]]))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"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.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment