plot_example.ipynb 51.9 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Load libraries"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-25T22:13:39.152526Z",
     "start_time": "2018-10-25T22:13:37.503680Z"
    }
   },
   "outputs": [],
   "source": [
    "import warnings\n",
    "warnings.filterwarnings('ignore') #suppress lgb userwarnings\n",
    "\n",
    "import lightgbm as lgb\n",
    "import pandas as pd\n",
    "import graphviz\n",
    "\n",
    "if lgb.compat.MATPLOTLIB_INSTALLED:\n",
    "    import matplotlib.pyplot as plt\n",
    "    %matplotlib inline\n",
    "else:\n",
    "    raise ImportError('You need to install matplotlib to run this notebook.')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-25T22:13:39.158186Z",
     "start_time": "2018-10-25T22:13:39.154477Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "lightgbm version: 2.2.1\n",
      "pandas version: 0.23.3\n"
     ]
    }
   ],
   "source": [
    "print('lightgbm version: ' + lgb.__version__)\n",
    "print('pandas version: ' + pd.__version__)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Load data..."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-25T22:13:39.238695Z",
     "start_time": "2018-10-25T22:13:39.160165Z"
    }
   },
   "outputs": [],
   "source": [
    "df_train = pd.read_csv('../../regression/regression.train', header=None, sep='\\t')\n",
    "df_test = pd.read_csv('../../regression/regression.test', header=None, sep='\\t')\n",
    "\n",
    "y_train = df_train[0].values\n",
    "y_test = df_test[0].values\n",
    "X_train = df_train.drop(0, axis=1).values\n",
    "X_test = df_test.drop(0, axis=1).values\n",
    "\n",
    "# create dataset for lightgbm\n",
    "lgb_train = lgb.Dataset(X_train, y_train)\n",
    "lgb_test = lgb.Dataset(X_test, y_test, reference=lgb_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Configuration"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-25T22:13:39.243104Z",
     "start_time": "2018-10-25T22:13:39.240578Z"
    }
   },
   "outputs": [],
   "source": [
    "params = {\n",
    "    'num_leaves': 5,\n",
    "    'metric': ('l1', 'l2'),\n",
    "    'verbose': 0\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Training"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-25T22:13:39.336630Z",
     "start_time": "2018-10-25T22:13:39.246006Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[10]\ttraining's l2: 0.217995\ttraining's l1: 0.457448\tvalid_1's l2: 0.21641\tvalid_1's l1: 0.456464\n",
      "[20]\ttraining's l2: 0.205099\ttraining's l1: 0.436869\tvalid_1's l2: 0.201616\tvalid_1's l1: 0.434057\n",
      "[30]\ttraining's l2: 0.197421\ttraining's l1: 0.421302\tvalid_1's l2: 0.192514\tvalid_1's l1: 0.417019\n",
      "[40]\ttraining's l2: 0.192856\ttraining's l1: 0.411107\tvalid_1's l2: 0.187258\tvalid_1's l1: 0.406303\n",
      "[50]\ttraining's l2: 0.189593\ttraining's l1: 0.403695\tvalid_1's l2: 0.183688\tvalid_1's l1: 0.398997\n",
      "[60]\ttraining's l2: 0.187043\ttraining's l1: 0.398704\tvalid_1's l2: 0.181009\tvalid_1's l1: 0.393977\n",
      "[70]\ttraining's l2: 0.184982\ttraining's l1: 0.394876\tvalid_1's l2: 0.178803\tvalid_1's l1: 0.389805\n",
      "[80]\ttraining's l2: 0.1828\ttraining's l1: 0.391147\tvalid_1's l2: 0.176799\tvalid_1's l1: 0.386476\n",
      "[90]\ttraining's l2: 0.180817\ttraining's l1: 0.388101\tvalid_1's l2: 0.175775\tvalid_1's l1: 0.384404\n",
      "[100]\ttraining's l2: 0.179171\ttraining's l1: 0.385174\tvalid_1's l2: 0.175321\tvalid_1's l1: 0.382929\n"
     ]
    }
   ],
   "source": [
    "# train\n",
    "evals_result = {}  # to record eval results for plotting\n",
    "gbm = lgb.train(params,\n",
    "                lgb_train,\n",
    "                num_boost_round=100,\n",
    "                valid_sets=[lgb_train, lgb_test],\n",
    "                feature_name=['f' + str(i + 1) for i in range(28)],\n",
    "                categorical_feature=[21],\n",
    "                evals_result=evals_result,\n",
    "                verbose_eval=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-25T22:13:39.809203Z",
     "start_time": "2018-10-25T22:13:39.338985Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZEAAAEWCAYAAACnlKo3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xl8FdX5+PHPk5t9XyErhCWEfd9UlICgYCtYRUVrq9atVX9aWmu1/dZda611q2hFS91FilZRwQUkoggIyL7JDmFPICEhGwnP74+5kBCTACE3N8vzfr3uK5mZMzPPPdzchzlzzhlRVYwxxpi68PF2AMYYY5ouSyLGGGPqzJKIMcaYOrMkYowxps4siRhjjKkzSyLGGGPqzJKIaVZE5E8i8ko9HOcBEXnT23F4iojMFJFr67usaXnExokYTxORrUAikKiq2ZXWLwN6Ae1UdetJjpEBvKmqyZ6L9ITzPQB0VNVrGuJ8p0NEFEhT1Y3ejsUYuxIxDWULcNWxBRHpAQTV5wlExLc+j1dX3o7D2+c3LYslEdNQ3gB+WWn5WuD1ygVEJEBEnhSR7SKyV0T+JSJBIhICzAQSRaTA/Up0NzlNE5E3ReQQcF3VZigRGSIi34pIrojsEJHrqgtORNqJyFciki8iXwCxlbZliEhWlfJbRWSE+/da4xCRVBFREbnW/d6yReTPlY4VJCKvichBEVkrIndXPV+lsnPdvy5318OVx+ITkT+KyB7gPyISJSIfi8h+93E/FpHkSsfJFJEb3b9fJyLfuOv+oIhsEZHRdSzbTkTmuutxlohMPJNmQdP4WRIxDWUBEC4iXUTEBVwJVP1y+RvQCegNdASSgPtU9TAwGtilqqHu1y73PmOBaUAk8Fblg4lIG5zk808gzn3cZTXE9zawBCd5PIyT5E5HjXFUMgRIB84H7hORLu719wOpQHtgJFBjE5qqnuf+tZe7Ht51L8cD0UBb4Gacv+3/uJfbAEXA87XEPwhYj/P+nwD+LSJSh7JvA98BMcADwC9qOadpBiyJmIZ07GpkJLAO2Hlsg/tL6CZggqoeUNV84DFg/EmOOV9VP1DVo6paVGXbz4FZqvqOqh5R1RxV/VEScSebAcBfVLVEVecCH53me6stjmMeVNUiVV0OLMe5HwRwBfCYqh5U1SzgudM8N8BR4H53/EXu9/qeqha66/JRYGgt+29T1ZdVtRx4DUgAWp9O2Ur1eJ+qlqrqN8D0OrwX04RY26lpSG8Ac4F2VGnKwrlSCAaWVPoPsACukxxzRy3bUoBNpxBXInDQfcVzzDb3/qeqtjiO2VPp90IgtNL5K+9/Kseqar+qFh9bEJFg4GlgFBDlXh0mIi73l3+NsalqofvfILSacrWVjQUOqGphlfdyOvVomhi7EjENRlW34dxgvwh4v8rmbJwml26qGul+RajqsS+ymroR1ta9cAfQ4RRC2w1Eue+9HNOm0u+HcRIcAO7muLjTiONUzl+511ldvnSrnv/3OE1ng1Q1HDjWDFZTE1V92A1EuxPYMZZAmjlLIqah3QAMr/K/flT1KPAy8LSItAIQkSQRudBdZC8QIyIRp3Gut4ARInKFiPiKSIyI9K5ayJ3cFgMPioi/iAwBLq5U5AcgUER+IiJ+wP8BAacRx8lMBe513wxPAm4/Sfm9OPdPahOGk5RzRSQa576LR1Wqxwfc9XgWJ9ajaYYsiZgGpaqbVHVxDZv/CGwEFrh7Oc3C+d80qroOeAfY7O5plXgK59qOc9Xze+AAzk31XjUUvxrnhvEBnC/c481tqpoH3Aq8gnMf5zBQbe+pOnrIfbwtOO95GlBSS/kHgNfc9XBFDWWewelCnY3TqeHTeou2dj8HzgJygEeAd6n9vZgmzgYbGtPIiMhvgPGqWtuN8CZBRN4F1qmqx6+EjHfYlYgxXiYiCSJyjoj4iEg6zpXT/7wdV12IyAAR6eB+L6Nwuj5/4O24jOdY7yxjvM8feAmn11ouMAV4wasR1V08TqeJGJwmut+o6lLvhmQ8yZqzjDHG1Jk1ZxljjKmzZtOcFRkZqR07dvR2GI3C4cOHCQkJOXnBFsDqooLVRQWriwpLlizJVtWq455OWbNJIq1bt2bx4pp6jrYsmZmZZGRkeDuMRsHqooLVRQWriwoisu1M9rfmLGOMMXVmScQYY0ydWRIxxhhTZ83mnogxpmU6cuQIWVlZFBcXn7ywW0REBGvXrvVgVI1PYGAgycnJ+Pn51etxLYkYY5q0rKwswsLCSE1NpebnaJ0oPz+fsLAwD0fWeKgqOTk5ZGVl0a5du3o9tjVnGWOatOLiYmJiYk45gbREIkJMTMxpXa2dKksixpgmzxLIyXmqjiyJGGOMqTNLIsYYcwZyc3N54YXTny/zoosuIjc3t9Yy9913H7NmzapraA3CkogxxpyBmpJIeXl1j7KvMGPGDCIjI2st89BDDzFixIgzis/TLIkYY8wZuOeee9i0aRO9e/dmwIABDBs2jKuvvpoePXoAcMkll9CvXz+6devGpEmTju+XmppKdnY2W7dupUuXLtx0001069aNCy64gKKiIgCuu+46pk2bdrz8/fffT9++fenRowfr1q0DYP/+/YwcOZK+fftyyy230LZtW7Kzsxvs/VsXX2NMs/HgR6tZs+vQScuVl5fjcrlO6ZhdE8O5/+JuNW5//PHHWbVqFcuWLSMzM5Of/OQnrFq16nhX2smTJxMdHU1RUREDBgzgsssuIyYm5oRjbNiwgXfeeYeXX36ZK664gvfee49rrrnmR+eKjY3l+++/54UXXuDJJ5/klVde4cEHH2T48OHce++9fPrppyckqoZgVyLGGFOPBg4ceMJYjOeee45evXoxePBgduzYwYYNG360T7t27ejduzcA/fr1Y+vWrdUe+9JLL/1RmW+++Ybx48cDMGrUKKKiourx3ZycXYkYY5qN2q4YKvPkYMPKU8xnZmYya9Ys5s+fT3BwMBkZGdWO1QgICDj+u8vlOt6cVVM5l8tFWVkZ4Awk9Ca7EjHGmDMQFhZGfn5+tdvy8vKIiooiODiYdevWsWDBgno//5AhQ5g6dSoAn3/+OQcPHqz3c9TGo0lEREaJyHoR2Sgi91Sz/ToR2S8iy9yvGyttu1ZENrhf13oyTmOMqauYmBjOOeccunfvzh/+8IcTto0aNYqysjJ69uzJX/7yFwYPHlzv57///vv5/PPP6du3LzNnziQhIaFhp3RRVY+8ABewCWgP+APLga5VylwHPF/NvtHAZvfPKPfvUbWdr1OnTmocc+bM8XYIjYbVRYXmWhdr1qw57X0OHTrkgUi8o7i4WI8cOaKqqt9++6326tWrxrLV1RWwWM/gu96T90QGAhtVdTOAiEwBxgJrTmHfC4EvVPWAe98vgFHAOx6K1RhjmqTt27dzxRVXcPToUfz9/Xn55Zcb9PyeTCJJwI5Ky1nAoGrKXSYi5wE/ABNUdUcN+yZV3VFEbgZuBoiLiyMzM7N+Im/iCgoKrC7crC4qNNe6iIiIqPGeRE3Ky8tPe5/GKj4+nrlz556wrqb3VlxcXO+fAU8mkepm+6rajeAj4B1VLRGRXwOvAcNPcV9UdRIwCSA9PV3tmckOe350BauLCs21LtauXXva9wBa2lTwxwQGBtKnT596PaYnb6xnASmVlpOBXZULqGqOqpa4F18G+p3qvsYYY7zPk0lkEZAmIu1ExB8YD0yvXEBEEiotjgGOPWrsM+ACEYkSkSjgAvc6Y4wxjYjHmrNUtUxEbsf58ncBk1V1tYg8hNMbYDpwh4iMAcqAAzi9tVDVAyLyME4iAnjo2E12Y4wxjYdHR6yr6gxgRpV191X6/V7g3hr2nQxM9mR8xhhjzoyNWDfGmAYUGhoKwK5duxg3bly1ZTIyMli8eHGNx/jzn/9MSkrK8WN5kyURY4zxgsTExOPTvJ+uiy++mO+++66eI6obm4DRGNN8zLwH9qw8abGg8jJwneLXX3wPGP14jZv/+Mc/0rZtW2699VYAHnjgAUSEuXPncvDgQY4cOcIjjzzC2LFjT9hv69at/PSnP2XVqlUUFRVx/fXXs2bNGrp06VLjBIzHeGL6lLqyJGKMMWdg/Pjx/Pa3vz2eRKZOncqnn37KhAkTCA8PJzs7m8GDBzNmzBhEqhsCBy+++CLBwcGsWLGCFStW0Ldv34Z8C2ek2SSRgiPenQ7ZGNMI1HLFUFlRPQ427NOnD/v27WPXrl3s37+fqKgoEhISmDBhAnPnzsXHx4edO3eyd+9e4uPjqz3G3LlzueOOOwDo2bMnPXv2rJfYGkKzSSI+RQdYvTOXbkm1P7PYGGPq27hx45g2bRp79uxh/PjxvPXWW+zfv58lS5bg5+dHampqtc8Rqaymq5TGrtncWG8tB5nz+YfeDsMY0wKNHz+eKVOmMG3aNMaNG0deXh6tWrXCz8+POXPmsG3btlr3P++883jrrbcAWLVqFStWrGiIsOtFs0kiR3HRZcur7M6r/YaUMcbUt27dupGfn09SUhIJCQn8/Oc/Z/HixfTv35+33nqLzp0717r/b37zGwoKCujZsydPPPEEAwcOrLX83XffTXJyMoWFhSQnJ/PAAw/U47s5Pc2mOavEL4Lzfb7npVmZ3HLZaG+HY4xpYVaurOgVFhsby/z586stV1BQAEBqaiqrVq0CICgoiClTppzyuZ544gmeeOKJM4i2/jSbK5HygAhKxZ+YFS+TX3zE2+EYY0yL0GySiIqLQ+mXczFzmf7NMm+HY4wxZ2zQoEH07t37hFflK57GoNk0ZwHEjpjA0XVvUzJ/EkeG9cPP1WxypDGmFqraZHs31WbhwoX1diznSbj1r3l9y8amkZ04nEvKZvDZ0s3ejsYY0wACAwPJycnx2Jdkc6Cq5OTkEBgYWO/HblZXIgCxF9yFz6uj2Tb7ZbTf483yfyfGmArJyclkZWWxf//+U96nuLjYI1+ojVlgYCDJycn1ftxml0R82p5FdlQvxuS8x9x1dzK0S6K3QzLGeJCfnx/t2rU7rX0yMzPr/TGxLVXzas4CECFi5N2k+OxnxWevejsaY4xp1ppfEgH8Ol/EwZD2jDjwNku32QMRjTHGU5plEsHHh+Bhv6eLzw6+mfmOt6Mxxphmq3kmESCgz5Uc8m/NwF2vs3FfvrfDMcaYZqnZJhFcfriG3MEgn3XMnGETMxpjjCd4NImIyCgRWS8iG0XknlrKjRMRFZH+7mU/EXlNRFaKyFoRubcu5w8ZfD2FvhH03PwSa3bm1fVtGGOMqYHHkoiIuICJwGigK3CViHStplwYcAdQeWjm5UCAqvYA+gG3iEjqaQfhH4IM+R1DfVYw473JNhjJGGPqmSevRAYCG1V1s6qWAlOAsdWUexh4Aqj8xBYFQkTEFwgCSoFDdQki6NzbOBjagfE5z/Plytrn9DfGGHN6PDnYMAnYUWk5CxhUuYCI9AFSVPVjEbmr0qZpOAlnNxAMTFDVH/XVFZGbgZsB4uLiyMzMrDaQsPbX02/F//H5+w8wK/tafH2a9yj2goKCGuuipbG6qGB1UcHqov54MolU9019vD1JRHyAp4Hrqik3ECgHEoEo4GsRmaWqJ0yIpaqTgEkA6enpmpGRUUMoGezN+46fb/2ID49cyxUX1lSuecjMzKTmumhZrC4qWF1UsLqoP55szsoCUiotJwO7Ki2HAd2BTBHZCgwGprtvrl8NfKqqR1R1HzAP6H8mwbQe9yTlPv4kzr+ffYfs6YfGGFMfPJlEFgFpItJORPyB8cD0YxtVNU9VY1U1VVVTgQXAGFVdDGwHhosjBCfBrDujaMJaU3jOPQxhOZ+/8Te7yW6MMfXAY0lEVcuA24HPgLXAVFVdLSIPiciYk+w+EQgFVuEko/+o6hk/uT52+P9jR9RgLt/3PHO/nnOmhzPGmBbPo7P4quoMYEaVdffVUDaj0u8FON1865ePDwnXv07eM2eR+uWt5HSfR0x0TL2fxhhjWormO2K9Br7hrSm8+CWSdQ+bJ98I1qxljDF11uKSCEBKn5Esan8rAwq+ZMUnL3o7HGOMabJaZBIB6P/zh1jj6kLy4scpOnTQ2+EYY0yT1GKTiK+vL0dH/41IPcTqKX/ydjjGGNMktdgkAtC9/1AWRI6m18532bNpubfDMcaYJqdFJxGA9lf+jWL8yXnvLrvJbowxp6nFJ5H4xDYsa38L3Qq/Y+3c/3o7HGOMaVJafBIBGHDlPWyTJMIz/0JpcaG3wzHGmCbDkggQGBjEgfMeJkn38P07D3o7HGOMaTIsibj1GXYZ34cOpffWf7Nt0xpvh2OMMU2CJZFK2l79LEfFh31TJ3D0qN1kN8aYk7EkUklMYjs2dL6NASUL+PqTN70djjHGNHqWRKroOe4esnzb0GHJQ+zcl+3tcIwxplGzJFKF+AbgO+ZpEnQ/W175JcWlZd4OyRhjGi1LItWI7zmCTb3uZkjpPDJfvtseYGWMMTWwJFKDTj+7lzVxoxm1/998Nf1Vb4djjDGNkiWRmojQ+cbJbPZPp//397B62QJvR2SMMY2OJZFa+AQEE3vDNEokiNAPf0Vu7gFvh2SMMY2KJZGTCG/dhtyLXiD56C7WvXITevSot0MyxphGw6NJRERGich6EdkoIvfUUm6ciKiI9K+0rqeIzBeR1SKyUkQCPRlrbToMvIhl7W9hcMEs5k171lthGGNMo+OxJCIiLmAiMBroClwlIl2rKRcG3AEsrLTOF3gT+LWqdgMygCOeivVU9L3mUdYG9qHf6sfYsPI7b4ZijDGNhievRAYCG1V1s6qWAlOAsdWUexh4AiiutO4CYIWqLgdQ1RxVLfdgrCclLl/ir3+DQgnG9f4N5OXbbL/GGOPrwWMnATsqLWcBgyoXEJE+QIqqfiwid1Xa1AlQEfkMiAOmqOoTVU8gIjcDNwPExcWRmZlZv++gGiWpv+HCrX9l8nN3kXr25fiIePycp6ugoKBB6qIpsLqoYHVRweqi/ngyiVT37Xp81J6I+ABPA9dVU84XGAIMAAqB2SKyRFVnn3Aw1UnAJID09HTNyMiol8Brl0HWC/MZv3cak3Ov4PafNcQ5T09mZiYNUxeNn9VFBauLClYX9ceTzVlZQEql5WRgV6XlMKA7kCkiW4HBwHT3zfUs4CtVzVbVQmAG0NeDsZ6W5Kuew9cHOnz/CB8u2+ntcIwxxms8mUQWAWki0k5E/IHxwPRjG1U1T1VjVTVVVVOBBcAYVV0MfAb0FJFg9032oUDjechHVFt8Mu5mtGsRH7/3Gqt25nk7ImOM8QqPJRFVLQNux0kIa4GpqrpaRB4SkTEn2fcg8BROIloGfK+qn3gq1rrwPecOyqLTeMD1Kne8/i05BSXeDskYYxqcJ++JoKozcJqiKq+7r4ayGVWW38Tp5ts4+frje/FTJL12MbcVvcjtb0Xyxo2D8HXZ+E1jTMth33hnot15cN7dXObzFW22v8djM9Z5OyJjjGlQlkTOVMY90GE4j/q/xnffzuZ/S7O8HZExxjQYSyJnyscFl76CKyyOycH/5PH357NuzyFvR2WMMQ3Ckkh9CIlBrniDOA7ymO+/+c2b33Oo2KuztBhjTIOwJFJfkvshGfdyvs6n68E5/OG/y+2JiMaYZs+SSH06+w5I6M2Twa+zcPVGXpq72dsRGWOMR1kSqU8uXxg7kcDyQ0yKm8bjM9cx+Zst3o7KGGM8xpJIfYvvjpx7FwPzv+Cu1M089PEanp21wZq2jDHNkiURTzj399CqG7flPsmf03bw9KwfePSTtZZIjDHNjiURT/D1h/FvIhHJ3LTjj7zRZgavfrOBx2faYERjTPNiScRTotvDjbOg33Wcu+9NZsU8ydS5y/jXV5u8HZkxxtQbSyKe5BcEFz8Ll75C2+L1/C/iGf45cynvLtru7ciMMaZeWBJpCD0vR654jbalG/hvxHPc//4Sew6JMaZZsCTSUNJHI5e8SNeS5bwe/hK/m7KEf3y+nqNH7Wa7Mabp8uhU8KaKXldCcR4DZ/6Bd+PDGfflL1m7+xBPX9mbsEA/b0dnjDGnza5EGtqgmyHjXvrnfsZHnb9gzvr9jJ04j2U7cr0dmTHGnDZLIt4w9I8w4EZ6bH2V2WetpKi0nEtfmMffP1tHSVm5t6MzxphTZknEG0Rg9BPQdSypSx5j9og9XNo3mYlzNjH2+Xn2zHZjTJNhScRbfFxw6cuQei7Bn9zKk74v8vqV7ThwuJSxE+fx1Bc/UFp21NtRGmNMrTyaRERklIisF5GNInJPLeXGiYiKSP8q69uISIGI3OXJOL3GNwB+/l849y5YOY3zPhtN5vBtXNIznudmb2DsxHms2WUPuDLGNF4eSyIi4gImAqOBrsBVItK1mnJhwB3AwmoO8zQw01MxNgp+QXD+X+A386B1d4I/+x3/kKeYfFVnsgtKuGTiPCZ/s8Xm3TLGNEqevBIZCGxU1c2qWgpMAcZWU+5h4AmguPJKEbkE2Ays9mCMjUdcOlz3MVzwKKybwfCvr+KLXyZxXqdYHvp4DTe8tpicghJvR2mMMSfwZBJJAnZUWs5yrztORPoAKar6cZX1IcAfgQc9GF/jIwJn3w6/+B8UZhP55gW8fHYeD47pxjcbsxn97Ncs3nrA21EaY8xxnhxsKNWsO94mIyI+OM1V11VT7kHgaVUtEKnuMMePcTNwM0BcXByZmZlnEG7jEtDzcXqsfIzgt8fTq+d9/N/Abjy/rIQrX5rPVZ39Ob+NLzXVTUFBQbOqizNhdVHB6qKC1UX9EU+1tYvIWcADqnqhe/leAFX9q3s5AtgEFLh3iQcOAGNwkkuKe30kcBS4T1Wfr+l86enpun79eg+8Ey8qPACv/gQOboNf/I+8uL5MeHcZX67bx6V9k3hgTDfCqxnpnpmZSUZGRsPH2whZXVSwuqhgdVFBRJaoav+Tl6xenZuzRGTkSYosAtJEpJ2I+APjgenHNqpqnqrGqmqqqqYCC4AxqrpYVc+ttP4Z4LHaEkizFRwNv/gAwuLhrcuJOLiaV37Zn9+OSON/S3cy5PEvefqLH8grPOLtSI0xLdSZ3BP5d20bVbUMuB34DFgLTFXV1SLykIiMOYPztixhreGXH0JgOLw+Fp/Ns/ntiE58dPsQBreP4dnZGzjnb1/y+vyt3o7UGNMC1XpPRESm17QJiDnZwVV1BjCjyrr7aiibUcP6B052nmYvMsXpufXO1fDmOBj2J7qfexeTftmftbsP8deZ67jvw9UUlZZzy9AO3o7WGNOCnOzG+rnANVTctzhGcLrwmoYSlQo3fgEfT4A5j0LWYrj4WbokJDD52v789t1l/NX9+N1070ZqjGlBTpZEFgCFqvpV1Q0i0szuYjcB/iHws5cgeQB8ei881xsG3IjvkAk8c2VvAP46cx3j0vwYOlRr7L1ljDH1pdZ7Iqo6WlXn1LDtPM+EZGolAgNvgtsXQbdLYcEL8ExPfBdN4pkre/PTnglM23CES1/8lqXbD3o7WmNMM2cTMDZV0e3gZy/CrQsh9Rz49I/4fvMkz43vww3d/ck6WMTPXviWCe8u48DhUm9Ha4xppk52Yz2fSgMEK28CVFXDPRKVOXVxneCqKfDBrTDnUXzKSzk36RwmXH4uL8zZyCtfb2HlzjzeuGEgCRFB3o7WGNPMnKw5K0xVw6t5hVkCaUR8XHDJC9DnFzD373TY9B9CXUe5e1RnXr9hIHvyihn34ny2ZB/2dqTGmGbGmrOaCx8XXPwcDLiJlKwPYeIAWPUeg9tF885Ngyk6Us7l/5rP6l32wCtjTP2xJNKc+PjAT55kec/7wS8Epv0KXjmfHkHZTL3lLPxcwmUvfst/F+84+bGMMeYUWBJphg5G94Vffw2XvAgHtsDrl9AxMJ8Pbz+HPilR/GHaCn43dRmFpWXeDtUY08RZEmmufFzQ+2r4xftQdADevIxWvsW8eeMg7jzfmXvrJ899w5TvtlNUWu7taI0xTZQlkeYusQ9c+SZk/wDvjMdVXsyEkZ1464ZBBPj6cM/7Kxn819k8NmMt+/KLT348Y4ypxJJIS9BhGFw6CbYvgClXQ/Ehzu4Yy8w7z2XqLWcxpGMs//5mC8Of/IpJczdRWnbU2xEbY5oISyItRfdLYcw/YfNXMPlCyN2OiDCwXTQTf96X2b8byuD20Tw2Yx2jnpnLVz/s93bExpgmwJJIS9L3F3DNe5C3E14eDjsWHd+UGhvCK9cO4D/XDwDg2snf2Wh3Y8xJWRJpaToMgxtnOZM5Tr4A3rgUVkyFUmcg4rD0Vsz87bnccX4aH6/YxYinvuLDZTvx1BMwjTFNmyWRliiuE9w0B4b8DrI3wPs3wZOdYP4LoEqAr4vfjezEx//vXFKig7lzyjKuenkB6/Yc8nbkxphGxpJISxUcDef/Be5cDtfNgLbnwGf3OgnFfVWSHh/G+785m0cu6c66Pflc9OzX3P/hKnscrzHmOEsiLZ2PjzML8FVTYPhfYOU0eGUk5GwCwOUjXDO4LZl3ZXDN4La8sWAb5z/1FZ+s2G1NXMYYSyLGzccHzrsLrpkG+btg0jBY98nxzZHB/jw0tjvTbx9CfEQAt739PTe9vphduUVeDNoY422WRMyJOo6Am79ynlcy5Wr44n4or5gepXtSBB/ceg5/vqgL32zMJuPvmfzpfyvZlmMzBBvTEnk0iYjIKBFZLyIbReSeWsqNExEVkf7u5ZEiskREVrp/DvdknKaKqLbwq8+g33Uw7xl4fSwc3Hp8s6/Lh5vOa88XE4Yyrn8y0xZnMezJTO6cstSmmzemhfFYEhERFzARGA10Ba4Ska7VlAsD7gAWVlqdDVysqj2Aa4E3PBWnqYFfIFz8rDOJ466l8MJZ8O3zJ1yVpEQH89jPevD1H4dx47nt+Xz1XkY+9RX3fbiK/fklXgzeGNNQPHklMhDYqKqbVbUUmAKMrabcw8ATwPGJm1R1qaruci+uBgJFJMCDsZqa9L4ablsI7c6Dz/8Mr5wPu1ecUKR1eCB/uqgLX92dwZUDUnhr4XYy/j6Hf3y+ntxCG6xoTHMmnuphIyLjgFGqeqN7+RfAIFW9vVKZPsD/qeplIpIJ3KWqi6s5zq9VdUQ157iZLJ3qAAAfk0lEQVQZuBkgLi6u39SpUz3yXpqagoICQkND6/egqsTt/5a0DZPwO3KIHSlj2Jp6FUddgT8quufwUd7bUMqiPeUEumBEWz8uTPUjzF/qN6ZT4JG6aKKsLipYXVQYNmzYElXtX9f9a33G+hmq7hvjeMYSER/gaeC6Gg8g0g34G3BBddtVdRIwCSA9PV0zMjLqHm0zkpmZiWfqYhgU3Qpf3E+b71+jTf73cNGT0OnCH5UcD6zfk89zX27gk5W7+XxbOcM6x/GzPskM6xxHgK/LA/H9mOfqoumxuqhgdVF/PJlEsoCUSsvJwK5Ky2FAdyBTRADigekiMkZVF4tIMvA/4JequsmDcZrTERQFY56DXuPhozvh7Sugw/lwwSPQ+sRbXunxYUy8ui8b9ubzznc7mL58J5+t3ktksB+X9E7iiv4pdE0M99IbMcbUB0/eE1kEpIlIOxHxx/nP6fRjG1U1T1VjVTVVVVOBBcCxBBIJfALcq6rzPBijqau2Z8Ov58GFj8HOxfCvc+DjCVB44EdF01qHcd/FXVlw7/n85/oBDOkYy9sLt3PRc18z5vlv+GDpTsqP2sBFY5oijyURVS0Dbgc+A9YCU1V1tYg8JCJjTrL77UBH4C8issz9auWpWE0d+frDWbfBHctgwE2w5DWYOBBWvQfV3GvzdfkwLL0Vz1/dl4V/Op/7L+5K8ZFyfvvuMkY/O5dPV9koeGOaGk82Z6GqM4AZVdbdV0PZjEq/PwI84snYTD0KjoaLnoA+18BHd8C0X8Hyd+EnT0Jkm2p3iQrx5/pz2nHtWanMWLWbp774gV+/+T2d48P4WZ8kxvROJCEiqIHfiDHmdNmIdVN/EnrCjbNh1OOw9Rt4fiDMfRLKah4z4uMj/LRnIp//9jz+Pq4nAX4u/jpzHWc//iXjJ83n203ZDfgGjDGny5KIqV8+Lhj8G7j9O0gbCV8+DC+eDWs/qjWZ+Lp8uLx/Ch/edg6Zd2UwYUQntucUcvXLC7np9cU2Et6YRsqSiPGMiGS48g3nSYqq8O418PeO8N6N7oRS8yDE1NgQ7jg/jS/vyuAPF6bz7cZsRj71FX/630q2WjIxplHx6D0RY+g4Am5dAFu+gjUfODMDr/wvBMc6o+H7XQcxHardNdDPxW3DOnJF/xSemfUD/12cxTvfbWdUt3h+NaQd/dpE4ePT8AMYjTEVLIkYz/P1d5q20kbCT5+FzXNgyaswfyJ8+xx0/imMeBBiO1a7e1xYAI/+rAd3np/Gq99u5Y0F25i5ag8JEYGM6h7P6O4J9GsbhcsSijENzpKIaVgu34qEkr/HSSbf/hNeGAT9fwVD74GQmGp3bRUeyN2jOnPrsI58vnoPM1bu4a2F2/nPvK3EhvozoktrLujWmrM7xBLo1zAj4o1p6SyJGO8Ji4eMe5zkkflXWPRvWPY2DLwJzrodQmKr3S00wJdL+yZzad9kCkrK+HLdPj5fvYePV+xmyqId+Pv60LdNJGd3iCX4UDnnHVVr9jLGQyyJGO8LbQU/fRoG/Rq++ht88wwsfMlJLkMm1JhMwEkoY3olMqZXIiVl5czflMM3G7KZvzmHp2f9gCq8vHY2o7sncFEPa/Yypr5ZEjGNR1w6jJsMGffC1/+ABS86o+DPuQMG3woBtc+6GuDrIiO9FRnpzuQGuYWlvPDBXLaVR/LOd9t59dutxIUFMKpbPKO7xzOwXTS+LuugaMyZsCRiGp/YNPjZv+Dc38PsB2HOo/DdyzDoZuh2aY29uaqKDPbn7ERf/pTRn8PuZq9PV+1h2pIs3liwjdhQf0Z1j+enPRMZmBptTV7G1IElEdN4xabBlW/CjkXw5UPw5SPOK6E39Ljc6SIcHH1KhwoJ8OXiXolc3CuRotJyMtfv4+OVu5m2JIs3F2wnMSKQXw1px1UD2xASYH8Wxpwq+2sxjV/KALj2I8jd4Yw1WfW+85TFLx+GHuOcyR8TeoGc2pVEkL+L0T0SGN0jgcMlZcxet4+3FmzjkU/W8s8vN3LtWW25vH8KKdHBHn5jxjR9lkRM0xGZAmf/P+e1d7XTxLXiXVj6JoS2hjZnOVPUp54LrbqcUlIJqXRj/vvtB/lX5iae+3Ijz325kW6J4YzqFs+Irq3pHB+GnGKSMqYlsSRimqbW3eDiZ2DEA7D6f7DtW9g+37lSAQiNhw7DaVWaACX9T3pTHqBvmygm/bI/Ow4U8umqPXy6eg//+OIH/vHFD8SHBzK0UxzDOscxrHOrBnsyozGNnSUR07QFRUL/650XQO522PwVbPoSfphJ16KDsGEipF0A3S+FdkNPeh8lJTqYm85rz03ntWfvoWK+Wr+fzB/2MWPVbt5dvIOoYD8u7ZvM+AEppLUOa4A3aUzjZUnENC+RbaDvL5zX0XKWTv8Xffy2wJoPYa37wZpxXaDNYEgfDR1Hgk/N3XxbhwdyxYAUrhiQQln5UeZtyuHdRdt5ff5W/v3NFpIig+iVEkGv5Eh6p0TSIzmCYH/7szIth33aTfPl4yIvshtk3Aaj/wY7FrqbvRY4T19c8h+I6ehMXd/rKvAPqfVwvi4fhnaKY2inOLILSvh4+S4WbzvI8qxcZqzc45xSoFPrMHomR9A2JoSU6GBSooJIax1GqPX6Ms2QfapNy+Djcm66tz3bWS4/4lydzH8ePvk9fPkoDL0b+t/gTBh5ErGhAVx3TjuuO6cdANkFJazIymXZ9lyW7shl9tp95ByumO5eBDrEhdIzKYL+qdGM7NqauLAAj7xVYxqSJRHTMrn8nO7B3S9zrkwyH4NP74GF/4Lhf4GulziTRZ6i2NAAhnduzfDOrY+vO1xSRtbBIrYfKGTNrkOs3JnL1xuzeX/pTv7vg5X0T43mgq6t6ZIQTvu4EOLDA60HmGlyPJpERGQU8CzgAl5R1cdrKDcO+C8wQFUXu9fdC9wAlAN3qOpnnozVtFAi0PYs+OV02DgbvrgP3rsBZvwBOl3o3DdJGQQhcc7VzGkICfAlPT6M9PgwRnZ1kouqsn5vPjNW7uHTVbt55JO1x8sH+blIjw+je1I43RMj6Ns2irRWoZZYTKPmsSQiIi5gIjASyAIWich0VV1TpVwYcAewsNK6rsB4oBuQCMwSkU6qWu6peE0LJwJpI6DDMOfBWes+hvUzYfk77u0+ENIKotpCh+HQadRpDXCsOI3QOT6czvHh/G5kJ/bkFbN5fwGbsw+zaX8Ba3cf4sOlu3hzwXYAEiMCGZreiqGdYumSEE5yVLBNIGkaFU9eiQwENqrqZgARmQKMBdZUKfcw8ARwV6V1Y4EpqloCbBGRje7jzfdgvMY4Vxtdxziv8jLYsQD2rXWefVKwB/avh8zHnanrwxKh4/nOq30GBEWd9uniIwKJjwjk7I4VMxUfPapsO1DIws05ZK7fz0fLd/HOd05S8ff1oX1sCJ1ah9ElIZyuieF0iQ8jLizArliMV3gyiSQBOyotZwGDKhcQkT5Aiqp+LCJ3Vdl3QZV9k6qeQERuBm4GiIuLIzMzs34ib+IKCgqsLtzqpy7SwJUGEUAE+LXJJSZnCTE5i4ha8T6+S99A8eFQeBoHovtyILoP+WEdQc5sQGI8MD4FxiX5szXPl12Hj7L7sLKroJB56wuYvnzX8bIhfpAU6kNSqA8941x0i3Hh7zoxqdjnooLVRf3xZBKp7r9FenyjiA/wNHDd6e57fIXqJGASQHp6umZkZNQlzmYnMzMTqwuH5+riEudHeRnsXIJsmk3ExtlEbJ1Cu63vgH8YhCc4TWChcdCqKyT1c15BkfUSQV7hEdbsPsT6PYf4YV8BG/cWsHj3IebsKCHY38XQTnH0axtFclQwbaKDKVy9xD4XbvY3Un88mUSygJRKy8nArkrLYUB3INN9GR4PTBeRMaewrzGNg8sX2gxyXsP+BIUHnNHyO76Dgr1weD/sXg6rP+D4/4Pie7p7ho2DiB9dYJ+yiGA/zuoQw1kdKh4nfKT8KAs25/DZ6j18sWYvM1ftOWGfsG8+IzEyiKSoILolhtM7xRkkGRNq3Y1N3XgyiSwC0kSkHbAT50b51cc2qmoecLwhWEQygbtUdbGIFAFvi8hTODfW04DvPBirMfUjONpJED3Gnbi+OA92LYWsRc4N+y/ugy/ud0bOJ/SC2E4Q19mZOPIUp7evjp/Lh3PT4jg3LY6Hx3Ynr+gIOw4UseNgIZmLVxIck8TO3CK25xSSuX4fR915LTY0gDbRQbSJDqZtTAjp8WF0jg+jbUyI3cg3tfJYElHVMhG5HfgMp4vvZFVdLSIPAYtVdXot+64Wkak4N+HLgNusZ5Zp0gIjnJvv7TPgvD9AziZYOQ1+mAnfvwFHDleUDUtwmr8SezszEqcMAv/Tn5ZeRIgM9icy2N+ZjiVnPRkZ3Y5vLywtY2VWHst25LJ5/2G2Hyhk0daDfLh8F+pOLoF+PqTHh9M9MZxuiRH0SIogPT4Mf197IqRxeHSciKrOAGZUWXdfDWUzqiw/CjzqseCM8aaYDpDxR+d19Cgc2un0/Nq3xnntXeU8a/7rf4DLH5L6Q1Jf54FcCb0guv1pDYasTrC/L4PaxzCofcwJ64tKy9mwL591e/JZtzufNbvzmL58F28tdPcQc/nQOSGMHkkRx5vD2seF2hVLC2Uj1o3xNh8f51kpkSnOWJVjSvKd0fRb5sK2ec7zU8pLnG3i43Qxjkh2ElJSXyfRtO7mjMY/A0H+LnomR9IzuaIDgKqy40ARK3fmsWJnLiuz8pi+rCKxhPi7SIoKonV4IHFhASRHBpEaG0JqbAjtY0OIDD75VDKmabIkYkxjFRAGaSOdFzjzfe1f79yoP7jFedJjXhb88Bkse8sp4xsEnS5wpnNJuwD8guolFBGhTUwwbWKC+UnPBMAZz7I5+zDLd+Sycmceu3KL2JdfwqZ9Bew5VHz8fgtAfHggXRKcsS09kiLolRJJQoRN89IcWBIxpqlw+UF8d+dVmarzHJWdi2HrPGfK+zUfgn8otDsPkvtD8kD8Sg9BaSH4Bpz2FC7V8fEROrYKpWOrUC7rl3zCttKyo+w4WMjW7MNs3FfAuj35rN19iK83ZFPmzi5xYQGktQolOsSfmBB/WoUH0iEulPT4MNpE28j8psKSiDFNnYgzHUtUW+cKZPQTsPVrWP2+M/X9eue25DkA37r3cQU4PcLie7gTU09I6Ol0AKgH/r4+dIgLpUNcKOd3qZiUsqSsnLW781m+I5dlO3LZfqCQ1bsOkVNQwqHisuPlAnx9aBvjjG9pEx1Cp9ah9GsbRYe4UHwsuTQqlkSMaW5cvs4cYB2GOcuFB2DnEjYs/JS01GQoK4WSQ7B/HWyaDcvfrtg32n1/pd1QaD/UechXPQrwdR2/GX9tlW2HS8rYuK+A9Xvz2bA3n605hWzPKWTexhyKjjidM8MDfendJopO7iugDq1CSYgIJDY0gEA/e2SxN1gSMaa5C46GtJHs3OlH2pCMH28v2Ae7V8Dupc79li1zYeV/nW3R7Z2nP3a6EFKHOE1hHhIS4EuvlEh6pZw4ol9V2ZpTyJJtB1my7SDLduSycHMOJWVHT9zf30VCZBBdEsKP33/pEBtKYmQgvi7rkuwplkSMaelCWzm9wo71DFN1rlI2Zzqj779/Db57CfxCnKuT9sOc8S6xaac9i3FdiAjtYkNoFxvCOPe9l6NHlZ25RWzcX8D+QyVkHy7hQEEp2w4UsnT7QT6qNK+Yn0tIiQomIdK5YokNDSB/Xyk5YVm0Cg+gVZgzCWZ4oK/d6K8DSyLGmBOJOCPnW3VxHh1cWujcY1k/00kq7nssBMc6zV0RSRCe5PQEExf4+EJILLTu7nQ5Dgyv9xB9fMR59HB09YMw8wqPsH5vPluzD7Ml5zDbcg6zJ6+Ypdtz2Z9fQtGRcqb+sPyEfYL9XcS7m8Yig/yIDPYjKsSfpMggEiOCSIwMIjU2mGB/+9qszGrDGFM7/2CnOavThc7ygS3OVcrOJU4X4/3rYVMmlBWDloOe2MxEZBt3QnH3LGvdHaJS66WHWE0igv0Y2C6age2qn0Jm5qw5dO49kH2HitmXX8LeQ8Xszitmd14RBw6Xsv1AISt3HiGnoJTS8hPfT1JkEB1ahZIYEUhEkB/hQX7EhwdyblosrcIDPfaeGitLIsaY0xPdznn1v7767arOCPy9q52R93tWOT9/+LQiwfgGQVy6c5zgGAiKdprVYjs5U76Exnn0LQT5VjSR1eboUSX7cAm7covJOljI5v3Ow8M27S9g3e5D5BUdOeHeTLfEcIZ2iqNzQri7Z1kwUcF+zbqZzJKIMaZ+iTgj6SOSK65ewGkW27/WecjX3jWwbzXsWen0His6yAlPewiOgZiOEOVOWLGdIHmAc8wG/EL28RFahQXSKiyQ3inVT+FffKScLdmHyVy/nznr9/HS3M2UVxppGR7oS1rrMDrGhdI5IYxz0+LoEBfSbBKLJRFjTMPwD654pkpVR8udafP3r3OSzL41TrPZ1m9gxbscTzCh8c7ElCFxznNZgqKcezOhrZ0rmYhkZ1sDfkEH+rncPcLC+U1GB4pKy9l+oJDtBwrZlnOYLe4Bl7PW7uXdxc5z+pKjghjaKY420cFEBvsREeRPXJg/CRFBtAoLaFK9ySyJGGO8z8cFYfHOq33GidvKSpykkrXYmUp/z0rYtQyKc537MFUFRjhXLrGdKq5kolKdm/8hcWc8ceXJBPm7SI8PIz0+7Efbsg4Wkrl+P5nr9/O/pTspLP3x5OQuH6FVWACtwwNpHe78jA0NICbUGdkfFexPRLAfEUF+RAb5E+jn49WrGksixpjGzTcAEvs4r4E3nbjtSJFzBVOwz3kIWO52yN4A2T/AxtlQsKfKwQRCYulPMGxJqbiaCYpyxtMERTlzlvmHgn8I+AW7f3f/DIw4o6uc5KhgrhnclmsGt0VVOVxaTl7REQ4eLmV/QQm7c52b+7vzitl7qJgt2YeZvynnhNH8Vfn7+hAR5EdUsB+d48MZ1D6aQe1iGqzJzJKIMabp8gtyen/VNLK+tBBytzlNY/m7nGSTv4fibWsJ1aNwYHPFPZljMyTXxsfPuZoJbeUkG5e/8woIdUb7x6Y593Ki25+0a7OIEBrgS2iAL0mRtU+UWVp2lAOHS8kuKCG38Ah5RVVfpWQXlDJ/cw7T3WNkgv1dtA4PpFVYAK3CA2kdFkB8RCCtwgPpmhBOx1ahJ3+/p8CSiDGm+fIPrhjzUsmq6p6xXloIRQegpABKD0Op++eRQudnST4UZruveva5t+VBeanTtLZyGid0DgiJc5JJdAf3z3buWLqe9tWMv68P8RHOoMjaHBvdv3BzDj/sLWBffjH7DpWwIiuXvYeKKT7i9CS7NaMDd4/qfFox1MSSiDHGgLvJ6vSfIHnckWLnyiZng/PzwGbI2eyMqak8P1lkW+hysfOKbOuc0y+kXu7VVB7dX5Wqcqi4jH2HigkJqL+vfksixhhTH/wCoXVX51VVaaHzDJisxbDuY1j4Esx//sQyPr7gG+i8XH7OmJqj5e4BnJWucFx+TlPasXs3vgHOrMy+Ac7VTnxP5+mXwTHOfaL83VB0EPEPJSIoiojASAhsBdTPs2YsiRhjjKf5BztTwLTuBv2uheI85wqlMMdJMEcKnU4CZSVOj7PyUufplT4uZyoZqdTlt7zE3eRW4PwsyYeybOcY6z6GozXfhD/unDth5EP18tYsiRhjTEMLjICuY+v/uGUlzjibPSucRBWW4HSbDop2kk7RQSjKdToA1BOPJhERGQU8C7iAV1T18Srbfw3cBpQDBcDNqrpGRPyAV4C+7hhfV9W/ejJWY4xp8nwDnMGYib0b7JQeGxYpIi5gIjAa6ApcJSJVGwvfVtUeqtobeAJ4yr3+ciBAVXsA/YBbRCTVU7EaY4ypG0+OrR8IbFTVzapaCkwBTrh+U9VDlRZDqOgfp0CIiPji3P0pBSqXNcYY0wh4sjkrCdhRaTkLGFS1kIjcBvwO8AeGu1dPw0k4u4FgYIKqHqhm35uBmwHi4uLIzMysx/CbroKCAqsLN6uLClYXFawu6o8nk0h1o2n0RytUJwITReRq4P+Aa3GuYsqBRCAK+FpEZqnq5ir7TgImAaSnp+uPBg+1UJnVDaRqoawuKlhdVLC6qD+ebM7KAlIqLScDu2ooC05z1yXu368GPlXVI6q6D5gH9PdIlMYYY+rMk0lkEZAmIu1ExB8YD0yvXEBEKvcz+wmwwf37dmC4OEKAwcA6D8ZqjDGmDjzWnKWqZSJyO/AZThffyaq6WkQeAhar6nTgdhEZARwBDuI0ZYHTq+s/wCqcZrH/qOoKT8VqjDGmbjw6TkRVZwAzqqy7r9Lvd9awXwFON19jjDGNWNN5fJYxxphGx5KIMcaYOrMkYowxps4siRhjjKkzSyLGGGPqzJKIMcaYOrMkYowxps4siRhjjKkzSyLGGGPqzJKIMcaYOrMkYowxps4siRhjjKkzSyLGGGPqzJKIMcaYOrMkYowxps4siRhjjKkzSyLGGGPqzJKIMcaYOrMkYowxps4siRhjjKkzSyLGGGPqTFTV2zHUCxHJB9Z7O45GIhbI9nYQjYTVRQWriwpWFxXSVTWsrjv71mckXrZeVft7O4jGQEQWW104rC4qWF1UsLqoICKLz2R/a84yxhhTZ5ZEjDHG1FlzSiKTvB1AI2J1UcHqooLVRQWriwpnVBfN5sa6McaYhtecrkSMMcY0MEsixhhj6qxZJBERGSUi60Vko4jc4+14GpKIpIjIHBFZKyKrReRO9/poEflCRDa4f0Z5O9aGICIuEVkqIh+7l9uJyEJ3PbwrIv7ejrGhiEikiEwTkXXuz8dZLfhzMcH997FKRN4RkcCW8tkQkckisk9EVlVaV+3nQBzPub9LV4hI35Mdv8knERFxAROB0UBX4CoR6erdqBpUGfB7Ve0CDAZuc7//e4DZqpoGzHYvtwR3AmsrLf8NeNpdDweBG7wSlXc8C3yqqp2BXjj10uI+FyKSBNwB9FfV7oALGE/L+Wy8Coyqsq6mz8FoIM39uhl48WQHb/JJBBgIbFTVzapaCkwBxno5pgajqrtV9Xv37/k4XxRJOHXwmrvYa8Al3omw4YhIMvAT4BX3sgDDgWnuIi2iHgBEJBw4D/g3gKqWqmouLfBz4eYLBImILxAM7KaFfDZUdS5woMrqmj4HY4HX1bEAiBSRhNqO3xySSBKwo9JylntdiyMiqUAfYCHQWlV3g5NogFbei6zBPAPcDRx1L8cAuapa5l5uSZ+N9sB+4D/u5r1XRCSEFvi5UNWdwJPAdpzkkQcsoeV+NqDmz8Fpf582hyQi1axrcf2WRSQUeA/4raoe8nY8DU1EfgrsU9UllVdXU7SlfDZ8gb7Ai6raBzhMC2i6qo67vX8s0A5IBEJwmm2qaimfjdqc9t9Mc0giWUBKpeVkYJeXYvEKEfHDSSBvqer77tV7j12Gun/u81Z8DeQcYIyIbMVp0hyOc2US6W7CgJb12cgCslR1oXt5Gk5SaWmfC4ARwBZV3a+qR4D3gbNpuZ8NqPlzcNrfp80hiSwC0tw9LfxxbphN93JMDcbd7v9vYK2qPlVp03TgWvfv1wIfNnRsDUlV71XVZFVNxfkMfKmqPwfmAOPcxZp9PRyjqnuAHSKS7l51PrCGFva5cNsODBaRYPffy7G6aJGfDbeaPgfTgV+6e2kNBvKONXvVpFmMWBeRi3D+1+kCJqvqo14OqcGIyBDga2AlFfcC/oRzX2Qq0Abnj+hyVa16c61ZEpEM4C5V/amItMe5MokGlgLXqGqJN+NrKCLSG6eTgT+wGbge5z+OLe5zISIPAlfi9GZcCtyI09bf7D8bIvIOkIEz/f1e4H7gA6r5HLiT7PM4vbkKgetVtdZZfptFEjHGGOMdzaE5yxhjjJdYEjHGGFNnlkSMMcbUmSURY4wxdWZJxBhjTJ1ZEjHGTUQK3D9TReTqej72n6osf1ufxzfGWyyJGPNjqcBpJRH3bNK1OSGJqOrZpxmTMY2SJRFjfuxx4FwRWeZ+DoVLRP4uIovcz1i4BZxBje5nubyNM9gTEflARJa4n11xs3vd4zgzyC4Tkbfc645d9Yj72KtEZKWIXFnp2JmVngfylnsgGCLyuIisccfyZIPXjjGV+J68iDEtzj24R7wDuJNBnqoOEJEAYJ6IfO4uOxDorqpb3Mu/co/8DQIWich7qnqPiNyuqr2rOdelQG+c533EuveZ697WB+iGM3fRPOAcEVkD/AzorKoqIpH1/u6NOQ12JWLMyV2AM5/QMv5/e/fP0lYYhmH8esAhS3CQ7jpU3OrSQsDRDyAufoV2qNSlH0Yc3DqWLsWOOkmGYLJ179DiUGhpKVj7OLzvKUGT/nkRslw/yBA4OeRMN+d54X5KncwKZWkPwHAqQAD2I2IMnFOK7B7yZ1vAq8y8zsxPwCnweOreHzLzF3BBGbN9AX4ARxGxS6mmkBbGEJH+LoDnmblZP2uZ2b2JfPt9Uens2gYGmfmI0sfU+4d7zzPd43QNLNX9F08orc07wMl/PYl0zwwR6a6vQH/q+zvgWa3cJyLW64Kn25aBz5n5PSI2KOuKO1fd7285A/bqucsDyjbC4bw/VvfGLGfmW+AFZRQmLYxnItJdE+BnHUsdU3aVrwKjerh9yexVqifA04iYAO8pI63OITCJiFGtqO+8BgbAmLL852VmfqwhNEsfeBMRPcpbzEHbI0r3wxZfSVIzx1mSpGaGiCSpmSEiSWpmiEiSmhkikqRmhogkqZkhIklqdgO9fvn75u/FCAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ax = lgb.plot_metric(evals_result, metric='l1')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-25T22:13:39.958548Z",
     "start_time": "2018-10-25T22:13:39.811530Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ax = lgb.plot_importance(gbm, max_num_features=10)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-25T22:13:40.027803Z",
     "start_time": "2018-10-25T22:13:39.960713Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Plotting 84th tree with graphviz\n"
     ]
    },
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
       " -->\n",
       "<!-- Title: Tree84 Pages: 1 -->\n",
       "<svg width=\"531pt\" height=\"463pt\"\n",
       " viewBox=\"0.00 0.00 530.59 462.56\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 458.5584)\">\n",
       "<title>Tree84</title>\n",
       "<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-458.5584 526.5853,-458.5584 526.5853,4 -4,4\"/>\n",
       "<!-- split0 -->\n",
       "<g id=\"node1\" class=\"node\">\n",
       "<title>split0</title>\n",
       "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"105.6006\" cy=\"-429.1026\" rx=\"105.7013\" ry=\"25.4118\"/>\n",
       "<text text-anchor=\"middle\" x=\"105.6006\" y=\"-431.9026\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">split_feature_name: f19</text>\n",
       "<text text-anchor=\"middle\" x=\"105.6006\" y=\"-417.9026\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">threshold: &#45;2.0785</text>\n",
       "</g>\n",
       "<!-- leaf0 -->\n",
       "<g id=\"node2\" class=\"node\">\n",
       "<title>leaf0</title>\n",
       "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"86.6006\" cy=\"-328.1909\" rx=\"84.9694\" ry=\"25.4118\"/>\n",
       "<text text-anchor=\"middle\" x=\"86.6006\" y=\"-330.9909\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">leaf_index: 0</text>\n",
       "<text text-anchor=\"middle\" x=\"86.6006\" y=\"-316.9909\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">leaf_value: 0.0083</text>\n",
       "</g>\n",
       "<!-- split0&#45;&gt;leaf0 -->\n",
       "<g id=\"edge1\" class=\"edge\">\n",
       "<title>split0&#45;&gt;leaf0</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M100.8061,-403.6383C98.5334,-391.5677 95.78,-376.9441 93.3047,-363.7971\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"96.6835,-362.8267 91.3936,-353.647 89.8044,-364.122 96.6835,-362.8267\"/>\n",
       "<text text-anchor=\"middle\" x=\"105.4961\" y=\"-374.4468\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">&lt;=</text>\n",
       "</g>\n",
       "<!-- split1 -->\n",
       "<g id=\"node3\" class=\"node\">\n",
       "<title>split1</title>\n",
       "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"295.6006\" cy=\"-328.1909\" rx=\"105.7013\" ry=\"25.4118\"/>\n",
       "<text text-anchor=\"middle\" x=\"295.6006\" y=\"-330.9909\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">split_feature_name: f19</text>\n",
       "<text text-anchor=\"middle\" x=\"295.6006\" y=\"-316.9909\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">threshold: 0.0255</text>\n",
       "</g>\n",
       "<!-- split0&#45;&gt;split1 -->\n",
       "<g id=\"edge8\" class=\"edge\">\n",
       "<title>split0&#45;&gt;split1</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M149.668,-405.6978C177.4853,-390.9236 213.5744,-371.7562 242.9037,-356.179\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"244.5823,-359.2505 251.7722,-351.4688 241.2988,-353.0684 244.5823,-359.2505\"/>\n",
       "<text text-anchor=\"middle\" x=\"216.5484\" y=\"-374.4468\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">&gt;</text>\n",
       "</g>\n",
       "<!-- split2 -->\n",
       "<g id=\"node4\" class=\"node\">\n",
       "<title>split2</title>\n",
       "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"152.6006\" cy=\"-227.2792\" rx=\"100.8019\" ry=\"25.4118\"/>\n",
       "<text text-anchor=\"middle\" x=\"152.6006\" y=\"-230.0792\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">split_feature_name: f2</text>\n",
       "<text text-anchor=\"middle\" x=\"152.6006\" y=\"-216.0792\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">threshold: &#45;2.2625</text>\n",
       "</g>\n",
       "<!-- split1&#45;&gt;split2 -->\n",
       "<g id=\"edge6\" class=\"edge\">\n",
       "<title>split1&#45;&gt;split2</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M261.3485,-304.02C241.3617,-289.9158 215.9874,-272.0098 194.7772,-257.0423\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"196.7617,-254.1589 186.5732,-251.2529 192.7256,-259.8783 196.7617,-254.1589\"/>\n",
       "<text text-anchor=\"middle\" x=\"241.4961\" y=\"-273.5351\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">&lt;=</text>\n",
       "</g>\n",
       "<!-- leaf2 -->\n",
       "<g id=\"node9\" class=\"node\">\n",
       "<title>leaf2</title>\n",
       "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"356.6006\" cy=\"-227.2792\" rx=\"84.9694\" ry=\"25.4118\"/>\n",
       "<text text-anchor=\"middle\" x=\"356.6006\" y=\"-230.0792\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">leaf_index: 2</text>\n",
       "<text text-anchor=\"middle\" x=\"356.6006\" y=\"-216.0792\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">leaf_value: 0.0012</text>\n",
       "</g>\n",
       "<!-- split1&#45;&gt;leaf2 -->\n",
       "<g id=\"edge7\" class=\"edge\">\n",
       "<title>split1&#45;&gt;leaf2</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M310.8361,-302.9869C318.4783,-290.3445 327.8432,-274.8523 336.1062,-261.1829\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"339.1699,-262.8802 341.3479,-252.5116 333.1794,-259.2589 339.1699,-262.8802\"/>\n",
       "<text text-anchor=\"middle\" x=\"334.5484\" y=\"-273.5351\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">&gt;</text>\n",
       "</g>\n",
       "<!-- leaf1 -->\n",
       "<g id=\"node5\" class=\"node\">\n",
       "<title>leaf1</title>\n",
       "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"133.6006\" cy=\"-126.3675\" rx=\"84.9694\" ry=\"25.4118\"/>\n",
       "<text text-anchor=\"middle\" x=\"133.6006\" y=\"-129.1675\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">leaf_index: 1</text>\n",
       "<text text-anchor=\"middle\" x=\"133.6006\" y=\"-115.1675\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">leaf_value: 0.0288</text>\n",
       "</g>\n",
       "<!-- split2&#45;&gt;leaf1 -->\n",
       "<g id=\"edge2\" class=\"edge\">\n",
       "<title>split2&#45;&gt;leaf1</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M147.8061,-201.8149C145.5334,-189.7443 142.78,-175.1207 140.3047,-161.9737\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"143.6835,-161.0034 138.3936,-151.8237 136.8044,-162.2986 143.6835,-161.0034\"/>\n",
       "<text text-anchor=\"middle\" x=\"152.4961\" y=\"-172.6234\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">&lt;=</text>\n",
       "</g>\n",
       "<!-- split3 -->\n",
       "<g id=\"node6\" class=\"node\">\n",
       "<title>split3</title>\n",
       "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"342.6006\" cy=\"-126.3675\" rx=\"105.7013\" ry=\"25.4118\"/>\n",
       "<text text-anchor=\"middle\" x=\"342.6006\" y=\"-129.1675\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">split_feature_name: f25</text>\n",
       "<text text-anchor=\"middle\" x=\"342.6006\" y=\"-115.1675\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">threshold: 1.2685</text>\n",
       "</g>\n",
       "<!-- split2&#45;&gt;split3 -->\n",
       "<g id=\"edge5\" class=\"edge\">\n",
       "<title>split2&#45;&gt;split3</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M196.1904,-204.128C224.0905,-189.3099 260.4562,-169.9956 289.9644,-154.3234\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"291.6951,-157.3673 298.885,-149.5855 288.4116,-151.1851 291.6951,-157.3673\"/>\n",
       "<text text-anchor=\"middle\" x=\"263.5484\" y=\"-172.6234\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">&gt;</text>\n",
       "</g>\n",
       "<!-- leaf3 -->\n",
       "<g id=\"node7\" class=\"node\">\n",
       "<title>leaf3</title>\n",
       "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"246.6006\" cy=\"-25.4558\" rx=\"88.0632\" ry=\"25.4118\"/>\n",
       "<text text-anchor=\"middle\" x=\"246.6006\" y=\"-28.2558\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">leaf_index: 3</text>\n",
       "<text text-anchor=\"middle\" x=\"246.6006\" y=\"-14.2558\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">leaf_value: &#45;0.0027</text>\n",
       "</g>\n",
       "<!-- split3&#45;&gt;leaf3 -->\n",
       "<g id=\"edge3\" class=\"edge\">\n",
       "<title>split3&#45;&gt;leaf3</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M318.8703,-101.4231C306.3149,-88.2253 290.7531,-71.8673 277.2895,-57.7149\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"279.4864,-54.9462 270.058,-50.1134 274.4147,-59.771 279.4864,-54.9462\"/>\n",
       "<text text-anchor=\"middle\" x=\"308.4961\" y=\"-71.7117\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">&lt;=</text>\n",
       "</g>\n",
       "<!-- leaf4 -->\n",
       "<g id=\"node8\" class=\"node\">\n",
       "<title>leaf4</title>\n",
       "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"437.6006\" cy=\"-25.4558\" rx=\"84.9694\" ry=\"25.4118\"/>\n",
       "<text text-anchor=\"middle\" x=\"437.6006\" y=\"-28.2558\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">leaf_index: 4</text>\n",
       "<text text-anchor=\"middle\" x=\"437.6006\" y=\"-14.2558\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">leaf_value: 0.0032</text>\n",
       "</g>\n",
       "<!-- split3&#45;&gt;leaf4 -->\n",
       "<g id=\"edge4\" class=\"edge\">\n",
       "<title>split3&#45;&gt;leaf4</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M366.0837,-101.4231C378.5084,-88.2253 393.908,-71.8673 407.2314,-57.7149\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"410.0814,-59.7936 414.3876,-50.1134 404.9846,-54.9954 410.0814,-59.7936\"/>\n",
       "<text text-anchor=\"middle\" x=\"400.5484\" y=\"-71.7117\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">&gt;</text>\n",
       "</g>\n",
       "</g>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<graphviz.dot.Digraph at 0x117a7f208>"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print('Plotting 84th tree with graphviz')\n",
    "lgb.create_tree_digraph(gbm, tree_index=83, name='Tree84', precision=4)"
   ]
  }
 ],
 "metadata": {
  "hide_input": 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.3"
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}