{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Fast_Multi Booster\n", "\n", "inspired by [Gradient Boosted Decision Trees for High Dimensional Sparse Output](http://www.stat.ucdavis.edu/%7Echohsieh/rf/icml_sparse_GBDT.pdf)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import lightgbm as lgb\n", "import matplotlib.pyplot as plt\n", "import seaborn\n", "from sklearn import preprocessing\n", "from sklearn.metrics import log_loss\n", "import time\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Data from [Kaggle Otto competition](https://www.kaggle.com/c/otto-group-product-classification-challenge)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(61878, 95)\n" ] } ], "source": [ "train = pd.read_csv('input/otto_train.csv')\n", "print(train.shape)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def encode_features(dat):\n", " df = pd.DataFrame(index=dat.index.values)\n", " for c in dat.columns.values:\n", " unq = np.unique(dat[c])\n", " arr = np.zeros(len(df))\n", " for ii, u in enumerate(unq):\n", " flg = (dat[c] == u).values\n", " arr[flg] = ii\n", " df[c] = arr.astype(int)\n", " return df" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(61878, 93) (61878,)\n" ] } ], "source": [ "x = encode_features(train.drop(['id', 'target'], axis=1))\n", "y = np.array([int(v.split('_')[1])-1 for v in train.target])\n", "print(x.shape, y.shape)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "9\n" ] } ], "source": [ "num_cls = len(np.unique(y))\n", "print(num_cls)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "np.random.seed(20161218)\n", "flg_train = np.random.choice([False, True], len(y), p=[0.3, 0.7])\n", "flg_valid = np.logical_not(flg_train)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "dt_lgb = lgb.Dataset(x[flg_train], y[flg_train])\n", "dv_lgb = lgb.Dataset(x[flg_valid], y[flg_valid], reference=dt_lgb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### GBDT booster" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "prm_lgb = {\n", " 'boosting_type': 'gbdt',\n", " 'objective': 'multiclass',\n", " 'num_class': num_cls,\n", " 'num_leaves' : 2**5-1,\n", " 'learning_rate': 0.1,\n", " 'feature_fraction': 0.9,\n", " 'bagging_fraction': 0.9,\n", " 'bagging_freq' : 1,\n", " 'metric': 'multi_logloss',\n", "}\n", "num_round = 100" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "12.959201097488403\n", "[0.39572366741363918, 0.52176887577053011]\n" ] } ], "source": [ "time_s = time.time()\n", "obj_gbdt = lgb.train(\n", " prm_lgb, dt_lgb, num_boost_round=num_round,\n", " #valid_sets=dv_lgb\n", ")\n", "time_t = time.time()\n", "time_gbdt = time_t - time_s\n", "loss_gbdt = [\n", " log_loss(y[flg_train], obj_gbdt.predict(x[flg_train])),\n", " log_loss(y[flg_valid], obj_gbdt.predict(x[flg_valid]))\n", "]\n", "print(time_gbdt)\n", "print(loss_gbdt)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Fast_Multi booster\n", "\n", "Parameters\n", "\n", "* boosting_type: 'fast_multi'\n", "* num_class_train: number of class training per iteration" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": true }, "outputs": [], "source": [ "prm_lgb.update({\n", " 'boosting_type': 'fast_multi',\n", " 'num_class_train': 1,\n", "})" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.8654110431671143\n", "[0.39572366741363918, 0.52176887577053011]\n" ] } ], "source": [ "time_s = time.time()\n", "obj_fm = lgb.train(\n", " prm_lgb, dt_lgb, num_boost_round=num_round,\n", " #valid_sets=dv_lgb\n", ")\n", "time_t = time.time()\n", "time_fm = time_t - time_s\n", "loss_fm = [\n", " log_loss(y[flg_train], obj_gbdt.predict(x[flg_train])),\n", " log_loss(y[flg_valid], obj_gbdt.predict(x[flg_valid]))\n", "]\n", "print(time_fm)\n", "print(loss_fm)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true }, "outputs": [], "source": [ "res = []\n", "for ii in range(num_cls):\n", " prm_lgb.update({'num_class_train': ii+1})\n", " time_s = time.time()\n", " obj_fm = lgb.train(\n", " prm_lgb, dt_lgb, num_boost_round=num_round,\n", " #valid_sets=dv_lgb\n", " )\n", " time_t = time.time()\n", " res.append((\n", " time_t - time_s,\n", " log_loss(y[flg_train], obj_fm.predict(x[flg_train])),\n", " log_loss(y[flg_valid], obj_fm.predict(x[flg_valid]))\n", " ))\n", "df = pd.DataFrame(res)\n", "df.columns = ['time', 'train', 'valid']\n", "df.index = df.index +1" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": true }, "outputs": [], "source": [ "df['time_gbdt'] = time_gbdt\n", "df['train_gbdt'] = loss_gbdt[0]\n", "df['valid_gbdt'] = loss_gbdt[1]" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure()\n", "plt.plot(df.time, label='Fast_Multi')\n", "plt.plot(df.time_gbdt, label='GBDT')\n", "plt.legend()\n", "plt.title('time')\n", "plt.xlabel('num_class_train')\n", "plt.ylabel('time')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEXCAYAAABCjVgAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8VOXZ//HPlY1AEsKSsAaBsMsWIIh7XYtSxQWta61a\ntdat1Vq3LtrneWrVn31sq1ZFa7GtWxWXqrj1UVRUUIjsIPsStoQ97Fmu3x9zEgOGMIFMTpbv+/Wa\nV2bOnDnnOyPONfd9n3Mfc3dEREQA4sIOICIi9YeKgoiIVFBREBGRCioKIiJSQUVBREQqqCiIiEgF\nFQWRfZjZ42b267BziITBdJ6CNCZmtgy4yt3/E3YWkYZILQVpUswsIewMh8LM4sPOII2bioI0Gmb2\nD+Aw4A0z22Zmt5lZNzNzM/uRma0APgjWfcnM1prZFjP72Mz6V9rOODP7n+D+CWaWb2Y/N7MCM1tj\nZldUk+FyM1tiZkVmttTMLqn03NVmNi94bq6ZDQ2W9zOziWa22czmmNnofbI8ZmYTzGw7cKKZNTOz\nB81shZmtC7q7mtf25ylNk4qCNBru/gNgBXCmu6e6+wOVnv4O0A8YGTx+G+gFtAPygGer2XQHIB3o\nDPwIeNTMWu+7kpmlAH8GTnf3NOBoYHrw3PnAPcBlQEtgNLDBzBKBN4D3giw3As+aWZ9Km74Y+B2Q\nBkwC7gN6AzlAzyDXb6r/dESio6IgTcU97r7d3XcCuPvT7l7k7ruJfFkPNrP0/by2GPgvdy929wnA\nNqDPftYtAwaYWXN3X+Puc4LlVwEPuPuXHrHI3ZcDRwKpwH3uvsfdPwDeBC6qtM3X3f1Tdy8DdgPX\nADe7+0Z3LwLuBS48uI9FZG8qCtJUrCy/Y2bxZnafmS02s63AsuCpjP28doO7l1R6vIPIF/le3H07\ncAFwLbDGzN4ys77B012AxVVsuxOwMvjCL7ecyK//b2UHMoEWwLSgu2kz8E6wXOSQqShIY7O/w+kq\nL78YOAs4hUi3ULdguR3yzt3fdfdTgY7AfODJ4KmVQI8qXrIa6GJmlf9fPAxYtZ/s64GdQH93bxXc\n0t39W0VK5GCoKEhjsw7IPsA6aUS6YTYQ+dV9b23s2Mzam9lZwdjCbiLdTOUtgKeAW81smEX0NLOu\nwBQiLY/bzCzRzE4AzgReqGofQYviSeAhM2sX7LezmY2san2RmlJRkMbm98Cvgq6VW/ezzt+JdNGs\nAuYCk2tp33HALUR+/W8kMrj9EwB3f4nIYPFzQBHwGtDG3fcQKQKnE2kF/AW4zN3nV7Of24FFwOSg\n++s/7H+MQ6RGdPKaiIhUUEtBREQqqCiIiEgFFQUREamgoiAiIhViNjmYmT0NnAEUuPuAatYbDnwO\nXOjuLx9ouxkZGd6tW7dayyki0hRMmzZtvbsf8CTHWM4YOQ54hMjhf1UKZny8n8i8L1Hp1q0bU6dO\nPeRwIiJNiZktj2a9mHUfufvHRI7Vrs6NwHigIFY5REQkeqGNKZhZZ+Ac4LEo1r3GzKaa2dTCwsLY\nhxMRaaLCHGj+I3D7PhOBVcndx7p7rrvnZmZq3i8RkVgJ8ypUucALZgaR2SlHmVmJu78WYiYRqSPF\nxcXk5+eza9eusKM0KsnJyWRlZZGYmHhQrw+tKLh79/L7ZjYOeFMFQaTpyM/PJy0tjW7duhH8OJRD\n5O5s2LCB/Px8unfvfuAXVCGWh6Q+D5wAZJhZPnA3kAjg7o/Har8i0jDs2rVLBaGWmRlt27blUMZe\nY1YU3P2iA69Vse7lscohIvWXCkLtO9TPtMmc0bxlZzF/mbiIsjLNCisisj9Npih8MH8dD7zzNX//\nfFnYUURE6q0mUxTOzunMSX3bcd8781m2fnvYcUSkHoiPjycnJ6fitmzZshpv4957D3zhPjPj0ksv\nrXhcUlJCZmYmZ5xxxgFfm5oaudLqsmXLeO655yqWT506lZtuuqnGeQ+kyRQFM+PecwaSFB/HrS/N\noFTdSCJNXvPmzZk+fXrF7WDmVYumKKSkpDB79mx27twJwPvvv0/nzp1rtJ99i0Jubi5//vOfaxY2\nCmGep1DnOqQnc8/o/tzyrxn87dOlXHXcgS7lKyJ14bdvzGHu6q21us3DO7Xk7jP71/h1y5Yt4wc/\n+AHbt0d6FB555BGOPvpo1qxZwwUXXMDWrVspKSnhscce46233mLnzp3k5OTQv39/nn322f1ud9So\nUbz11lucd955PP/881x00UV88sknANxzzz2kpqZy662RK8gOGDCAN998c68idccddzBv3jxycnL4\n4Q9/yJAhQ3jwwQd58803a/weq9NkWgrlzhnSmVP6tef/vfs1iwu3hR1HREJU/oWek5PDOeecA0C7\ndu14//33ycvL48UXX6zoonnuuecYOXIk06dPZ8aMGeTk5HDfffdVtDaqKwgAF154IS+88AK7du1i\n5syZjBgxokZZ77vvPo477jimT5/OzTfffHBvOApNqqUAQTfSuQP47kMfc+tLM3j52qOJj9NhcSJh\nOphf9LWh/Au9suLiYm644QamT59OfHw8CxYsAGD48OFceeWVFBcXc/bZZ5OTk1OjfQ0aNIhly5bx\n/PPPM2rUqFp7D7WtybUUANqlJfPb0f35asVmnvpkSdhxRKQeeeihh2jfvj0zZsxg6tSp7NmzB4Dj\njz+ejz/+mM6dO3P55Zfz97/v96oA+zV69GhuvfVWLrpo79O4EhISKCv7Zhq4MKf+aJJFAWD04E6c\n1r8Df3h/AYsKisKOIyL1xJYtW+jYsSNxcXH84x//oLS0FIDly5fTvn17rr76aq666iry8vIASExM\npLi4OKptX3nlldx9990MHDhwr+XdunWr2F5eXh5Lly791mvT0tIoKor9d1WTLQpmxv+cM4DUZgn8\n/KWZlJQecLJWEWkCrrvuOp555hkGDx7M/PnzSUlJAWDixIkMHjyYIUOG8OKLL/LTn/4UgGuuuYZB\ngwZxySWXHHDbWVlZVR5GOmbMGDZu3Ej//v155JFH6N2797fWGTRoEPHx8QwePJiHHnroEN/l/pl7\nwzo0Mzc312vzymtvzlzNDc99xW2n9eG6E3rW2nZFpHrz5s2jX79+YcdolKr6bM1smrvnHui1Tbal\nUO6MQZ343sCO/PH9hXy9Vt1IItK0NfmiAPBfZ/UnLTmBW1+aQbG6kUTkIGzYsGGvs6PLbxs2bAg7\nWo00uUNSq9I2tRn/c/YAfvJsHo9PXMyNJ/cKO5KINDBt27b91uGtDZFaCoHTB3Zk9OBO/PmDhbV+\nZqWISEOholDJb0f3J715Ere+NIM9JepGEpGmR0WhktYpSdx7zgDmrtnKox8uCjuOiEidU1HYx3f7\nd+DcIZ159MNFzF61Jew4IhJj69at4+KLLyY7O5thw4Zx1FFH8eqrrzJx4kTS09PJyclh0KBBnHLK\nKRQUFAAwbtw4MjMzGTJkCL169WLkyJF89tlnAFx//fXk5ORw+OGH07x584oB55dffjnMtxk1FYUq\n3H1mf9qkqBtJpLFzd84++2yOP/54lixZwrRp03jhhRfIz88HqJiAbubMmQwfPpxHH3204rUXXHAB\nX331FQsXLuSOO+7g3HPPZd68eTz66KNMnz6dCRMm0KNHj4ppuc8777yw3maNqChUIb1FIr8/dyDz\n1xbx8AcLw44jIjHywQcfkJSUxLXXXluxrGvXrtx44417refuFBUV0bp16yq3c+KJJ3LNNdcwduzY\nmOatCzokdT9O7tee84Zl8ZeJizn18PYMymoVdiSRxuvtO2DtrNrdZoeBcPp91a4yZ84chg4dut/n\nP/nkk4pzDVJSUqq9oM7QoUN54oknDjpufaGWQjV+fcbhZKY24+f/msHuktKw44hIjF1//fUMHjyY\n4cOHA990H61cuZIrrriC2267bb+vbWhTBu2PWgrVSG+eyH1jBnL5377kj/9ZyO2n9Q07kkjjdIBf\n9LHSv39/xo8fX/H40UcfZf369eTmfnuKoNGjRzNmzJj9buurr75qFHM5qaVwACf0aceFw7vwxEeL\n+WrFprDjiEgtOumkk9i1axePPfZYxbIdO3ZUue6kSZPo0aNHlc999NFHjB07lquvvjomOeuSWgpR\n+OX3+vHxgkJufWkGb910HMmJ8WFHEpFaYGa89tpr3HzzzTzwwANkZmaSkpLC/fffD3wzpuDupKen\n89RTT1W89sUXX2TSpEns2LGD7t27M378+EbRUmjyU2dHa9LC9Vz61ylcc3w2d41q+P/hRcKmqbNj\nR1Nn14Fje2Vw8YjDePKTJUxbvjHsOCIiMaGiUAN3jepHp/Tm3PrSTHbu0dFIItL4qCjUQGqzBP7f\neYNYun47D773ddhxRBq8htZ93RAc6meqolBDR/fM4LKjuvL0p0v5Yqm6kUQOVnJyMhs2bFBhqEXu\nzoYNG0hOTj7obWig+SBs313C6X/6BDN4+6fH0SJJB3GJ1FRxcTH5+fns2rUr7CiNSnJyMllZWSQm\nJu61PNqB5ph9m5nZ08AZQIG7D6ji+UuA2wEDioCfuPuMWOWpTSlBN9IFYyfzwDtfc8/o/mFHEmlw\nEhMT6d69e9gxZB+x7D4aB5xWzfNLge+4+0Dgv4EGNZPUiOy2XHFMN8Z9tozPFzesa7CKiOxPzIqC\nu38M7LfT3d0/c/fyU4QnA1mxyhIrt43sS7e2LfjFyzPYvrsk7DgiIoesvgw0/wh4O+wQNdU8KZ4H\nzx/Mqs07+f3b88KOIyJyyEIvCmZ2IpGicHs161xjZlPNbGphYWHdhYtCbrc2/OiY7vxz8go+XbQ+\n7DgiIock1KJgZoOAp4Cz3H2/HfPuPtbdc909NzMzs+4CRunWkX3IzkjhtpdnUrSrOOw4IiIHLbSi\nYGaHAa8AP3D3BWHlqA3JifE8+P3BrNmyk3snzA87jojIQYtZUTCz54HPgT5mlm9mPzKza82s/Lp3\nvwHaAn8xs+lmFu7JB4do6GGtufr4bJ7/YgUfL6hfXVwiItHSyWu1aFdxKWc8PIntu0t49+bjaZmc\neOAXiYjUAc2SGoLkxHj+cP5gCop28z9vzg07johIjako1LLBXVpx7Xey+dfUfD6cXxB2HBGRGlFR\niIGbTu5Fn/Zp3PHKTLbs0NFIItJwqCjEQLOEyElt67ft4bdvzgk7johI1FQUYmRgVjrXn9CDV/JW\n8Z+568KOIyISFRWFGLrhpF707ZDGna/OYvOOPWHHERE5IBWFGEpKiOMP3x/Mpu17uOff6kYSkfpP\nRSHG+ndK58aTevHa9NW8M3tt2HFERKqlolAHrjuxB/07teRXr81i43Z1I4lI/aWiUAcS4yPdSFt2\nFvOb12eHHUdEZL9UFOpI3w4t+dkpvXlz5hremrkm7DgiIlVSUahDPz4+m0FZ6fz69dms37Y77Dgi\nIt+iolCHEuLjePD8wWzbVcKvX5tNQ5uMUEQaPxWFOta7fRo3n9qbt2ev5Q11I4lIPaOiEIKrj+tO\nTpdW/Ob12RQU7Qo7johIBRWFEJR3I+3YU8ovX1U3kojUHyoKIenZLpVffLcP789dx+vTV4cdR0QE\nUFEI1ZXHdmdY19bc/e85FBbpaCQRCZ+KQoji44wHzhvE9t0lPPSfBWHHERFRUQhbj8xULj2yKy98\nsYKF64rCjiMiTZyKQj1w08m9SElK4L6354cdRUSaOBWFeqBNShLXn9ST/5tfwGeL14cdR0SaMBWF\neuLyo7vRuVVz7p0wj7IyHaIqIuFQUagnkhPj+cXIPsxetZXXZ6wKO46INFEqCvXI6MGdGNC5JQ++\nu4BdxaVhxxGRJkhFoR6JizPuGtWPVZt38rdPl4UdR0SaIBWFeuboHhmc3Lcdf/lwERs0vbaI1DEV\nhXrozlF92VFcysMfLAo7iog0MQcsCmbWw8yaBfdPMLObzKxV7KM1XT3bpXHB8C78c/JylhRuCzuO\niDQh0bQUxgOlZtYTGAt0AZ6LaSrhZ6f0ollCHA+883XYUUSkCYmmKJS5ewlwDvCwu/8C6BjbWNIu\nLZkff6cH78xZy5fLNoYdR0SaiGiKQrGZXQT8EHgzWJYYu0hS7qrjutO+ZTN+99Y8XXNBROpENEXh\nCuAo4HfuvtTMugP/ONCLzOxpMysws9n7ed7M7M9mtsjMZprZ0JpFb/xaJCXw81P7MH3lZt6apUt3\nikjsHbAouPtcd7/J3Z83s9ZAmrvfH8W2xwGnVfP86UCv4HYN8FgU22xyxgzLom+HNB5452t2l+iE\nNhGJrWiOPppoZi3NrA2QBzxpZv97oNe5+8dAdZ3hZwF/94jJQCsz01jFPuLjjDtH9WPFxh384/Pl\nYccRkUYumu6jdHffCpxL5Et8BHBKLey7M7Cy0uP8YJns4zu9MzmuVwYPf7CILTuKw44jIo1YNEUh\nIfgF/32+GWiuU2Z2jZlNNbOphYWFYUQI3V2j+rF1VzGPfLgw7Cgi0ohFUxT+C3gXWOzuX5pZNlAb\n30yriJzzUC4rWPYt7j7W3XPdPTczM7MWdt3w9OvYkvOGZvHMZ8tZuXFH2HFEpJGKZqD5JXcf5O4/\nCR4vcfcxtbDvfwOXBUchHQlscXcdYlONn3+3D3Fx8MC7OqFNRGIjmoHmLDN7NTi8tMDMxptZVhSv\nex74HOhjZvlm9iMzu9bMrg1WmQAsARYBTwLXHcL7aBI6pCdz9XHZvDFjNdNXbg47jog0Qnagk6LM\n7H0i01qUn5twKXCJu58a42xVys3N9alTp4ax63ph2+4STvh/H5KdkcqLPz4SMws7kog0AGY2zd1z\nD7ReNGMKme7+N3cvCW7jgKbZsV8PpDZL4Gen9OaLZRt5b+66sOOISCMTTVHYYGaXmll8cLsU2BDr\nYLJ/Fw7vQo/MFO5/ez7FpWVhxxGRRiSaonAlkcNR1wJrgPOITH0hIUmIj+PO0/uxZP12nv9iRdhx\nRKQRSTjQCu6+HBhdB1mkBk7u144js9vwx/8s5OwhnWmZrDkKReTQ7bcomNnDwH5Hod39ppgkkqiY\nGb8cdThnPjKJxycu5rbT+oYdSUQagepaCk33EJ8GYmBWOmfndOKvk5Zy6ZFd6dSqediRRKSB229R\ncPdn9l1mZh3cfW1sI0lN3DqyDxNmr+XB977mf7+fE3YcEWngohlormxCTFLIQctq3YIrjunGq1+t\nYvaqLWHHEZEGrqZFQWdK1UPXndCTVs0T+f3bukKbiByamhaFJ2OSQg5JevNEbjq5F58u2sDEBU1z\nFlkRqR3RzH3UpvwGvBDc1/GP9cwlI7rSrW0Lfj9hHiU6oU1EDlI0LYU8oBBYQGTK7EJgmZnlmdmw\nWIaT6CUlxHH7aX1ZsG4bL0/LDzuOiDRQ0RSF94FR7p7h7m2JXFv5TSKzmv4lluGkZk4b0IFhXVvz\nh/cXsH13SdhxRKQBiqYoHOnu75Y/cPf3gKOC6yo3i1kyqTEz465R/Sgs2s2TnywJO46INEDRFIU1\nZna7mXUNbrcB68wsHlDndT0zrGtrRg3swBMfLaFg666w44hIAxNNUbiYyKUyXwtuhwXL4olMlCf1\nzG0j+1JSVsb/vr8g7Cgi0sBEMyHeeuBGM0uLPPRtlZ5eFLNkctC6ZaRw6ZFdeeazZVxxTHf6dEgL\nO5KINBDRHJI60My+AmYDc8xsmpkNiH00ORQ3ndSLlGYJ/P7teWFHEZEGJJruoyeAW9y9q7t3BX4O\njI1tLDlUrVOSuOHEnkz8upBJC9eHHUdEGohoikKKu39Y/sDdJwIpMUskteaHR3ejc6vm3DthHmVl\nmv5CRA4smqKwxMx+bWbdgtuvAB3v2AAkJ8Zz22l9mLtmK69+tSrsOCLSAER7Oc5M4JXglhkskwbg\nzEGdGJSVzoPvfc2u4tKw44hIPXfAouDum9z9JncfGtx+6u6b6iKcHLq4uMgJbWu27OKvk5aGHUdE\n6rnqLsf5BtVfjlPXbW4gjsxuyyn92vPYxMVcMLwLGak6EV1EqlbdeQoP1lkKibk7Tu/LyD9+zJ//\nbyH/dZaOKBaRqlV3Oc6P6jKIxFbPdqlcdEQXnp2ygh8e3Y0emalhRxKReqimF9mRBuxnp/SmeWI8\n9789P+woIlJPqSg0IRmpzbj2O9m8N3cdU5ZsCDuOiNRDKgpNzI+OzaZDy2Sd0CYiVdpvUTCzPwZ/\n3zCzf+97q7uIUpuaJ8Xz8+/2Zkb+Ft6ctSbsOCJSz1R39NE/gr86CqmROXdoFk9/uowH3pnPyP7t\naZYQH3YkEakn9ttScPdpwd0cd/+o8g3IqZt4EgvxccZdo/qSv2knf/9sedhxRKQeiWZM4YdVLLs8\nmo2b2Wlm9rWZLTKzO6p4Pj3onpphZnPM7IpotiuH7rhemXyndyYPf7CQzTv2hB1HROqJ6sYULgrO\nau6+z3jCh8DGA204uFzno8DpwOHARWZ2+D6rXQ/MdffBwAnAH8ws6SDfi9TQnaP6sm13CQ9/oGsl\niUhEdWMKnwFrgAzgD5WWFwEzo9j2EcAid18CYGYvAGcBcyut40CamRmQSqTYlESdXg5J3w4tOX9Y\nF/7++TIuO6orXdtqRnSRpq66MYXl7j7R3Y/aZ0whz92j+eLuDKys9Dg/WFbZI0A/YDUwC/ipu5ft\nuyEzu8bMpprZ1MLCwih2LdG65bu9SYiL44F3vw47iojUA9V1HxWZ2dYqbkVmtrWW9j8SmA50IjJ4\n/YiZtdx3JXcf6+657p6bmZlZS7sWgPYtk7n6+GzemrmGvBWa/FakqauupZDm7i2ruKW5+7e+uKuw\nCuhS6XFWsKyyK4BXPGIRsBToW9M3IYfmx8dnk5HajHvfmoe7TmgTacoOePSRmR1W1S2KbX8J9DKz\n7sHg8YXAvie9rQBODvbTHuiDrupW51KaJXDLqb2ZunwT785ZG3YcEQlRdQPN5d6qdD8Z6A58DfSv\n7kXuXmJmNwDvAvHA0+4+x8yuDZ5/HPhvYJyZzQIMuN3ddZX5EHw/N4unP13KfW/P56S+7UlK0Awo\nIk3RAYuCuw+s/NjMhgLXRbNxd58ATNhn2eOV7q8GvhtVUomphPg47hrVlyvHTeW5Kcu5/JjuYUcS\nkRDU+Oegu+cBI2KQRUJ2Yp92HJXdlj/930K27ioOO46IhCCaMYVbKt1uNbPniBxCKo2MmfHL7/Vj\n045i/vLh4rDjiEgIomkppFW6NSMyxnBWLENJeAZ0TuecIZ15+tOl5G/aEXYcEalj0Ywp/LYugkj9\ncevIPrw1aw1/eG8BD12guQ9FmpJouo9yzexVM8szs5nlt7oIJ+Ho3Ko5Pzq2O69+tYpXv8oPO46I\n1KFoDkl9FvgFkWkovjUFhTRO15/Yk2nLN3HzizOYvWord57el4R4HaYq0thFUxQK3V1XWmtiUpsl\n8OxVI/jdW/P466SlzF29lUcuHkLb1GZhRxORGIrmp9/dZvZUMJX2ueW3mCeT0CXGx3HP6P48eP5g\npq3YxOhHPmX2qi1hxxKRGIqmKFxBZLK604Azg9sZsQwl9ct5w7IYf+3RuDtjHvuMV/I0ziDSWEXT\nfTTc3fvEPInUawOz0vn3jcdy/bN53PKvGczM38Ivv9ePRI0ziDQq0fwf/VkVV0yTJigjtRn/vGoE\nVx7TnXGfLePSp6awftvusGOJSC2KpigcCUwPrrU808xm6ZDUpisxPo7fnHk4D10wmOkrN3Pmw5OY\nmb857FgiUkui6T46LeYppME5Z0gWvdql8eN/TOO8xz/nd2cP4PzcLgd+oYjUawdsKQSX5fzWrS7C\nSf02oHM6b9x4LLldW/OLl2dy9+uzKS7VqSwiDZlGCeWQtElJ4u9XHsFVx3bnmc+Xc8mTUygs0jiD\nSEOloiCHLCE+jl+dcTh/ujCHmasi4wzTV2qcQaQhUlGQWnNWTmfG/+RoEuKN7z/+Of/6cmXYkUSk\nhlQUpFb175TOGzccyxHd23Db+Jn86rVZ7CnROINIQ6GiILWudUoS464Yzo+Pz+afk1dw8ZOTKSja\nFXYsEYmCioLEREJ8HHeO6sfDFw1hzuqtnPnwJPJWbAo7logcgIqCxNSZgzvxynVHk5QQxwVPfM7z\nX6wIO5KIVENFQWKuX8eWvHHDsRyZ3ZY7X5nFXa/OYndJadixRKQKKgpSJ1q1SGLcFUfwkxN68NyU\nFVw0djLrtmqcQaS+UVGQOhMfZ9x+Wl8evXgo89cWccbDk5i2fGPYsUSkEhUFqXPfG9SRV687hhZJ\n8Vw4djLPTlmOu4cdS0RQUZCQ9OmQxr+vP5Zjembwy1dnc+crGmcQqQ9UFCQ06S0S+esPh3P9iT14\n4cuVXPDEZNZu0TiDSJhUFCRU8XHGL0b25bFLhrJgXWSc4ctlGmcQCYuKgtQLpw/syGvXH0NacgIX\njZ3MPz5fpnEGkRCoKEi90bt9Gq9dfwzH987k16/P4baXZ7KrWOMMInVJRUHqlfTmiTx1WS43ndST\nl6blc8ETn7N6886wY4k0GSoKUu/ExRm3fLcPT/xgGIsLtzP6kUlMWbIh7FgiTUJMi4KZnWZmX5vZ\nIjO7Yz/rnGBm081sjpl9FMs80rCM7N+B164/mpbJiVzy1BSe+UzjDCKxFrOiYGbxwKPA6cDhwEVm\ndvg+67QC/gKMdvf+wPmxyiMNU892abx2wzGc0CeTu/89h1tf0jiDSCzFsqVwBLDI3Ze4+x7gBeCs\nfda5GHjF3VcAuHtBDPNIA9UyOZGxP8jlZ6f0YnxePuc//jkfLyiktEytBpHaFsui0BmofD3G/GBZ\nZb2B1mY20cymmdllVW3IzK4xs6lmNrWwsDBGcaU+i4szfnZKb568LJf8TTu47OkvOOa+D7jv7fks\nKigKO55Io5FQD/Y/DDgZaA58bmaT3X1B5ZXcfSwwFiA3N1c/D5uwUw9vz+S7Tub/5hUwflo+T36y\nhMc/WszgrHTGDMvizEGdaJ2SFHZMkQYrlkVhFdCl0uOsYFll+cAGd98ObDezj4HBwAJE9qNZQjyj\nBnZk1MCOFBbt5vXpqxift4rfvD6H/35zLif3bc+YYVmc0CeTxHgdYCdSExaroznMLIHIl/vJRIrB\nl8DF7j6SE8FWAAAQc0lEQVSn0jr9gEeAkUAS8AVwobvP3t92c3NzferUqTHJLA3bnNVbGD9tFa9P\nX8WG7Xtom5LE6JxOnDcsi/6d0sOOJxIqM5vm7rkHWi9mLQV3LzGzG4B3gXjgaXefY2bXBs8/7u7z\nzOwdYCZQBjxVXUEQqU7/Tun075TOnaP68tHXhYzPy+fZySv426fL6NshjfOGZXFWTmcy05qFHVWk\n3opZSyFW1FKQmti8Yw9vzFjNy3mrmLFyM/Fxxnd6ZzJmaBYn92tHcmJ82BFF6kS0LQUVBWkyFhUU\nMT5vFa/mrWLt1l20TE7gzMGdGDMsiyFdWmFmYUcUiRkVBZH9KC1zPlu8npen5fPunLXsKi4jOzOF\nMUOzOGdIZzq1ah52RJFap6IgEoWiXcVMmLWG8dNW8cWyjZjBMT0yGDOsMyP7d6BFUthHbYvUDhUF\nkRpasWEH4/PyeeWrfFZu3ElKUuTQ1zHDsjiiWxvi4tS9JA2XioLIQSorc75ctpHxeflMmLWWbbtL\nyGrdnHOHZjFmaGe6tk0JO6JIjakoiNSCnXtKeXfOWsbn5TNp0XrcYXi31owZmsWoQR1pmZwYdkSR\nqKgoiNSy1Zt38upXqxifl8+Swu00S4hjZP8OnDcsi2N6ZhCv7iWpx1QURGLE3Zm+cjPj8/J5Y8Ya\ntuwspkPLZM4a0okT+7Qjp0srnf8g9Y6Kgkgd2F1SWjE538RgOu+k+DhyurRiRHYbRnRvy9CurXQU\nk4RORUGkjm3ZUcwXyzbyxdINTFm6kdmrtlDmkBBnDMpK54jubRmR3Ybcrq1J01iE1DEVBZGQFe0q\nZuryTXyxdCNTlmxgZv4WSsqcOIMBndMZ0T3SkhjerQ3pLVQkJLZUFETqmR17SshbvpkpQUti+orN\n7Cktwwz6dmjJiO5tODK7DcO7taFtqibtk9qloiBSz+0qLmX6ys1MWbKRL5ZtYNryTewqLgOgV7vU\nijGJEdltaJeWHHJaaehUFEQamD0lZcxatZnJSzYyZelGpi3byPY9pQBkZ6RwRPc2FYVC8zNJTako\niDRwJaVlzFm9NdLdtGQjXyzbSNGuEgC6tGnOiO5tOaJ7G47s3pYubZprlleploqCSCNTWubMX7uV\nKUs2MmXpBr5YupFNO4oB6JieHBm4zo4UiuyMFBUJ2YuKgkgjV1bmLCrcxpQlG5i8dCNTlmxk/bbd\nAGSmNQtaEW04ontberZL1RnXTZyKgkgT4+4sXb+dKcEhsFOWbmTNll0AJCXE0SMzlV7tUundPpWe\n7dLo1T6Vrm1akBAfF3JyqQsqCiJNnLuTv2knXyzdyIJ1RSxYV8TCgm3kb9pZsU5SfBzZmSn0ap+2\nV8Ho1lbForGJtijo3HuRRsrM6NKmBV3atNhr+fbdJSwu3MaCddtYWFDEwnXbmL5yE2/MWF2xTmK8\nkZ2RSq/2qfRql0bv9pH7XdumkKhi0aipKIg0MSnNEhiU1YpBWa32Wr5jTwmLC7ZXtCgWFRQxM38L\nb81aQ3mHQmK80T0jhV5B91N5wejaNoWkBBWLxkBFQUQAaJGUwMCsdAZmpe+1fOeeUhYXRloVC9Zt\nY+G6bcxevYUJs78pFglxQbEICkWv9qn0bp9GNxWLBkdFQUSq1TwpngGd0xnQee9isau4lEUF21hU\nsK2idTF39Vbemb2WskrFoltGCr3aRQa5e7WPFIzuGSk0S9D04vWRioKIHJTkxP0Xi8WFkWKxcF2k\nYHy9toh353xTLOLjjK5tW9AzM5XszFR6ZKaQnZlKz8xUTQ4YMhUFEalVyYnx9O+UTv9O3y4WS9dH\nxizKWxdLCrfz4dcFFJd+cxRk25QkemSm0qNdCtkZ3/zNat1cR0TVARUFEakTyYnx9OvYkn4dW+61\nvKS0jJWbdrKkcBuLC7expHA7iwu38d6cdWzYvrJivaT4OLq2bUGPzFSyM1OCwhG5r2tl1x4VBREJ\nVUJ8HN0zUuiekcLJ/drv9dym7XtYsn4bi4NCsaRwOwsKivjPvHWUlH3TushMa0Z2RkqkSAR/e2am\n0qlVc53JXUMqCiJSb7VOSWJYShuGdW2z1/Li0jJWbNxR0aqItDK2M2HWGjYH80FB5Ezu7IyUipbF\nN39TSW2mr7+q6FMRkQYnMT4ybUePzFROZe/Wxcbte/YqFEsKtzFvTRHvzllHaaXWRfuWzSrGLHpU\nGvDulN6cuCbculBREJFGpU1KEm1SIlewq2xPSRkrNm5nUcH2SJdU8Pff01ezNZiSHCA5Ma7ibO6e\nmcHfdk3nbG4VBRFpEpIS4ujZLo2e7dL2Wu7ubNi+h8UF34xdLC7cxtRlm3h9+jdTf5SfoNczOOei\nR7vIiXrZmSkkJzaecy5UFESkSTMzMlKbkZHajBHZbfd6bvvuEpYUbmdhQeQw2oUF25i/zzkXcQZd\n2rTYq1CU32+I4xYxTWxmpwF/AuKBp9z9vv2sNxz4HLjQ3V+OZSYRkWilNKt66o9dxaUs27C94gS9\n8jO7P1pQuNc5F53Sk78pFEE3VK92qbRqkVTXbyVqMSsKZhYPPAqcCuQDX5rZv919bhXr3Q+8F6ss\nIiK1KTkxnr4dWtK3w7fPuVixcUcwoWBwVndBEc9/sYKdxaUV62WkJgUFIq2iUPRsl0pmWrPQr5gX\ny5bCEcAid18CYGYvAGcBc/dZ70ZgPDA8hllERGIuIT6O7OBIppH9v1leVuas2ryTRYXbWBRMWb6o\nYBuvTV9Vcd1tgJbJCRXFolf78u6o1Do9IiqWRaEzsLLS43xgROUVzKwzcA5wItUUBTO7BrgG4LDD\nDju4NG/fAWtnHdxrRUQOQRzQJbidWL6wOXhXp7jU2bmnlJ3FJezcU8qOzaXsKiileGakGyofWG1G\n88R4krIG0+fyR2OaNexRkD8Ct7t7WXVNJncfC4yFyJXX6iibiEhMGUZSvJHUPI705ntP1VFcVhYU\ni9KKv3VxocxYFoVVRApjuaxgWWW5wAtBQcgARplZibu/VutpTq9yjFtEpF5KDG4tD7RiLYtlUfgS\n6GVm3YkUgwuBiyuv4O7dy++b2TjgzZgUBBERiUrMioK7l5jZDcC7RA5Jfdrd55jZtcHzj8dq3yIi\ncnBiOqbg7hOACfssq7IYuPvlscwiIiIH1vgn8hARkaipKIiISAUVBRERqaCiICIiFVQURESkgnld\nnCJXi8ysEFh+kC/PANbXYpzaUl9zQf3Nplw1o1w10xhzdXX3zAOt1OCKwqEws6nunht2jn3V11xQ\nf7MpV80oV8005VzqPhIRkQoqCiIiUqGpFYWxYQfYj/qaC+pvNuWqGeWqmSabq0mNKYiISPWaWktB\nRESqoaIgIiIVmkRRMLOnzazAzGaHnaUyM+tiZh+a2Vwzm2NmPw07E4CZJZvZF2Y2I8j127AzVWZm\n8Wb2lZm9GXaWcma2zMxmmdl0M5sadp5yZtbKzF42s/lmNs/MjqoHmfoEn1P5bauZ/SzsXABmdnPw\nb362mT1vZslhZwIws58GmebE+rNqEmMKZnY8sA34u7sPCDtPOTPrCHR09zwzSwOmAWe7+9yQcxmQ\n4u7bzCwRmAT81N0nh5mrnJndQuSqfS3d/Yyw80CkKAC57l6vTngys2eAT9z9KTNLAlq4++awc5Uz\ns3giF+Ea4e4He1JqbWXpTOTf+uHuvtPM/gVMcPdxIecaALwAHAHsAd4BrnX3RbHYX5NoKbj7x8DG\nsHPsy93XuHtecL8ImAd0DjcVeMS24GH5VQHrxa8HM8sCvgc8FXaW+s7M0oHjgb8CuPue+lQQAicD\ni8MuCJUkAM3NLAFoAawOOQ9AP2CKu+9w9xLgI+DcWO2sSRSFhsDMugFDgCnhJokIumimAwXA++5e\nL3IBfwRuA8rCDrIPB/5jZtPM7JqwwwS6A4XA34LutqfMLCXsUPu4EHg+7BAA7r4KeBBYAawBtrj7\ne+GmAmA2cJyZtTWzFsAooEusdqaiUA+YWSowHviZu28NOw+Au5e6ew6QBRwRNGFDZWZnAAXuPi3s\nLFU4Nvi8TgeuD7osw5YADAUec/chwHbgjnAjfSPozhoNvBR2FgAzaw2cRaSYdgJSzOzScFOBu88D\n7gfeI9J1NB0ojdX+VBRCFvTZjweedfdXws6zr6C74UPgtLCzAMcAo4P++xeAk8zsn+FGigh+ZeLu\nBcCrRPp/w5YP5Fdq5b1MpEjUF6cDee6+LuwggVOApe5e6O7FwCvA0SFnAsDd/+ruw9z9eGATsCBW\n+1JRCFEwoPtXYJ67/2/YecqZWaaZtQruNwdOBeaHmwrc/U53z3L3bkS6HT5w99B/yZlZSnCgAEH3\nzHeJNPlD5e5rgZVm1idYdDIQ6kEM+7iIetJ1FFgBHGlmLYL/N08mMs4XOjNrF/w9jMh4wnOx2ldC\nrDZcn5jZ88AJQIaZ5QN3u/tfw00FRH75/gCYFfTfA9zl7hNCzATQEXgmODIkDviXu9ebwz/rofbA\nq5HvERKA59z9nXAjVbgReDboqlkCXBFyHqCieJ4K/DjsLOXcfYqZvQzkASXAV9Sf6S7Gm1lboBi4\nPpYHDDSJQ1JFRCQ66j4SEZEKKgoiIlJBRUFERCqoKIiISAUVBRERqaCiICIiFVQURGrAzLrFegp2\nM7vczDodxOuuNbPLYpFJmo4mcfKaSANzOZEzor81Q6eZxbt7lfPeuPvjMc4lTYBaCtKgBL/U55nZ\nk8EFR94zs+ZmNtHMcoN1MoL5kcp/db9mZu8HF8K5wcxuCWYNnWxmbarZV08z+09wsaE8M+tRRZZP\ngufyzOzoYHlHM/s4uIDMbDM7Lph1dlzweJaZ3byffZ5H5FoRzwavbx7kvt/M8oDzzexqM/syyDU+\nmDkTM7vHzG4N7k8MXvOFmS0ws+MO/dOXpkBFQRqiXsCj7t4f2AyMOcD6A4jMFzMc+B2wI5g19HOg\nuu6WZ4P9DCYyMdqafZ4vAE5196HABcCfg+UXA+8Gs6YOJjKrZQ7Q2d0HuPtA4G9V7dDdXwamApe4\ne4677wye2uDuQ939BeAVdx8e5JoH/Gg/+RPc/QjgZ8Dd1bxPkQrqPpKGaKm7l88VNQ3odoD1Pwwu\nYlRkZluAN4Lls4BBVb0gmOCus7u/CuDuu4LllVdLBB4xsxwiUxn3DpZ/CTwdzID7mrtPN7MlQLaZ\nPQy8RWQa5Jp4sdL9AWb2P0ArIBV4dz+vKZ91N5rPSARQS0Eapt2V7pcS+XFTwjf/nve9rm7l9csq\nPS7j0H4Y3QysI9IayAWSoOJKf8cTuczkODO7zN03BetNBK6l5leO217p/jjghqDF8Vu+/X7Llb/P\n8s9I5IBUFKSxWAYMC+6fd6gbC1oW+WZ2NoCZNSvvu68kHVjj7mVEZruND9btCqxz9yeJfPkPNbMM\nIM7dxwO/ovrrGhQBadU8nwasCVoil9T83Ynsn4qCNBYPAj8xs6+AjFra5g+Am8xsJvAZ0GGf5/8C\n/NDMZgB9+ebX/AnAjCDLBcCfiFx7e2IwRfo/gTur2e844PHygeYqnv81kcu2fko9uM6FNC6aOltE\nRCqopSAiIhU0+CRNnpk9SuQqeJX9yd2rPGy0oe9XpDrqPhIRkQrqPhIRkQoqCiIiUkFFQUREKqgo\niIhIhf8PE8EaS1/0qLcAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure()\n", "plt.plot(df.train, label='Fast_Multi')\n", "plt.plot(df.train_gbdt, label='GBDT')\n", "plt.legend()\n", "plt.title('train score')\n", "plt.xlabel('num_class_train')\n", "plt.ylabel('multi log-loss')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure()\n", "plt.plot(df.valid, label='Fast_Multi')\n", "plt.plot(df.valid_gbdt, label='GBDT')\n", "plt.legend()\n", "plt.title('valid score')\n", "plt.xlabel('num_class_train')\n", "plt.ylabel('multi log-loss')\n", "plt.show()" ] }, { "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.6.2" } }, "nbformat": 4, "nbformat_minor": 2 }