{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "import pandas as pd\n", "import lightgbm as lgb\n", "import numpy as np\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.metrics import mean_absolute_error, mean_squared_error, mean_absolute_percentage_error, r2_score\n", "\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "#新增加的两行\n", "from pylab import mpl\n", "\n", "# 设置显示中文字体\n", "mpl.rcParams[\"font.sans-serif\"] = [\"SimHei\"]\n", "\n", "mpl.rcParams[\"axes.unicode_minus\"] = False" ] }, { "cell_type": "code", "execution_count": 2, "outputs": [ { "data": { "text/plain": " days 发电量(千瓦时) 供热量(吉焦) 机组运行时间(小时) 硫分(%) 脱硫剂使用量(吨) 脱硫设施运行时间(小时) \\\n0 2018-10-01 156796.0 6536.83 24.0 0.51 5.06 24.0 \n1 2018-10-02 133984.0 2484.64 24.0 0.51 5.04 24.0 \n2 2018-10-03 134023.0 3020.83 24.0 0.51 5.04 24.0 \n3 2018-10-04 124765.0 5599.23 24.0 0.51 5.03 24.0 \n4 2018-10-05 134414.0 4702.65 24.0 0.51 5.06 24.0 \n\n 脱硝还原剂消耗量(吨) 脱硝运行时间(小时) 燃料消耗量(吨) ... cSO2 cO2 \\\n0 2.98 24.0 323 ... 2.148473e+07 3.745944e+07 \n1 2.97 24.0 218 ... 1.587722e+07 2.832146e+07 \n2 2.95 24.0 212 ... 2.829086e+07 3.174159e+07 \n3 2.98 24.0 223 ... 1.030569e+07 2.511504e+07 \n4 3.01 24.0 243 ... 1.830254e+06 4.106346e+07 \n\n csmoke flow rNOx rO2 temp rSO2 \\\n0 6.519466e+05 162345.192917 28.981417 9.900000 51.250000 5.581667 \n1 3.656575e+05 140175.330833 22.220750 9.400000 50.679167 4.364167 \n2 5.181773e+05 154686.184167 24.816708 8.550000 52.808333 7.580000 \n3 2.299438e+06 120345.545833 21.875125 10.202083 48.854167 2.808958 \n4 6.230433e+06 162533.103542 25.605917 11.497917 45.783333 0.393333 \n\n rsmoke day_of_year \n0 0.209167 273 \n1 0.190417 274 \n2 0.139583 275 \n3 0.893333 276 \n4 2.141875 277 \n\n[5 rows x 165 columns]", "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
days发电量(千瓦时)供热量(吉焦)机组运行时间(小时)硫分(%)脱硫剂使用量(吨)脱硫设施运行时间(小时)脱硝还原剂消耗量(吨)脱硝运行时间(小时)燃料消耗量(吨)...cSO2cO2csmokeflowrNOxrO2temprSO2rsmokeday_of_year
02018-10-01156796.06536.8324.00.515.0624.02.9824.0323...2.148473e+073.745944e+076.519466e+05162345.19291728.9814179.90000051.2500005.5816670.209167273
12018-10-02133984.02484.6424.00.515.0424.02.9724.0218...1.587722e+072.832146e+073.656575e+05140175.33083322.2207509.40000050.6791674.3641670.190417274
22018-10-03134023.03020.8324.00.515.0424.02.9524.0212...2.829086e+073.174159e+075.181773e+05154686.18416724.8167088.55000052.8083337.5800000.139583275
32018-10-04124765.05599.2324.00.515.0324.02.9824.0223...1.030569e+072.511504e+072.299438e+06120345.54583321.87512510.20208348.8541672.8089580.893333276
42018-10-05134414.04702.6524.00.515.0624.03.0124.0243...1.830254e+064.106346e+076.230433e+06162533.10354225.60591711.49791745.7833330.3933332.141875277
\n

5 rows × 165 columns

\n
" }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "total_data = pd.read_csv('./data/train_data.csv')\n", "total_data.head()" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 3, "outputs": [], "source": [ "# 先去掉一些异常值\n", "use_data = total_data[(total_data['机组运行时间(小时)'] == 24) & (total_data['脱硝运行时间(小时)'] == 24)].set_index('days').drop(\n", " columns=['机组运行时间(小时)', '脱硫设施运行时间(小时)', '脱硝运行时间(小时)'])\n", "use_data['week_of_year'] = use_data.day_of_year / 7\n", "use_data.drop(columns=['day_of_year'], inplace=True)" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 4, "outputs": [ { "data": { "text/plain": "['rNOx', 'rO2', 'rSO2', 'rsmoke']" }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "r_cols = [x for x in use_data.columns if x.startswith('r')]\n", "r_cols" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 5, "outputs": [], "source": [ "for col in use_data.columns:\n", " if use_data[col].max() > 10:\n", " use_data[col] = np.log1p(use_data[col])\n", " if col == '燃料消耗量(吨)':\n", " use_data[col] = np.log1p(use_data[col])" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 6, "outputs": [ { "data": { "text/plain": "Index(['cNOx', 'cSO2', 'cO2', 'csmoke', 'flow', 'rNOx', 'rO2', 'temp', 'rSO2',\n 'rsmoke', 'week_of_year'],\n dtype='object')" }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "feature_cols = [x for x in use_data.columns if x != '燃料消耗量(吨)']\n", "feature_cols = [x for x in feature_cols if '(' not in x]\n", "feature_cols = use_data.columns[-11:]\n", "feature_cols" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 7, "outputs": [], "source": [ "train_data, valid_data = train_test_split(use_data, test_size=0.15, shuffle=True, random_state=666)" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 8, "outputs": [], "source": [ "X_train, Y_train = train_data[feature_cols], train_data['燃料消耗量(吨)']\n", "X_valid, Y_valid = valid_data[feature_cols], valid_data['燃料消耗量(吨)']\n", "X_test, Y_test = valid_data[feature_cols], valid_data['燃料消耗量(吨)']" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 9, "outputs": [], "source": [ "lgb_train = lgb.Dataset(X_train, Y_train)\n", "lgb_eval = lgb.Dataset(X_valid, Y_valid)\n", "lgb_test = lgb.Dataset(X_test, Y_test)" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 10, "outputs": [], "source": [ "params = {\n", " 'task': 'train',\n", " 'boosting_type': 'gbdt', # 设置提升类型\n", " 'objective': 'regression_l2', # 目标函数\n", " 'metric': {'rmse'}, # 评估函数\n", " 'max_depth': 10,\n", " 'num_leaves': 31, # 叶子节点数\n", " 'learning_rate': 0.01, # 学习速率\n", " 'feature_fraction': 0.9, # 建树的特征选择比例\n", " 'bagging_fraction': 0.8, # 建树的样本采样比例\n", " 'bagging_freq': 5, # k 意味着每 k 次迭代执行bagging\n", " 'verbose': -1 # <0 显示致命的, =0 显示错误 (警告), >0 显示信息\n", "}" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 11, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1]\tvalid_0's rmse: 0.0361047\n", "Training until validation scores don't improve for 100 rounds\n", "[2]\tvalid_0's rmse: 0.0359398\n", "[3]\tvalid_0's rmse: 0.0358123\n", "[4]\tvalid_0's rmse: 0.0356709\n", "[5]\tvalid_0's rmse: 0.0355485\n", "[6]\tvalid_0's rmse: 0.035388\n", "[7]\tvalid_0's rmse: 0.0352781\n", "[8]\tvalid_0's rmse: 0.0351619\n", "[9]\tvalid_0's rmse: 0.035026\n", "[10]\tvalid_0's rmse: 0.0348736\n", "[11]\tvalid_0's rmse: 0.0347371\n", "[12]\tvalid_0's rmse: 0.0346186\n", "[13]\tvalid_0's rmse: 0.0345018\n", "[14]\tvalid_0's rmse: 0.0343709\n", "[15]\tvalid_0's rmse: 0.0342329\n", "[16]\tvalid_0's rmse: 0.0341227\n", "[17]\tvalid_0's rmse: 0.0340256\n", "[18]\tvalid_0's rmse: 0.033924\n", "[19]\tvalid_0's rmse: 0.0338187\n", "[20]\tvalid_0's rmse: 0.0337153\n", "[21]\tvalid_0's rmse: 0.033616\n", "[22]\tvalid_0's rmse: 0.0335067\n", "[23]\tvalid_0's rmse: 0.0334041\n", "[24]\tvalid_0's rmse: 0.0332995\n", "[25]\tvalid_0's rmse: 0.0331921\n", "[26]\tvalid_0's rmse: 0.0330884\n", "[27]\tvalid_0's rmse: 0.032978\n", "[28]\tvalid_0's rmse: 0.0328855\n", "[29]\tvalid_0's rmse: 0.032781\n", "[30]\tvalid_0's rmse: 0.032678\n", "[31]\tvalid_0's rmse: 0.0325855\n", "[32]\tvalid_0's rmse: 0.0325005\n", "[33]\tvalid_0's rmse: 0.0324143\n", "[34]\tvalid_0's rmse: 0.0323269\n", "[35]\tvalid_0's rmse: 0.0322377\n", "[36]\tvalid_0's rmse: 0.0321433\n", "[37]\tvalid_0's rmse: 0.0320294\n", "[38]\tvalid_0's rmse: 0.0319328\n", "[39]\tvalid_0's rmse: 0.031826\n", "[40]\tvalid_0's rmse: 0.0317349\n", "[41]\tvalid_0's rmse: 0.0316664\n", "[42]\tvalid_0's rmse: 0.0315913\n", "[43]\tvalid_0's rmse: 0.0315254\n", "[44]\tvalid_0's rmse: 0.031468\n", "[45]\tvalid_0's rmse: 0.0314055\n", "[46]\tvalid_0's rmse: 0.0313306\n", "[47]\tvalid_0's rmse: 0.0312563\n", "[48]\tvalid_0's rmse: 0.0311767\n", "[49]\tvalid_0's rmse: 0.0311059\n", "[50]\tvalid_0's rmse: 0.0310381\n", "[51]\tvalid_0's rmse: 0.0309327\n", "[52]\tvalid_0's rmse: 0.0308338\n", "[53]\tvalid_0's rmse: 0.0307449\n", "[54]\tvalid_0's rmse: 0.030644\n", "[55]\tvalid_0's rmse: 0.030561\n", "[56]\tvalid_0's rmse: 0.0304835\n", "[57]\tvalid_0's rmse: 0.0304175\n", "[58]\tvalid_0's rmse: 0.0303561\n", "[59]\tvalid_0's rmse: 0.0302768\n", "[60]\tvalid_0's rmse: 0.0302058\n", "[61]\tvalid_0's rmse: 0.0301515\n", "[62]\tvalid_0's rmse: 0.0301012\n", "[63]\tvalid_0's rmse: 0.0300401\n", "[64]\tvalid_0's rmse: 0.0299948\n", "[65]\tvalid_0's rmse: 0.0299354\n", "[66]\tvalid_0's rmse: 0.0298821\n", "[67]\tvalid_0's rmse: 0.0298\n", "[68]\tvalid_0's rmse: 0.0297534\n", "[69]\tvalid_0's rmse: 0.0297084\n", "[70]\tvalid_0's rmse: 0.0296541\n", "[71]\tvalid_0's rmse: 0.0295918\n", "[72]\tvalid_0's rmse: 0.0295303\n", "[73]\tvalid_0's rmse: 0.0294699\n", "[74]\tvalid_0's rmse: 0.0294088\n", "[75]\tvalid_0's rmse: 0.0293493\n", "[76]\tvalid_0's rmse: 0.0293017\n", "[77]\tvalid_0's rmse: 0.0292553\n", "[78]\tvalid_0's rmse: 0.0292075\n", "[79]\tvalid_0's rmse: 0.029159\n", "[80]\tvalid_0's rmse: 0.0291097\n", "[81]\tvalid_0's rmse: 0.0290698\n", "[82]\tvalid_0's rmse: 0.0289998\n", "[83]\tvalid_0's rmse: 0.0289311\n", "[84]\tvalid_0's rmse: 0.0288581\n", "[85]\tvalid_0's rmse: 0.0288186\n", "[86]\tvalid_0's rmse: 0.0287897\n", "[87]\tvalid_0's rmse: 0.0287282\n", "[88]\tvalid_0's rmse: 0.0287014\n", "[89]\tvalid_0's rmse: 0.0286655\n", "[90]\tvalid_0's rmse: 0.0286396\n", "[91]\tvalid_0's rmse: 0.0286062\n", "[92]\tvalid_0's rmse: 0.0285594\n", "[93]\tvalid_0's rmse: 0.0285224\n", "[94]\tvalid_0's rmse: 0.0284815\n", "[95]\tvalid_0's rmse: 0.0284341\n", "[96]\tvalid_0's rmse: 0.0283903\n", "[97]\tvalid_0's rmse: 0.0283466\n", "[98]\tvalid_0's rmse: 0.0283241\n", "[99]\tvalid_0's rmse: 0.0282824\n", "[100]\tvalid_0's rmse: 0.028227\n", "[101]\tvalid_0's rmse: 0.0281932\n", "[102]\tvalid_0's rmse: 0.0281535\n", "[103]\tvalid_0's rmse: 0.0280806\n", "[104]\tvalid_0's rmse: 0.0280564\n", "[105]\tvalid_0's rmse: 0.0280251\n", "[106]\tvalid_0's rmse: 0.0280038\n", "[107]\tvalid_0's rmse: 0.0279761\n", "[108]\tvalid_0's rmse: 0.0279315\n", "[109]\tvalid_0's rmse: 0.0278758\n", "[110]\tvalid_0's rmse: 0.0278482\n", "[111]\tvalid_0's rmse: 0.0278085\n", "[112]\tvalid_0's rmse: 0.0277661\n", "[113]\tvalid_0's rmse: 0.0277092\n", "[114]\tvalid_0's rmse: 0.0276904\n", "[115]\tvalid_0's rmse: 0.0276367\n", "[116]\tvalid_0's rmse: 0.0276062\n", "[117]\tvalid_0's rmse: 0.0275664\n", "[118]\tvalid_0's rmse: 0.0275288\n", "[119]\tvalid_0's rmse: 0.0274919\n", "[120]\tvalid_0's rmse: 0.0274641\n", "[121]\tvalid_0's rmse: 0.0274399\n", "[122]\tvalid_0's rmse: 0.0274037\n", "[123]\tvalid_0's rmse: 0.0273689\n", "[124]\tvalid_0's rmse: 0.0273147\n", "[125]\tvalid_0's rmse: 0.0272632\n", "[126]\tvalid_0's rmse: 0.0272447\n", "[127]\tvalid_0's rmse: 0.0272158\n", "[128]\tvalid_0's rmse: 0.0271733\n", "[129]\tvalid_0's rmse: 0.0271393\n", "[130]\tvalid_0's rmse: 0.0270881\n", "[131]\tvalid_0's rmse: 0.0270768\n", "[132]\tvalid_0's rmse: 0.0270641\n", "[133]\tvalid_0's rmse: 0.0270439\n", "[134]\tvalid_0's rmse: 0.0270316\n", "[135]\tvalid_0's rmse: 0.0270212\n", "[136]\tvalid_0's rmse: 0.0270004\n", "[137]\tvalid_0's rmse: 0.0269842\n", "[138]\tvalid_0's rmse: 0.0269647\n", "[139]\tvalid_0's rmse: 0.0269451\n", "[140]\tvalid_0's rmse: 0.0269235\n", "[141]\tvalid_0's rmse: 0.0268934\n", "[142]\tvalid_0's rmse: 0.0268604\n", "[143]\tvalid_0's rmse: 0.0268295\n", "[144]\tvalid_0's rmse: 0.0268063\n", "[145]\tvalid_0's rmse: 0.0267889\n", "[146]\tvalid_0's rmse: 0.0267701\n", "[147]\tvalid_0's rmse: 0.0267576\n", "[148]\tvalid_0's rmse: 0.026751\n", "[149]\tvalid_0's rmse: 0.0267348\n", "[150]\tvalid_0's rmse: 0.0267302\n", "[151]\tvalid_0's rmse: 0.0266969\n", "[152]\tvalid_0's rmse: 0.0266743\n", "[153]\tvalid_0's rmse: 0.0266414\n", "[154]\tvalid_0's rmse: 0.0265964\n", "[155]\tvalid_0's rmse: 0.0265676\n", "[156]\tvalid_0's rmse: 0.0265464\n", "[157]\tvalid_0's rmse: 0.0265254\n", "[158]\tvalid_0's rmse: 0.0264972\n", "[159]\tvalid_0's rmse: 0.0264723\n", "[160]\tvalid_0's rmse: 0.0264595\n", "[161]\tvalid_0's rmse: 0.0264331\n", "[162]\tvalid_0's rmse: 0.0263998\n", "[163]\tvalid_0's rmse: 0.0263718\n", "[164]\tvalid_0's rmse: 0.0263317\n", "[165]\tvalid_0's rmse: 0.0263094\n", "[166]\tvalid_0's rmse: 0.0262948\n", "[167]\tvalid_0's rmse: 0.0262666\n", "[168]\tvalid_0's rmse: 0.0262506\n", "[169]\tvalid_0's rmse: 0.0262277\n", "[170]\tvalid_0's rmse: 0.0262051\n", "[171]\tvalid_0's rmse: 0.0261819\n", "[172]\tvalid_0's rmse: 0.0261827\n", "[173]\tvalid_0's rmse: 0.0261831\n", "[174]\tvalid_0's rmse: 0.0261771\n", "[175]\tvalid_0's rmse: 0.0261687\n", "[176]\tvalid_0's rmse: 0.0261259\n", "[177]\tvalid_0's rmse: 0.026084\n", "[178]\tvalid_0's rmse: 0.0260451\n", "[179]\tvalid_0's rmse: 0.0260044\n", "[180]\tvalid_0's rmse: 0.025966\n", "[181]\tvalid_0's rmse: 0.0259332\n", "[182]\tvalid_0's rmse: 0.0259013\n", "[183]\tvalid_0's rmse: 0.0258755\n", "[184]\tvalid_0's rmse: 0.0258449\n", "[185]\tvalid_0's rmse: 0.0258152\n", "[186]\tvalid_0's rmse: 0.0257944\n", "[187]\tvalid_0's rmse: 0.025773\n", "[188]\tvalid_0's rmse: 0.0257526\n", "[189]\tvalid_0's rmse: 0.0257327\n", "[190]\tvalid_0's rmse: 0.0257139\n", "[191]\tvalid_0's rmse: 0.0257102\n", "[192]\tvalid_0's rmse: 0.025705\n", "[193]\tvalid_0's rmse: 0.0256997\n", "[194]\tvalid_0's rmse: 0.0256948\n", "[195]\tvalid_0's rmse: 0.0256901\n", "[196]\tvalid_0's rmse: 0.0256608\n", "[197]\tvalid_0's rmse: 0.0256519\n", "[198]\tvalid_0's rmse: 0.0256216\n", "[199]\tvalid_0's rmse: 0.0255974\n", "[200]\tvalid_0's rmse: 0.0255765\n", "[201]\tvalid_0's rmse: 0.0255704\n", "[202]\tvalid_0's rmse: 0.0255596\n", "[203]\tvalid_0's rmse: 0.0255437\n", "[204]\tvalid_0's rmse: 0.0255339\n", "[205]\tvalid_0's rmse: 0.0255164\n", "[206]\tvalid_0's rmse: 0.025509\n", "[207]\tvalid_0's rmse: 0.0255068\n", "[208]\tvalid_0's rmse: 0.0255012\n", "[209]\tvalid_0's rmse: 0.0254911\n", "[210]\tvalid_0's rmse: 0.0254842\n", "[211]\tvalid_0's rmse: 0.0254678\n", "[212]\tvalid_0's rmse: 0.0254562\n", "[213]\tvalid_0's rmse: 0.0254432\n", "[214]\tvalid_0's rmse: 0.0254233\n", "[215]\tvalid_0's rmse: 0.0254261\n", "[216]\tvalid_0's rmse: 0.0254124\n", "[217]\tvalid_0's rmse: 0.0253979\n", "[218]\tvalid_0's rmse: 0.0253836\n", "[219]\tvalid_0's rmse: 0.0253722\n", "[220]\tvalid_0's rmse: 0.0253569\n", "[221]\tvalid_0's rmse: 0.0253374\n", "[222]\tvalid_0's rmse: 0.0253137\n", "[223]\tvalid_0's rmse: 0.025305\n", "[224]\tvalid_0's rmse: 0.0252874\n", "[225]\tvalid_0's rmse: 0.0252669\n", "[226]\tvalid_0's rmse: 0.0252575\n", "[227]\tvalid_0's rmse: 0.0252475\n", "[228]\tvalid_0's rmse: 0.0252367\n", "[229]\tvalid_0's rmse: 0.0252271\n", "[230]\tvalid_0's rmse: 0.0252202\n", "[231]\tvalid_0's rmse: 0.0252056\n", "[232]\tvalid_0's rmse: 0.0251975\n", "[233]\tvalid_0's rmse: 0.0251836\n", "[234]\tvalid_0's rmse: 0.0251704\n", "[235]\tvalid_0's rmse: 0.025157\n", "[236]\tvalid_0's rmse: 0.0251498\n", "[237]\tvalid_0's rmse: 0.0251478\n", "[238]\tvalid_0's rmse: 0.0251482\n", "[239]\tvalid_0's rmse: 0.0251432\n", "[240]\tvalid_0's rmse: 0.0251456\n", "[241]\tvalid_0's rmse: 0.025122\n", "[242]\tvalid_0's rmse: 0.0250987\n", "[243]\tvalid_0's rmse: 0.0250986\n", "[244]\tvalid_0's rmse: 0.0250787\n", "[245]\tvalid_0's rmse: 0.0250565\n", "[246]\tvalid_0's rmse: 0.0250366\n", "[247]\tvalid_0's rmse: 0.0250185\n", "[248]\tvalid_0's rmse: 0.0250045\n", "[249]\tvalid_0's rmse: 0.0249908\n", "[250]\tvalid_0's rmse: 0.0249759\n", "[251]\tvalid_0's rmse: 0.0249609\n", "[252]\tvalid_0's rmse: 0.0249443\n", "[253]\tvalid_0's rmse: 0.0249298\n", "[254]\tvalid_0's rmse: 0.024917\n", "[255]\tvalid_0's rmse: 0.0249109\n", "[256]\tvalid_0's rmse: 0.024898\n", "[257]\tvalid_0's rmse: 0.0248832\n", "[258]\tvalid_0's rmse: 0.024868\n", "[259]\tvalid_0's rmse: 0.0248641\n", "[260]\tvalid_0's rmse: 0.0248603\n", "[261]\tvalid_0's rmse: 0.0248412\n", "[262]\tvalid_0's rmse: 0.0248193\n", "[263]\tvalid_0's rmse: 0.0247979\n", "[264]\tvalid_0's rmse: 0.0247795\n", "[265]\tvalid_0's rmse: 0.0247607\n", "[266]\tvalid_0's rmse: 0.0247514\n", "[267]\tvalid_0's rmse: 0.024739\n", "[268]\tvalid_0's rmse: 0.0247273\n", "[269]\tvalid_0's rmse: 0.02472\n", "[270]\tvalid_0's rmse: 0.0247194\n", "[271]\tvalid_0's rmse: 0.0247061\n", "[272]\tvalid_0's rmse: 0.0246918\n", "[273]\tvalid_0's rmse: 0.0246791\n", "[274]\tvalid_0's rmse: 0.024662\n", "[275]\tvalid_0's rmse: 0.024653\n", "[276]\tvalid_0's rmse: 0.0246436\n", "[277]\tvalid_0's rmse: 0.0246298\n", "[278]\tvalid_0's rmse: 0.0246208\n", "[279]\tvalid_0's rmse: 0.0246118\n", "[280]\tvalid_0's rmse: 0.0245976\n", "[281]\tvalid_0's rmse: 0.0245997\n", "[282]\tvalid_0's rmse: 0.0246013\n", "[283]\tvalid_0's rmse: 0.0245843\n", "[284]\tvalid_0's rmse: 0.024582\n", "[285]\tvalid_0's rmse: 0.0245842\n", "[286]\tvalid_0's rmse: 0.0245838\n", "[287]\tvalid_0's rmse: 0.0245806\n", "[288]\tvalid_0's rmse: 0.0245793\n", "[289]\tvalid_0's rmse: 0.0245811\n", "[290]\tvalid_0's rmse: 0.0245856\n", "[291]\tvalid_0's rmse: 0.0245711\n", "[292]\tvalid_0's rmse: 0.0245609\n", "[293]\tvalid_0's rmse: 0.0245539\n", "[294]\tvalid_0's rmse: 0.0245484\n", "[295]\tvalid_0's rmse: 0.0245374\n", "[296]\tvalid_0's rmse: 0.0245338\n", "[297]\tvalid_0's rmse: 0.0245291\n", "[298]\tvalid_0's rmse: 0.0245297\n", "[299]\tvalid_0's rmse: 0.0245264\n", "[300]\tvalid_0's rmse: 0.0245232\n", "[301]\tvalid_0's rmse: 0.0245121\n", "[302]\tvalid_0's rmse: 0.0245017\n", "[303]\tvalid_0's rmse: 0.0244933\n", "[304]\tvalid_0's rmse: 0.0244827\n", "[305]\tvalid_0's rmse: 0.0244746\n", "[306]\tvalid_0's rmse: 0.0244711\n", "[307]\tvalid_0's rmse: 0.0244666\n", "[308]\tvalid_0's rmse: 0.0244632\n", "[309]\tvalid_0's rmse: 0.024459\n", "[310]\tvalid_0's rmse: 0.0244469\n", "[311]\tvalid_0's rmse: 0.024441\n", "[312]\tvalid_0's rmse: 0.0244331\n", "[313]\tvalid_0's rmse: 0.0244258\n", "[314]\tvalid_0's rmse: 0.0244196\n", "[315]\tvalid_0's rmse: 0.0244152\n", "[316]\tvalid_0's rmse: 0.0244001\n", "[317]\tvalid_0's rmse: 0.0243892\n", "[318]\tvalid_0's rmse: 0.0243732\n", "[319]\tvalid_0's rmse: 0.024361\n", "[320]\tvalid_0's rmse: 0.0243533\n", "[321]\tvalid_0's rmse: 0.0243482\n", "[322]\tvalid_0's rmse: 0.0243482\n", "[323]\tvalid_0's rmse: 0.0243467\n", "[324]\tvalid_0's rmse: 0.0243414\n", "[325]\tvalid_0's rmse: 0.0243344\n", "[326]\tvalid_0's rmse: 0.0243312\n", "[327]\tvalid_0's rmse: 0.0243232\n", "[328]\tvalid_0's rmse: 0.0243171\n", "[329]\tvalid_0's rmse: 0.0243081\n", "[330]\tvalid_0's rmse: 0.0243013\n", "[331]\tvalid_0's rmse: 0.0243076\n", "[332]\tvalid_0's rmse: 0.0243055\n", "[333]\tvalid_0's rmse: 0.0243036\n", "[334]\tvalid_0's rmse: 0.0243086\n", "[335]\tvalid_0's rmse: 0.0243114\n", "[336]\tvalid_0's rmse: 0.024314\n", "[337]\tvalid_0's rmse: 0.0243133\n", "[338]\tvalid_0's rmse: 0.0243138\n", "[339]\tvalid_0's rmse: 0.0243095\n", "[340]\tvalid_0's rmse: 0.024309\n", "[341]\tvalid_0's rmse: 0.0242939\n", "[342]\tvalid_0's rmse: 0.0242814\n", "[343]\tvalid_0's rmse: 0.0242711\n", "[344]\tvalid_0's rmse: 0.02426\n", "[345]\tvalid_0's rmse: 0.0242457\n", "[346]\tvalid_0's rmse: 0.0242411\n", "[347]\tvalid_0's rmse: 0.024246\n", "[348]\tvalid_0's rmse: 0.0242413\n", "[349]\tvalid_0's rmse: 0.0242367\n", "[350]\tvalid_0's rmse: 0.024233\n", "[351]\tvalid_0's rmse: 0.0242264\n", "[352]\tvalid_0's rmse: 0.0242207\n", "[353]\tvalid_0's rmse: 0.0242034\n", "[354]\tvalid_0's rmse: 0.0241972\n", "[355]\tvalid_0's rmse: 0.0241909\n", "[356]\tvalid_0's rmse: 0.0241854\n", "[357]\tvalid_0's rmse: 0.0241721\n", "[358]\tvalid_0's rmse: 0.024171\n", "[359]\tvalid_0's rmse: 0.0241659\n", "[360]\tvalid_0's rmse: 0.0241622\n", "[361]\tvalid_0's rmse: 0.0241609\n", "[362]\tvalid_0's rmse: 0.0241598\n", "[363]\tvalid_0's rmse: 0.0241542\n", "[364]\tvalid_0's rmse: 0.024147\n", "[365]\tvalid_0's rmse: 0.0241429\n", "[366]\tvalid_0's rmse: 0.0241384\n", "[367]\tvalid_0's rmse: 0.0241319\n", "[368]\tvalid_0's rmse: 0.0241298\n", "[369]\tvalid_0's rmse: 0.0241277\n", "[370]\tvalid_0's rmse: 0.0241209\n", "[371]\tvalid_0's rmse: 0.0241138\n", "[372]\tvalid_0's rmse: 0.0241083\n", "[373]\tvalid_0's rmse: 0.0241056\n", "[374]\tvalid_0's rmse: 0.0240979\n", "[375]\tvalid_0's rmse: 0.0240917\n", "[376]\tvalid_0's rmse: 0.0240815\n", "[377]\tvalid_0's rmse: 0.0240701\n", "[378]\tvalid_0's rmse: 0.0240618\n", "[379]\tvalid_0's rmse: 0.0240512\n", "[380]\tvalid_0's rmse: 0.0240431\n", "[381]\tvalid_0's rmse: 0.0240451\n", "[382]\tvalid_0's rmse: 0.0240391\n", "[383]\tvalid_0's rmse: 0.0240355\n", "[384]\tvalid_0's rmse: 0.0240338\n", "[385]\tvalid_0's rmse: 0.0240274\n", "[386]\tvalid_0's rmse: 0.0240288\n", "[387]\tvalid_0's rmse: 0.0240293\n", "[388]\tvalid_0's rmse: 0.0240304\n", "[389]\tvalid_0's rmse: 0.0240307\n", "[390]\tvalid_0's rmse: 0.0240326\n", "[391]\tvalid_0's rmse: 0.0240365\n", "[392]\tvalid_0's rmse: 0.0240393\n", "[393]\tvalid_0's rmse: 0.0240363\n", "[394]\tvalid_0's rmse: 0.0240391\n", "[395]\tvalid_0's rmse: 0.0240362\n", "[396]\tvalid_0's rmse: 0.024031\n", "[397]\tvalid_0's rmse: 0.0240299\n", "[398]\tvalid_0's rmse: 0.0240285\n", "[399]\tvalid_0's rmse: 0.0240235\n", "[400]\tvalid_0's rmse: 0.0240225\n", "[401]\tvalid_0's rmse: 0.0240136\n", "[402]\tvalid_0's rmse: 0.0240105\n", "[403]\tvalid_0's rmse: 0.0240043\n", "[404]\tvalid_0's rmse: 0.0239983\n", "[405]\tvalid_0's rmse: 0.0239935\n", "[406]\tvalid_0's rmse: 0.0239919\n", "[407]\tvalid_0's rmse: 0.0239874\n", "[408]\tvalid_0's rmse: 0.0239845\n", "[409]\tvalid_0's rmse: 0.0239855\n", "[410]\tvalid_0's rmse: 0.0239827\n", "[411]\tvalid_0's rmse: 0.023985\n", "[412]\tvalid_0's rmse: 0.0239874\n", "[413]\tvalid_0's rmse: 0.0239847\n", "[414]\tvalid_0's rmse: 0.0239744\n", "[415]\tvalid_0's rmse: 0.0239761\n", "[416]\tvalid_0's rmse: 0.0239762\n", "[417]\tvalid_0's rmse: 0.0239748\n", "[418]\tvalid_0's rmse: 0.0239737\n", "[419]\tvalid_0's rmse: 0.0239707\n", "[420]\tvalid_0's rmse: 0.0239652\n", "[421]\tvalid_0's rmse: 0.023964\n", "[422]\tvalid_0's rmse: 0.0239644\n", "[423]\tvalid_0's rmse: 0.0239657\n", "[424]\tvalid_0's rmse: 0.0239646\n", "[425]\tvalid_0's rmse: 0.0239603\n", "[426]\tvalid_0's rmse: 0.0239571\n", "[427]\tvalid_0's rmse: 0.0239556\n", "[428]\tvalid_0's rmse: 0.023954\n", "[429]\tvalid_0's rmse: 0.0239533\n", "[430]\tvalid_0's rmse: 0.0239492\n", "[431]\tvalid_0's rmse: 0.023952\n", "[432]\tvalid_0's rmse: 0.0239514\n", "[433]\tvalid_0's rmse: 0.0239484\n", "[434]\tvalid_0's rmse: 0.0239519\n", "[435]\tvalid_0's rmse: 0.0239532\n", "[436]\tvalid_0's rmse: 0.023957\n", "[437]\tvalid_0's rmse: 0.0239521\n", "[438]\tvalid_0's rmse: 0.023949\n", "[439]\tvalid_0's rmse: 0.023945\n", "[440]\tvalid_0's rmse: 0.0239412\n", "[441]\tvalid_0's rmse: 0.0239376\n", "[442]\tvalid_0's rmse: 0.0239317\n", "[443]\tvalid_0's rmse: 0.0239337\n", "[444]\tvalid_0's rmse: 0.0239286\n", "[445]\tvalid_0's rmse: 0.0239233\n", "[446]\tvalid_0's rmse: 0.0239192\n", "[447]\tvalid_0's rmse: 0.0239162\n", "[448]\tvalid_0's rmse: 0.0239115\n", "[449]\tvalid_0's rmse: 0.0239118\n", "[450]\tvalid_0's rmse: 0.0239079\n", "[451]\tvalid_0's rmse: 0.0239096\n", "[452]\tvalid_0's rmse: 0.0239117\n", "[453]\tvalid_0's rmse: 0.0239158\n", "[454]\tvalid_0's rmse: 0.023916\n", "[455]\tvalid_0's rmse: 0.0239156\n", "[456]\tvalid_0's rmse: 0.0239162\n", "[457]\tvalid_0's rmse: 0.0239135\n", "[458]\tvalid_0's rmse: 0.0239121\n", "[459]\tvalid_0's rmse: 0.0239084\n", "[460]\tvalid_0's rmse: 0.0239069\n", "[461]\tvalid_0's rmse: 0.0239055\n", "[462]\tvalid_0's rmse: 0.0239052\n", "[463]\tvalid_0's rmse: 0.0239013\n", "[464]\tvalid_0's rmse: 0.0239009\n", "[465]\tvalid_0's rmse: 0.0239033\n", "[466]\tvalid_0's rmse: 0.0239029\n", "[467]\tvalid_0's rmse: 0.0239066\n", "[468]\tvalid_0's rmse: 0.0239107\n", "[469]\tvalid_0's rmse: 0.023904\n", "[470]\tvalid_0's rmse: 0.0239081\n", "[471]\tvalid_0's rmse: 0.0239038\n", "[472]\tvalid_0's rmse: 0.0238995\n", "[473]\tvalid_0's rmse: 0.0238995\n", "[474]\tvalid_0's rmse: 0.0238973\n", "[475]\tvalid_0's rmse: 0.0238976\n", "[476]\tvalid_0's rmse: 0.0238905\n", "[477]\tvalid_0's rmse: 0.0238839\n", "[478]\tvalid_0's rmse: 0.0238772\n", "[479]\tvalid_0's rmse: 0.0238707\n", "[480]\tvalid_0's rmse: 0.0238649\n", "[481]\tvalid_0's rmse: 0.0238679\n", "[482]\tvalid_0's rmse: 0.0238709\n", "[483]\tvalid_0's rmse: 0.023873\n", "[484]\tvalid_0's rmse: 0.0238779\n", "[485]\tvalid_0's rmse: 0.0238804\n", "[486]\tvalid_0's rmse: 0.0238815\n", "[487]\tvalid_0's rmse: 0.023884\n", "[488]\tvalid_0's rmse: 0.023886\n", "[489]\tvalid_0's rmse: 0.0238828\n", "[490]\tvalid_0's rmse: 0.0238858\n", "[491]\tvalid_0's rmse: 0.0238856\n", "[492]\tvalid_0's rmse: 0.0238792\n", "[493]\tvalid_0's rmse: 0.0238776\n", "[494]\tvalid_0's rmse: 0.023879\n", "[495]\tvalid_0's rmse: 0.0238802\n", "[496]\tvalid_0's rmse: 0.0238852\n", "[497]\tvalid_0's rmse: 0.0238801\n", "[498]\tvalid_0's rmse: 0.0238723\n", "[499]\tvalid_0's rmse: 0.0238779\n", "[500]\tvalid_0's rmse: 0.0238718\n", "[501]\tvalid_0's rmse: 0.0238677\n", "[502]\tvalid_0's rmse: 0.0238637\n", "[503]\tvalid_0's rmse: 0.0238597\n", "[504]\tvalid_0's rmse: 0.0238519\n", "[505]\tvalid_0's rmse: 0.0238441\n", "[506]\tvalid_0's rmse: 0.0238405\n", "[507]\tvalid_0's rmse: 0.0238425\n", "[508]\tvalid_0's rmse: 0.0238443\n", "[509]\tvalid_0's rmse: 0.0238466\n", "[510]\tvalid_0's rmse: 0.0238484\n", "[511]\tvalid_0's rmse: 0.0238456\n", "[512]\tvalid_0's rmse: 0.0238436\n", "[513]\tvalid_0's rmse: 0.0238409\n", "[514]\tvalid_0's rmse: 0.0238361\n", "[515]\tvalid_0's rmse: 0.0238312\n", "[516]\tvalid_0's rmse: 0.0238255\n", "[517]\tvalid_0's rmse: 0.0238274\n", "[518]\tvalid_0's rmse: 0.0238291\n", "[519]\tvalid_0's rmse: 0.0238299\n", "[520]\tvalid_0's rmse: 0.023826\n", "[521]\tvalid_0's rmse: 0.023821\n", "[522]\tvalid_0's rmse: 0.0238205\n", "[523]\tvalid_0's rmse: 0.0238157\n", "[524]\tvalid_0's rmse: 0.0238112\n", "[525]\tvalid_0's rmse: 0.0238057\n", "[526]\tvalid_0's rmse: 0.0237963\n", "[527]\tvalid_0's rmse: 0.0237898\n", "[528]\tvalid_0's rmse: 0.0237887\n", "[529]\tvalid_0's rmse: 0.0237883\n", "[530]\tvalid_0's rmse: 0.0237876\n", "[531]\tvalid_0's rmse: 0.0237791\n", "[532]\tvalid_0's rmse: 0.0237714\n", "[533]\tvalid_0's rmse: 0.0237664\n", "[534]\tvalid_0's rmse: 0.0237582\n", "[535]\tvalid_0's rmse: 0.0237576\n", "[536]\tvalid_0's rmse: 0.0237524\n", "[537]\tvalid_0's rmse: 0.0237463\n", "[538]\tvalid_0's rmse: 0.023739\n", "[539]\tvalid_0's rmse: 0.0237339\n", "[540]\tvalid_0's rmse: 0.0237297\n", "[541]\tvalid_0's rmse: 0.0237259\n", "[542]\tvalid_0's rmse: 0.0237235\n", "[543]\tvalid_0's rmse: 0.0237196\n", "[544]\tvalid_0's rmse: 0.023717\n", "[545]\tvalid_0's rmse: 0.0237148\n", "[546]\tvalid_0's rmse: 0.0237126\n", "[547]\tvalid_0's rmse: 0.0237099\n", "[548]\tvalid_0's rmse: 0.0237077\n", "[549]\tvalid_0's rmse: 0.0237091\n", "[550]\tvalid_0's rmse: 0.0237079\n", "[551]\tvalid_0's rmse: 0.0237111\n", "[552]\tvalid_0's rmse: 0.0237143\n", "[553]\tvalid_0's rmse: 0.0237081\n", "[554]\tvalid_0's rmse: 0.0237075\n", "[555]\tvalid_0's rmse: 0.0237112\n", "[556]\tvalid_0's rmse: 0.0237092\n", "[557]\tvalid_0's rmse: 0.0237085\n", "[558]\tvalid_0's rmse: 0.0237046\n", "[559]\tvalid_0's rmse: 0.0237071\n", "[560]\tvalid_0's rmse: 0.0237038\n", "[561]\tvalid_0's rmse: 0.0237053\n", "[562]\tvalid_0's rmse: 0.0237058\n", "[563]\tvalid_0's rmse: 0.0237081\n", "[564]\tvalid_0's rmse: 0.0237097\n", "[565]\tvalid_0's rmse: 0.0237125\n", "[566]\tvalid_0's rmse: 0.02371\n", "[567]\tvalid_0's rmse: 0.0237057\n", "[568]\tvalid_0's rmse: 0.0237037\n", "[569]\tvalid_0's rmse: 0.0236994\n", "[570]\tvalid_0's rmse: 0.0236973\n", "[571]\tvalid_0's rmse: 0.0237007\n", "[572]\tvalid_0's rmse: 0.0237056\n", "[573]\tvalid_0's rmse: 0.0237081\n", "[574]\tvalid_0's rmse: 0.0237099\n", "[575]\tvalid_0's rmse: 0.0237144\n", "[576]\tvalid_0's rmse: 0.0237134\n", "[577]\tvalid_0's rmse: 0.0237125\n", "[578]\tvalid_0's rmse: 0.023717\n", "[579]\tvalid_0's rmse: 0.0237166\n", "[580]\tvalid_0's rmse: 0.023721\n", "[581]\tvalid_0's rmse: 0.0237188\n", "[582]\tvalid_0's rmse: 0.0237185\n", "[583]\tvalid_0's rmse: 0.0237182\n", "[584]\tvalid_0's rmse: 0.0237154\n", "[585]\tvalid_0's rmse: 0.0237144\n", "[586]\tvalid_0's rmse: 0.0237223\n", "[587]\tvalid_0's rmse: 0.0237258\n", "[588]\tvalid_0's rmse: 0.0237284\n", "[589]\tvalid_0's rmse: 0.0237351\n", "[590]\tvalid_0's rmse: 0.0237396\n", "[591]\tvalid_0's rmse: 0.0237399\n", "[592]\tvalid_0's rmse: 0.0237394\n", "[593]\tvalid_0's rmse: 0.0237347\n", "[594]\tvalid_0's rmse: 0.0237336\n", "[595]\tvalid_0's rmse: 0.0237299\n", "[596]\tvalid_0's rmse: 0.0237252\n", "[597]\tvalid_0's rmse: 0.0237205\n", "[598]\tvalid_0's rmse: 0.0237181\n", "[599]\tvalid_0's rmse: 0.0237155\n", "[600]\tvalid_0's rmse: 0.0237113\n", "[601]\tvalid_0's rmse: 0.0237135\n", "[602]\tvalid_0's rmse: 0.0237156\n", "[603]\tvalid_0's rmse: 0.0237178\n", "[604]\tvalid_0's rmse: 0.0237191\n", "[605]\tvalid_0's rmse: 0.0237146\n", "[606]\tvalid_0's rmse: 0.0237114\n", "[607]\tvalid_0's rmse: 0.0237142\n", "[608]\tvalid_0's rmse: 0.023715\n", "[609]\tvalid_0's rmse: 0.0237133\n", "[610]\tvalid_0's rmse: 0.0237139\n", "[611]\tvalid_0's rmse: 0.0237155\n", "[612]\tvalid_0's rmse: 0.0237169\n", "[613]\tvalid_0's rmse: 0.0237189\n", "[614]\tvalid_0's rmse: 0.0237202\n", "[615]\tvalid_0's rmse: 0.0237216\n", "[616]\tvalid_0's rmse: 0.0237216\n", "[617]\tvalid_0's rmse: 0.0237165\n", "[618]\tvalid_0's rmse: 0.0237185\n", "[619]\tvalid_0's rmse: 0.0237152\n", "[620]\tvalid_0's rmse: 0.0237125\n", "[621]\tvalid_0's rmse: 0.0237107\n", "[622]\tvalid_0's rmse: 0.0237079\n", "[623]\tvalid_0's rmse: 0.0237081\n", "[624]\tvalid_0's rmse: 0.0237024\n", "[625]\tvalid_0's rmse: 0.0237027\n", "[626]\tvalid_0's rmse: 0.0237078\n", "[627]\tvalid_0's rmse: 0.0237062\n", "[628]\tvalid_0's rmse: 0.0237076\n", "[629]\tvalid_0's rmse: 0.0237107\n", "[630]\tvalid_0's rmse: 0.0237141\n", "[631]\tvalid_0's rmse: 0.02372\n", "[632]\tvalid_0's rmse: 0.0237201\n", "[633]\tvalid_0's rmse: 0.0237182\n", "[634]\tvalid_0's rmse: 0.023717\n", "[635]\tvalid_0's rmse: 0.023711\n", "[636]\tvalid_0's rmse: 0.0237045\n", "[637]\tvalid_0's rmse: 0.0237\n", "[638]\tvalid_0's rmse: 0.0236946\n", "[639]\tvalid_0's rmse: 0.0236963\n", "[640]\tvalid_0's rmse: 0.023692\n", "[641]\tvalid_0's rmse: 0.0236891\n", "[642]\tvalid_0's rmse: 0.0236864\n", "[643]\tvalid_0's rmse: 0.0236813\n", "[644]\tvalid_0's rmse: 0.0236781\n", "[645]\tvalid_0's rmse: 0.0236752\n", "[646]\tvalid_0's rmse: 0.0236743\n", "[647]\tvalid_0's rmse: 0.0236729\n", "[648]\tvalid_0's rmse: 0.0236707\n", "[649]\tvalid_0's rmse: 0.0236687\n", "[650]\tvalid_0's rmse: 0.0236681\n", "[651]\tvalid_0's rmse: 0.0236664\n", "[652]\tvalid_0's rmse: 0.0236637\n", "[653]\tvalid_0's rmse: 0.0236597\n", "[654]\tvalid_0's rmse: 0.0236582\n", "[655]\tvalid_0's rmse: 0.0236561\n", "[656]\tvalid_0's rmse: 0.0236593\n", "[657]\tvalid_0's rmse: 0.0236551\n", "[658]\tvalid_0's rmse: 0.0236587\n", "[659]\tvalid_0's rmse: 0.0236519\n", "[660]\tvalid_0's rmse: 0.0236453\n", "[661]\tvalid_0's rmse: 0.0236416\n", "[662]\tvalid_0's rmse: 0.023636\n", "[663]\tvalid_0's rmse: 0.0236345\n", "[664]\tvalid_0's rmse: 0.0236303\n", "[665]\tvalid_0's rmse: 0.0236267\n", "[666]\tvalid_0's rmse: 0.0236234\n", "[667]\tvalid_0's rmse: 0.0236212\n", "[668]\tvalid_0's rmse: 0.0236192\n", "[669]\tvalid_0's rmse: 0.023616\n", "[670]\tvalid_0's rmse: 0.0236154\n", "[671]\tvalid_0's rmse: 0.0236192\n", "[672]\tvalid_0's rmse: 0.0236205\n", "[673]\tvalid_0's rmse: 0.0236209\n", "[674]\tvalid_0's rmse: 0.0236217\n", "[675]\tvalid_0's rmse: 0.0236231\n", "[676]\tvalid_0's rmse: 0.0236199\n", "[677]\tvalid_0's rmse: 0.0236168\n", "[678]\tvalid_0's rmse: 0.0236158\n", "[679]\tvalid_0's rmse: 0.0236132\n", "[680]\tvalid_0's rmse: 0.023615\n", "[681]\tvalid_0's rmse: 0.0236104\n", "[682]\tvalid_0's rmse: 0.0236094\n", "[683]\tvalid_0's rmse: 0.023608\n", "[684]\tvalid_0's rmse: 0.0236061\n", "[685]\tvalid_0's rmse: 0.0236054\n", "[686]\tvalid_0's rmse: 0.0236006\n", "[687]\tvalid_0's rmse: 0.0235964\n", "[688]\tvalid_0's rmse: 0.0235926\n", "[689]\tvalid_0's rmse: 0.0235928\n", "[690]\tvalid_0's rmse: 0.0235919\n", "[691]\tvalid_0's rmse: 0.0235965\n", "[692]\tvalid_0's rmse: 0.023596\n", "[693]\tvalid_0's rmse: 0.0235979\n", "[694]\tvalid_0's rmse: 0.0235969\n", "[695]\tvalid_0's rmse: 0.0235965\n", "[696]\tvalid_0's rmse: 0.0235954\n", "[697]\tvalid_0's rmse: 0.0235889\n", "[698]\tvalid_0's rmse: 0.0235825\n", "[699]\tvalid_0's rmse: 0.0235817\n", "[700]\tvalid_0's rmse: 0.0235755\n", "[701]\tvalid_0's rmse: 0.0235773\n", "[702]\tvalid_0's rmse: 0.0235708\n", "[703]\tvalid_0's rmse: 0.0235742\n", "[704]\tvalid_0's rmse: 0.0235722\n", "[705]\tvalid_0's rmse: 0.0235752\n", "[706]\tvalid_0's rmse: 0.0235732\n", "[707]\tvalid_0's rmse: 0.0235712\n", "[708]\tvalid_0's rmse: 0.023572\n", "[709]\tvalid_0's rmse: 0.0235776\n", "[710]\tvalid_0's rmse: 0.0235757\n", "[711]\tvalid_0's rmse: 0.0235846\n", "[712]\tvalid_0's rmse: 0.0235865\n", "[713]\tvalid_0's rmse: 0.0235889\n", "[714]\tvalid_0's rmse: 0.0235902\n", "[715]\tvalid_0's rmse: 0.0235915\n", "[716]\tvalid_0's rmse: 0.0235899\n", "[717]\tvalid_0's rmse: 0.0235843\n", "[718]\tvalid_0's rmse: 0.0235871\n", "[719]\tvalid_0's rmse: 0.0235815\n", "[720]\tvalid_0's rmse: 0.0235834\n", "[721]\tvalid_0's rmse: 0.0235796\n", "[722]\tvalid_0's rmse: 0.0235709\n", "[723]\tvalid_0's rmse: 0.0235679\n", "[724]\tvalid_0's rmse: 0.0235597\n", "[725]\tvalid_0's rmse: 0.023558\n", "[726]\tvalid_0's rmse: 0.0235521\n", "[727]\tvalid_0's rmse: 0.0235506\n", "[728]\tvalid_0's rmse: 0.0235456\n", "[729]\tvalid_0's rmse: 0.0235434\n", "[730]\tvalid_0's rmse: 0.023542\n", "[731]\tvalid_0's rmse: 0.0235465\n", "[732]\tvalid_0's rmse: 0.0235518\n", "[733]\tvalid_0's rmse: 0.0235577\n", "[734]\tvalid_0's rmse: 0.0235628\n", "[735]\tvalid_0's rmse: 0.023568\n", "[736]\tvalid_0's rmse: 0.023567\n", "[737]\tvalid_0's rmse: 0.0235687\n", "[738]\tvalid_0's rmse: 0.023567\n", "[739]\tvalid_0's rmse: 0.0235689\n", "[740]\tvalid_0's rmse: 0.0235683\n", "[741]\tvalid_0's rmse: 0.0235687\n", "[742]\tvalid_0's rmse: 0.0235667\n", "[743]\tvalid_0's rmse: 0.023565\n", "[744]\tvalid_0's rmse: 0.0235647\n", "[745]\tvalid_0's rmse: 0.0235639\n", "[746]\tvalid_0's rmse: 0.0235626\n", "[747]\tvalid_0's rmse: 0.0235621\n", "[748]\tvalid_0's rmse: 0.0235655\n", "[749]\tvalid_0's rmse: 0.0235651\n", "[750]\tvalid_0's rmse: 0.0235626\n", "[751]\tvalid_0's rmse: 0.0235604\n", "[752]\tvalid_0's rmse: 0.0235554\n", "[753]\tvalid_0's rmse: 0.023553\n", "[754]\tvalid_0's rmse: 0.0235507\n", "[755]\tvalid_0's rmse: 0.0235485\n", "[756]\tvalid_0's rmse: 0.0235475\n", "[757]\tvalid_0's rmse: 0.0235471\n", "[758]\tvalid_0's rmse: 0.023547\n", "[759]\tvalid_0's rmse: 0.023546\n", "[760]\tvalid_0's rmse: 0.023548\n", "[761]\tvalid_0's rmse: 0.0235404\n", "[762]\tvalid_0's rmse: 0.0235322\n", "[763]\tvalid_0's rmse: 0.0235255\n", "[764]\tvalid_0's rmse: 0.0235206\n", "[765]\tvalid_0's rmse: 0.0235189\n", "[766]\tvalid_0's rmse: 0.0235161\n", "[767]\tvalid_0's rmse: 0.0235131\n", "[768]\tvalid_0's rmse: 0.0235113\n", "[769]\tvalid_0's rmse: 0.0235116\n", "[770]\tvalid_0's rmse: 0.0235096\n", "[771]\tvalid_0's rmse: 0.0235095\n", "[772]\tvalid_0's rmse: 0.0235065\n", "[773]\tvalid_0's rmse: 0.0235049\n", "[774]\tvalid_0's rmse: 0.023504\n", "[775]\tvalid_0's rmse: 0.0235031\n", "[776]\tvalid_0's rmse: 0.0235041\n", "[777]\tvalid_0's rmse: 0.0235034\n", "[778]\tvalid_0's rmse: 0.0235044\n", "[779]\tvalid_0's rmse: 0.0235023\n", "[780]\tvalid_0's rmse: 0.0235033\n", "[781]\tvalid_0's rmse: 0.023505\n", "[782]\tvalid_0's rmse: 0.0235067\n", "[783]\tvalid_0's rmse: 0.0235069\n", "[784]\tvalid_0's rmse: 0.023507\n", "[785]\tvalid_0's rmse: 0.0235084\n", "[786]\tvalid_0's rmse: 0.0235073\n", "[787]\tvalid_0's rmse: 0.0235103\n", "[788]\tvalid_0's rmse: 0.0235107\n", "[789]\tvalid_0's rmse: 0.0235102\n", "[790]\tvalid_0's rmse: 0.0235127\n", "[791]\tvalid_0's rmse: 0.0235112\n", "[792]\tvalid_0's rmse: 0.0235102\n", "[793]\tvalid_0's rmse: 0.0235093\n", "[794]\tvalid_0's rmse: 0.0235079\n", "[795]\tvalid_0's rmse: 0.0235067\n", "[796]\tvalid_0's rmse: 0.0235103\n", "[797]\tvalid_0's rmse: 0.0235153\n", "[798]\tvalid_0's rmse: 0.0235183\n", "[799]\tvalid_0's rmse: 0.0235219\n", "[800]\tvalid_0's rmse: 0.0235219\n", "[801]\tvalid_0's rmse: 0.0235216\n", "[802]\tvalid_0's rmse: 0.0235214\n", "[803]\tvalid_0's rmse: 0.0235148\n", "[804]\tvalid_0's rmse: 0.0235062\n", "[805]\tvalid_0's rmse: 0.0235034\n", "[806]\tvalid_0's rmse: 0.0235047\n", "[807]\tvalid_0's rmse: 0.0235054\n", "[808]\tvalid_0's rmse: 0.0235062\n", "[809]\tvalid_0's rmse: 0.023506\n", "[810]\tvalid_0's rmse: 0.0235021\n", "[811]\tvalid_0's rmse: 0.0235045\n", "[812]\tvalid_0's rmse: 0.0235052\n", "[813]\tvalid_0's rmse: 0.023506\n", "[814]\tvalid_0's rmse: 0.0235077\n", "[815]\tvalid_0's rmse: 0.0235097\n", "[816]\tvalid_0's rmse: 0.0235131\n", "[817]\tvalid_0's rmse: 0.0235155\n", "[818]\tvalid_0's rmse: 0.0235176\n", "[819]\tvalid_0's rmse: 0.0235196\n", "[820]\tvalid_0's rmse: 0.0235238\n", "[821]\tvalid_0's rmse: 0.0235239\n", "[822]\tvalid_0's rmse: 0.0235244\n", "[823]\tvalid_0's rmse: 0.0235239\n", "[824]\tvalid_0's rmse: 0.0235241\n", "[825]\tvalid_0's rmse: 0.0235212\n", "[826]\tvalid_0's rmse: 0.0235226\n", "[827]\tvalid_0's rmse: 0.023523\n", "[828]\tvalid_0's rmse: 0.023524\n", "[829]\tvalid_0's rmse: 0.0235217\n", "[830]\tvalid_0's rmse: 0.0235221\n", "[831]\tvalid_0's rmse: 0.023523\n", "[832]\tvalid_0's rmse: 0.023519\n", "[833]\tvalid_0's rmse: 0.0235185\n", "[834]\tvalid_0's rmse: 0.0235189\n", "[835]\tvalid_0's rmse: 0.0235118\n", "[836]\tvalid_0's rmse: 0.0235092\n", "[837]\tvalid_0's rmse: 0.0235095\n", "[838]\tvalid_0's rmse: 0.0235097\n", "[839]\tvalid_0's rmse: 0.02351\n", "[840]\tvalid_0's rmse: 0.0235108\n", "[841]\tvalid_0's rmse: 0.0235141\n", "[842]\tvalid_0's rmse: 0.0235179\n", "[843]\tvalid_0's rmse: 0.0235229\n", "[844]\tvalid_0's rmse: 0.0235268\n", "[845]\tvalid_0's rmse: 0.0235272\n", "[846]\tvalid_0's rmse: 0.0235265\n", "[847]\tvalid_0's rmse: 0.0235274\n", "[848]\tvalid_0's rmse: 0.0235266\n", "[849]\tvalid_0's rmse: 0.0235251\n", "[850]\tvalid_0's rmse: 0.0235253\n", "[851]\tvalid_0's rmse: 0.0235213\n", "[852]\tvalid_0's rmse: 0.023517\n", "[853]\tvalid_0's rmse: 0.0235131\n", "[854]\tvalid_0's rmse: 0.0235091\n", "[855]\tvalid_0's rmse: 0.0235049\n", "[856]\tvalid_0's rmse: 0.0235052\n", "[857]\tvalid_0's rmse: 0.0235\n", "[858]\tvalid_0's rmse: 0.0235013\n", "[859]\tvalid_0's rmse: 0.0235023\n", "[860]\tvalid_0's rmse: 0.0235047\n", "[861]\tvalid_0's rmse: 0.023503\n", "[862]\tvalid_0's rmse: 0.0234994\n", "[863]\tvalid_0's rmse: 0.0234981\n", "[864]\tvalid_0's rmse: 0.0234936\n", "[865]\tvalid_0's rmse: 0.0234924\n", "[866]\tvalid_0's rmse: 0.0234934\n", "[867]\tvalid_0's rmse: 0.0234969\n", "[868]\tvalid_0's rmse: 0.0234978\n", "[869]\tvalid_0's rmse: 0.0235012\n", "[870]\tvalid_0's rmse: 0.0235047\n", "[871]\tvalid_0's rmse: 0.0235039\n", "[872]\tvalid_0's rmse: 0.0235025\n", "[873]\tvalid_0's rmse: 0.0235049\n", "[874]\tvalid_0's rmse: 0.0235041\n", "[875]\tvalid_0's rmse: 0.0235059\n", "[876]\tvalid_0's rmse: 0.0235107\n", "[877]\tvalid_0's rmse: 0.0235122\n", "[878]\tvalid_0's rmse: 0.0235171\n", "[879]\tvalid_0's rmse: 0.0235214\n", "[880]\tvalid_0's rmse: 0.0235213\n", "[881]\tvalid_0's rmse: 0.023521\n", "[882]\tvalid_0's rmse: 0.0235209\n", "[883]\tvalid_0's rmse: 0.0235202\n", "[884]\tvalid_0's rmse: 0.0235197\n", "[885]\tvalid_0's rmse: 0.0235206\n", "[886]\tvalid_0's rmse: 0.0235238\n", "[887]\tvalid_0's rmse: 0.0235254\n", "[888]\tvalid_0's rmse: 0.0235276\n", "[889]\tvalid_0's rmse: 0.0235311\n", "[890]\tvalid_0's rmse: 0.0235339\n", "[891]\tvalid_0's rmse: 0.0235356\n", "[892]\tvalid_0's rmse: 0.0235324\n", "[893]\tvalid_0's rmse: 0.0235339\n", "[894]\tvalid_0's rmse: 0.0235337\n", "[895]\tvalid_0's rmse: 0.0235358\n", "[896]\tvalid_0's rmse: 0.0235353\n", "[897]\tvalid_0's rmse: 0.0235357\n", "[898]\tvalid_0's rmse: 0.0235341\n", "[899]\tvalid_0's rmse: 0.0235337\n", "[900]\tvalid_0's rmse: 0.023535\n", "[901]\tvalid_0's rmse: 0.0235356\n", "[902]\tvalid_0's rmse: 0.0235366\n", "[903]\tvalid_0's rmse: 0.0235374\n", "[904]\tvalid_0's rmse: 0.023538\n", "[905]\tvalid_0's rmse: 0.0235402\n", "[906]\tvalid_0's rmse: 0.023542\n", "[907]\tvalid_0's rmse: 0.0235439\n", "[908]\tvalid_0's rmse: 0.0235459\n", "[909]\tvalid_0's rmse: 0.0235494\n", "[910]\tvalid_0's rmse: 0.0235523\n", "[911]\tvalid_0's rmse: 0.0235503\n", "[912]\tvalid_0's rmse: 0.0235494\n", "[913]\tvalid_0's rmse: 0.0235473\n", "[914]\tvalid_0's rmse: 0.0235462\n", "[915]\tvalid_0's rmse: 0.0235449\n", "[916]\tvalid_0's rmse: 0.0235459\n", "[917]\tvalid_0's rmse: 0.023544\n", "[918]\tvalid_0's rmse: 0.0235448\n", "[919]\tvalid_0's rmse: 0.023543\n", "[920]\tvalid_0's rmse: 0.0235422\n", "[921]\tvalid_0's rmse: 0.0235431\n", "[922]\tvalid_0's rmse: 0.023542\n", "[923]\tvalid_0's rmse: 0.0235415\n", "[924]\tvalid_0's rmse: 0.0235385\n", "[925]\tvalid_0's rmse: 0.0235385\n", "[926]\tvalid_0's rmse: 0.0235357\n", "[927]\tvalid_0's rmse: 0.0235344\n", "[928]\tvalid_0's rmse: 0.0235349\n", "[929]\tvalid_0's rmse: 0.0235341\n", "[930]\tvalid_0's rmse: 0.0235303\n", "[931]\tvalid_0's rmse: 0.0235341\n", "[932]\tvalid_0's rmse: 0.023536\n", "[933]\tvalid_0's rmse: 0.0235349\n", "[934]\tvalid_0's rmse: 0.0235368\n", "[935]\tvalid_0's rmse: 0.0235389\n", "[936]\tvalid_0's rmse: 0.0235382\n", "[937]\tvalid_0's rmse: 0.0235344\n", "[938]\tvalid_0's rmse: 0.0235317\n", "[939]\tvalid_0's rmse: 0.0235276\n", "[940]\tvalid_0's rmse: 0.0235269\n", "[941]\tvalid_0's rmse: 0.0235273\n", "[942]\tvalid_0's rmse: 0.0235316\n", "[943]\tvalid_0's rmse: 0.0235336\n", "[944]\tvalid_0's rmse: 0.0235346\n", "[945]\tvalid_0's rmse: 0.0235367\n", "[946]\tvalid_0's rmse: 0.023537\n", "[947]\tvalid_0's rmse: 0.023538\n", "[948]\tvalid_0's rmse: 0.023539\n", "[949]\tvalid_0's rmse: 0.0235394\n", "[950]\tvalid_0's rmse: 0.0235403\n", "[951]\tvalid_0's rmse: 0.0235336\n", "[952]\tvalid_0's rmse: 0.0235269\n", "[953]\tvalid_0's rmse: 0.0235204\n", "[954]\tvalid_0's rmse: 0.0235217\n", "[955]\tvalid_0's rmse: 0.0235153\n", "[956]\tvalid_0's rmse: 0.0235105\n", "[957]\tvalid_0's rmse: 0.023508\n", "[958]\tvalid_0's rmse: 0.0235124\n", "[959]\tvalid_0's rmse: 0.023517\n", "[960]\tvalid_0's rmse: 0.0235178\n", "[961]\tvalid_0's rmse: 0.0235156\n", "[962]\tvalid_0's rmse: 0.0235136\n", "[963]\tvalid_0's rmse: 0.0235115\n", "[964]\tvalid_0's rmse: 0.023511\n", "[965]\tvalid_0's rmse: 0.023509\n", "Early stopping, best iteration is:\n", "[865]\tvalid_0's rmse: 0.0234924\n" ] } ], "source": [ "gbm = lgb.train(params, lgb_train, num_boost_round=2000, valid_sets=lgb_eval, early_stopping_rounds=100)" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 12, "outputs": [], "source": [ "y_pred = np.expm1(np.expm1(gbm.predict(X_test)))\n", "y_true = np.expm1(np.expm1(Y_test))" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 13, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MSE: 5.74E+03\n", "RMSE: 75.76181372320752\n", "MAE: 54.761485656796516\n", "MAPE: 0.11813067374720394\n", "R_2: 0.6942490637163895\n" ] } ], "source": [ "MSE = mean_squared_error(y_true, y_pred)\n", "RMSE = np.sqrt(mean_squared_error(y_true, y_pred))\n", "MAE = mean_absolute_error(y_true, y_pred)\n", "MAPE = mean_absolute_percentage_error(y_true, y_pred)\n", "R_2 = r2_score(y_true, y_pred)\n", "print('MSE:', format(MSE, '.2E'))\n", "print('RMSE:', RMSE)\n", "print('MAE:', MAE)\n", "print('MAPE:', MAPE)\n", "print('R_2:', R_2) #R方为负就说明拟合效果比平均值差" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 14, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MSE: 5.74E+03\n", "RMSE: 75.76181372320752\n", "MAE: 54.761485656796516\n", "MAPE: 0.11813067374720394\n", "R_2: 0.6942490637163895\n" ] } ], "source": [ "MSE = mean_squared_error(y_true, y_pred)\n", "RMSE = np.sqrt(mean_squared_error(y_true, y_pred))\n", "MAE = mean_absolute_error(y_true, y_pred)\n", "MAPE = mean_absolute_percentage_error(y_true, y_pred)\n", "R_2 = r2_score(y_true, y_pred)\n", "print('MSE:', format(MSE, '.2E'))\n", "print('RMSE:', RMSE)\n", "print('MAE:', MAE)\n", "print('MAPE:', MAPE)\n", "print('R_2:', R_2) #R方为负就说明拟合效果比平均值差" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 15, "outputs": [], "source": [ "import seaborn as sns" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 20, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\zhaojh\\AppData\\Local\\Temp\\ipykernel_26460\\3712314790.py:9: UserWarning: FixedFormatter should only be used together with FixedLocator\n", " ax.set_yticklabels(labels=[0, 2000, 4000, 6000, 8000, 10000, 12000, 14000, 16000], fontsize=6)\n" ] }, { "data": { "text/plain": "
", "image/png": "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MA4AAAAAAABA0YRxAAAAAAAAAIomjAMAAAAAAABQNGEcAAAAAAAAgKIJ4wAAAAAAAAAUTRgHAAAAAAAAoGjCOAAAAAAAAABFE8YBAAAAAAAAKJowDgAAAAAAAEDRhHEAAAAAAAAAiiaMAwAAAAAAAFA0YRwAAAAAAACAognjAAAAAAAAABRNGAcAAAAAAACgaMI4AAAAAAAAAEUTxgEAAAAAAAAomjAOAAAAAAAAQNGEcQAAAAAAAACKJowDAAAAAAAAUDRhHAAAAAAAAICiCeMAAAAAAAAAFE0YBwAAAAAAAKBowjgAAAAAAAAARRPGAQAAAAAAACiaMA4AAAAAAABA0YRxAAAAAAAAAIomjAMAAAAAAABQNGEcAAAAAAAAgKIJ4wAAAAAAAAAUTRgHAAAAAAAAoGjCOAAAAAAAAABFE8YBAAAAAAAAKJowDgAAAAAAAEDRhHEAAAAAAAAAiiaMAwAAAAAAAFA0YRwAAAAAAACAognjAAAAAAAAABRNGAcAAAAAAACgaMI4AAAAAAAAAEUTxgEAAAAAAAAomjAOAAAAAAAAQNGEcQAAAAAAAACKJowDAAAAAAAAUDRhHAAAAAAAAICiCeMAAAAAAAAAFE0YBwAAAAAAAKBowjgAAAAAAAAARRPGAQAAAAAAACiaMA4AAAAAAABA0YRxAAAAAAAAAIomjAMAAAAAAABQNGEcAAAAAAAAgKIJ4wAAAAAAAAAUTRgHAAAAAAAAoGjCOAAAAAAAAABFE8YBAAAAAAAAKJowDgAAAAAAAEDRhHEAAAAAAAAAiiaMAwAAAAAAAFA0YRwAAAAAAACAognjAAAAAAAAABRNGAcAAAAAAACgaMI4AAAAAAAAAEUTxgEAAAAAAAAomjAOAAAAAAAAQNGEcQAAAAAAAACKJowDAAAAAAAAUDRhHAAAAAAAAICiCeMAAAAAAAAAFE0YBwAAAAAAAKBowjgAAAAAAAAARRPGAQAAAAAAACiaMA4AAAAAAABA0YRxAAAAAAAAAIomjAMAAAAAAABQNGEcAAAAAAAAgKIJ4wAAAAAAAAAUTRgHAAAAAAAAoGjCOAAAAAAAAABFE8YBAAAAAAAAKJowDgAAAAAAAEDRhHEAAAAAAAAAiiaMAwAAAAAAAFA0YRwAAAAAAACAognjAAAAAAAAABRNGAcAAAAAAACgaMI4AAAAAAAAAEUTxgEAAAAAAAAomjAOAAAAAAAAQNGEcQAAAAAAAACKJowDAAAAAAAAUDRhHAAAAAAAAICiCeMAAAAAAAAAFE0YBwAAAAAAAKBowjgAAAAAAAAARRPGAQAAAAAAACiaMA4AAAAAAABA0YRxAAAAAAAAAIomjAMAAAAAAABQNGEcAAAAAAAAgKIJ4wAAAAAAAAAUTRgHAAAAAAAAoGit9R7gQPziF7/I7NmzU61WM2PGjMyfPz8tLS2ZNm1axo8fnxkzZuSpp57Kueeem1NOOSWzZ8/Ohg0bcvrpp+ess86q9/gAAAAAAAAA1FFDXDH+8MMP54YbbsjVV1+dD33oQ5k8eXLmzJmThQsXZtmyZRkzZkzmzZuXRYsWZfXq1dm+fXvmzp2bu+++u96jAwAAAAAAAFBnDXHF+JlnnpkkWbFiRYYNG5b29vZUKpVUKpWsX78+7e3tSZLBgwdnw4YN+2+PGDEiO3bsyODBgw/4rK6url7N2tLS0qvnc2Tp7b71FXtLT9hbGpG9pRHZWxqRvaUR2Vsakb2lEdlbGpG9pRH1h721s/RUb/a2J89tiDCeJBs3bsyPfvSjvOMd70i1Wk2SbNmyJZVK5Vm39+7dmySpVqvp7OzsURjv6Og46BkHDRqUCRMmHPTzOfKsWrUqO3furOsM9paesrc0IntLI7K3NCJ7SyOytzQie0sjsrc0IntLI6r33tpZDsbh2tuGCOO7du3KNddck2uuuSb33XdfOjo6MmrUqOzevTvt7e1ZunRpTj311GzdujUTJkzI4sWLkyRr165NW1tbj86aOHGiv2ThsBk3bly9R4Aes7c0IntLI7K3NCJ7SyOytzQie0sjsrc0IntLI7K3NKLe7G1XV9cBX/jcEGH8i1/8YjZt2pR58+alvb09K1euzJIlS3LhhRdm/PjxWbx4caZPn57zzz8/bW1tGTt2bKZPn55JkyalUqn06KyWlhZhnMPGrtGI7C2NyN7SiOwtjcje0ojsLY3I3tKI7C2NyN7SiOwtjehw7W1DhPGPfOQj+chHPvJbH7/00kufcXvq1KmZOnXqoR4LAAAAAAAAgAbQXO8BAAAAAAAAAOBQEsYBAAAAAAAAKJowDgAAAAAAAEDRhHEAAAAAAAAAiiaMAwAAAAAAAFA0YRwAAAAAAACAognjAAAAAAAAABRNGAcAAAAAAACgaMI4AAAAAAAAAEUTxgEAAAAAAAAomjAOAAAAAAAAQNGEcQAAAAAAAACKJowDAAAAAAAAUDRhHAAAAAAAAICiCeMAAAAAAAAAFE0YBwAAAAAAAKBowjgAAAAAAAAARRPGAQAAAAAAACiaMA4AAAAAAABA0YRxAAAAAAAAAIomjAMAAAAAAABQNGEcAAAAAAAAgKIJ4wAAAAAAAAAUTRgHAAAAAAAAoGjCOAAAAAAAAABFE8YBAAAAAAAAKJowDgAAAAAAAEDRhHEAAAAAAAAAiiaMAwAAAAAAAFA0YRwAAAAAAACAognjAAAAAAAAABRNGAcAAAAAAACgaMI4AAAAAAAAAEUTxgEAAAAAAAAomjAOAAAAAAAAQNGEcQAAAAAAAACKJowDAAAAAAAAUDRhHAAAAAAAAICiCeMAAAAAAAAAFE0YBwAAAAAAAKBowjgAAAAAAAAARRPGAQAAAAAAACiaMA4AAAAAAABA0YRxAAAAAAAAAIomjAMAAAAAAABQNGEcAAAAAAAAgKIJ4wAAAAAAAAAUTRgHAAAAAAAAoGjCOAAAAAAAAABFE8YBAAAAAAAAKJowDgAAAAAAAEDRhHEAAAAAAAAAiiaMAwAAAAAAAFA0YRwAAAAAAACAognjAAAAAAAAABRNGAcAAAAAAACgaMI4AAAAAAAAAEUTxgEAAAAAAAAomjAOAAAAAAAAQNGEcQAAAAAAAACKJowDAAAAAAAAUDRhHAAAAAAAAICiCeMAAAAAAAAAFE0YBwAAAAAAAKBowjgAAAAAAAAARRPGAQAAAAAAACiaMA4AAAAAAABA0YRxAAAAAAAAAIomjAMAAAAAAABQNGEcAAAAAAAAgKIJ4wAAAAAAAAAUTRgHAAAAAAAAoGjCOAAAAAAAAABFE8YBAAAAAAAAKJowDgAAAAAAAEDRhHEAAAAAAAAAiiaMAwAAAAAAAFA0YRwAAAAAAACAognjAAAAAAAAABRNGAcAAAAAAACgaMI4AAAAAAAAAEUTxgEAAAAAAAAomjAOAAAAAAAAQNGEcQAAAAAAAACKJowDAAAAAAAAUDRhHAAAAAAAAICiCeMAAAAAAAAAFE0YBwAAAAAAAKBowjgAAAAAAAAARRPGAQAAAAAAACiaMA4AAAAAAABA0YRxAAAAAAAAAIomjAMAAAAAAABQNGEcAAAAAAAAgKIJ4wAAAAAAAAAU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dOnShczMTNasWcP69euNs5gdbblIkSK4ublx+vTp+1gLeRhcv36d2bNnEx8fb7z2yCOPALB3717OnTsH/P4dn3USZsKECTz22GPExsYyYsQILly4kK1tO/50BHNE7gfHczM0NJQRI0aQkZFB7969+eijj+jbty9ubm5s27aNL7/8koMHD2K32ylfvjwff/wx/fr1o0yZMmRmZt72HBf5Nxx90ubNm2O1WgkLC2PevHnGtaztzcvLi4YNG9K8eXO8vb358ccf2bZtG3Druerq6oqnpyceHh6EhoZSunTp+14fkT8ymUxGX6Ft27Z0794dHx8fZs2axfLly7l06ZJxn7OzM0lJSURFRREbG2v8+3DMhaWnpwO3djl6eHgAd16UL/JP/NNxmSPDh5eXF2azmd27d5MvXz7NMcg94TjT/t+MyxxZEerVq0fhwoWxWq2Ehoaqvd4F+kaSPM8xqD506BCAkf76l19+YePGjZQrV4733nuPunXr8uOPPzJ9+nQjOO7Y2ebk5ARkX7kueYujA5WamkpYWBg3b96kWrVqwK106tu3b8dsNmM2m28Ljm/ZsoVmzZrRt29ffHx8WLhwITNmzOD69etYrVZNyMh95ehcPfvss/Tu3ZsyZcqwdOlS5s2bZwTH4VZbh1up0hztH34fUDjOdK5YsSINGjSgVatWlCpVyjjXRuS/8fPzo3Dhwly5coVRo0YZq7NtNpvx3ezs7EzdunVp164dpUqV4vTp08yePZu4uDjjc8qXLw9gnCmuAYDcazdu3ODSpUtGO61QoQKBgYHExcXx448/Zlsk6RjIAvTv35/27dsbO8R++OEH4NZz2Waz4ePjw82bN4mKiiI1NVX9A7krEhISaN26NWPGjGHOnDkkJCRgNpt57rnn8PLy4uDBg0ycODHbTi641XYdz+WxY8dSvnx5Ll26xMyZM8nIyDA+/6WXXmLjxo3GOXci98uvv/7K3LlzAZg0aRK9e/emY8eOdO/enXnz5lGuXDnCw8NZsmSJ8bz28/OjSZMmLF26lG3bthEYGJiTVZA8qnz58jRu3Biz2czq1av57rvvAG7bQevj48NLL71E1apViY2NZcuWLcCt52/+/PkZN24cq1at0k5xyVXMZvNfBscvX74MQFpaGt9//z2vvPIKTZs25Z133mH27Nns27ePxMRE4/MsFsttaaxF/qlK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kuTkZBo3bszYsWPv+P6bN28aadL/mJJdRCQvu3LlCmPGjGHNmjXUq1eP8ePH4+7untPFEhERERERERERERHJs6z//RaR7Gw2GwDLly/n6tWrvPrqq3zyySfG9WeffZbatWszYMAA1q9fT7Vq1ejQocNtn5P17HAFxUXkYVKwYEH69u2Ls7MznTt3VlBcRERERERERP5S1iPYdBybiIjIP6NopPxtZrMZs9nM0aNHcXZ2plOnTgCkpaUB4O7uzlNPPUXnzp0xmUxERkbmZHFFRHKlwoUL8+mnnxISEpLTRRERERERERGRXC5rIFxBcRERkX9GgXH5R9LS0rh48SIWi8XYQW61/p6AwNnZmRo1amC32zl8+DCJiYk5VVQRkVwr63NTRERERERERERERETuHQXG5W+z2WzYbDY8PT1JSUkhPDwcuLWT3G63k5GRAdxKFezs7IyTk5OCPyIiIiIiIiIiIiIiIiKSYxQYl7/NbDbj6upKw4YNAZg2bRo//vgjcCuNjyMI/vPPP5OWlsYjjzyCm5sbdrs9x8osIiIiIiIiIiIiIiIiIg8vBcblb3MEuF944QWefPJJYmJi+OKLL/j222+5ceMGSUlJrFmzhqFDhwLw2GOPATr7RkRERERERERERERERERyhsmubbzyL2zdupUFCxawZ88eAAICAkhNTeXy5csADBo0iHbt2uVkEUVERERERERERERERETkIafAuPwjdrvd2AEeFRXFpk2bWL58OTabDavVSuXKlWnWrBkvvPACcOtccrNZCQpERERERERERERERERE5P5TYFz+sazBcYBLly5hsVgwm824ubnh5uYGKCguIiIiIiIiIiIiIiIiIjlLgXH51xwB8qwBcMfPfwyei4iIiIiIiIiIiIiIiIjcbwqMi4iIiIiIiIiIiIiIiIhInqb81nLX2Gy2nC6CiIiIiIiIiIiIiIiIiMhtFBh/yGVNGPBvkgdkZmYaadSPHTtGUlLSvy6biIiIiIiIiIiIiIiIiMjdoMD4QyIjI+O212w2GyaTiVOnTnHp0qV/fBZ4ZmYmFosFgOHDh9OzZ0++//77fxVoFxERERERERERERERERG5WxQYz+NGjRrFqVOnsFqtZGZmZrtmNpuJioqiZcuWxMTE/KPPzxoUHz9+PPPnz+fSpUtUrFjxHwfaRURERERERERERERERETuJgXG87DFixczZ84cOnbsyNmzZ7FYLEZw3HEe+OLFi0lJScHHx+dvnxGeNSg+btw4pk+fjre3N2vXriUwMPDuVkZERERERERERERERERE5B9SYDwPa9u2LQ0aNODatWu8+uqr2YLjjt3cTk5OWK1WnJ2djTPC/xd/DIrPmDGDfPny8fXXX1OqVKl7Uh8RERERERERERERERERkX9CgfE8ynGm+NSpU+8YHHdct9vtmM3mbGnPHWeD/9kZ4X8WFF+0aBGlS5e+l9USEREREREREREREREREfnbFBjPo6xW618Gx52cnIBbKdUtFgtr167lwoULXL9+3QiSO/50pFi32+0KiouIiIiIiIiIiIiIiIjIA8dk/7NtwZInZGRkYLVaAejZsydbt26lQIECLFiwgJCQED777DOWLFkCgKenJ35+ftSpU4fg4GCqVq1KmTJljDTrNpvNSLeuoLiIiIiIiIiIiIiIiIiIPCgUGH8I/Flw/Ntvv+Wbb75h9OjRvP766/z6668cOHCA69evA2CxWPDx8SEgIIDRo0dTvHhxAEaPHs3s2bMVFBcRERERERERERERERGRB4IC4w+JOwXHfX19qVChAlFRUSxatIjAwEAuXbrEqVOniIiIYM+ePURHR9OtWzdee+01AH777TeaN29OSkoKy5cvp1SpUjlZLRERERERERERERERERGR/0qB8TzKbrcbZ4Tf6bUePXqwbds2LBYLLi4ufPPNN5QoUQLASJeemZnJb7/9RrFixYy/WywWDh8+jJeXF0FBQfevQiIiIiIiIiIiIiIiIiIi/5AC43mQ4yzw2NhY4uLiOH78OCVLlqR48eJ4enoa93Xv3p3vv/8eNzc3vvnmG0qWLGnsLM96njj8HlS/U8BdRERERERERERERERERCQ3U2A8j3EEtI8fP87gwYOJjo4mMTERb29vKlasyJAhQ4yzwgHefPNNtm/fjp+fHwsWLCA4ONjYGS4iIiIiIiIiIiIiIiIikhcoMJ6HOHZzR0VF0aFDBxITE3nhhRdwdXVl+/btxMfH88gjj7BgwQLS09NxdnYGfj9zPF++fCxZsoTg4OAcromIiIiIiIiIiIiIiIiIyN1j/u+3yIPCZDJx9epVPv74YxITE3nvvfeYOHEiFouF+Ph4SpUqxcSJEzGZTKSkpBjvmzp1Kk899RQJCQn89NNPOVgDEREREREREREREREREZG7T4HxPObMmTMcPXqUzp0707VrV4YMGcI333xDUFAQCxcuxNfXl9mzZ9OyZUuuXr1qvG/GjBlMnTqV1q1b52DpRURERERERERERERERETuPgXG85iIiAisVivPP/88Q4cOJTQ0lJIlS7J48WJ8fHy4efMm3377LTExMRw9ehSA9PR0ABo0aABAZmZmjpVfRERERERERERERERERORuU2A8j7Hb7WRkZDBy5Ei+/vprSpYsSWhoKD4+PqSlpeHq6krZsmWBW7vLAZycnLJ9hsViud/FFhERERERERERERERERG5ZxQYf4DZ7XbjZ5vNBkCVKlXw8PDg0KFDFC9ePNtOcWdnZwCsVisuLi6UKVMmR8otIiIiIiIiIiIiIiIiInI/KTD+AHIExE0mk/Ga2Xzrf2VgYCCBgYHY7XYCAwNJS0sjNTUVV1dXAL777jtWrFhB/vz58fX1vf+FFxERERERERERERERERG5z0z2rNuOJdez2WyYzWYuX77M8ePHOXPmDK6urjz33HO4u7vj7OzMkSNH6NSpEzdu3KBChQrUqlWLwMBAzp8/z5w5cwD4/PPPadWqVQ7XRkRERERERERERERERETk3lNg/AHiCIpHRUXRv39/oqOjjWu1atXi6aef5pVXXsHT05Njx47x3nvvcfbsWTIyMoz7vLy86N+/P61btwZu7T7PuvNcRERERERERERERERERCSvUWD8AeEIYJ84cYL27duTkJBA27ZtKVu2LBMnTuT69es88cQTTJkyBRcXF0wmEzExMRw+fJjw8HBSU1OpXLkyZcqUoWrVqsDvgXYRERERERERERERERERkbxMgfEHSFxcHH379uWHH36gf//+dOnShaFDh/L1118TFBREaGgovr6+HD58mJIlS+Lp6fmnn6Wd4iIiIiIiIiIiIiIiIiLysNB24QdIXFwc4eHhtGzZki5dujBkyBC+/vprSpYsyeLFi/H19WX16tW8/fbbRpr1zMzMO36WguIiIiIiIiIiIiIiIiIi8rBQYDwX+2NQ++DBg6SkpPDYY48xZMgQQkNDKVmyJKGhofj4+HDjxg02bdrEhQsXCA8PB8BiseRE0UVEREREREREREREREREcg0FxnMxi8XCoUOHWLFiBQCFChUCYPLkyYSGhhIcHMzXX3+Nj48PqampeHh4ULduXQCuXbuWY+UWEREREREREREREREREclNrDldAPlzsbGxtG7dGhcXFypUqEBISAheXl6cOXOGggULsnTpUry8vEhJScHNzQ2Aq1evAlC6dOmcLLqIiIiIiIiIiIiIiIiISK6hHeO5jN1uN3729fWldevWZGRksHz5cry8vOjatStOTk6YTCbCwsIAjKD4pk2b+Oqrr3B3dyc4ODhHyi8iIiIiIiIiIiIiIiIiktuY7FkjsZKjMjMzsVgsXLp0CScnJ3x9fYmOjubDDz/k1KlTfPXVV5QqVYrhw4ezceNGMjIyePrppylatCjJycmsXr0agM8++4w2bdrkbGVERERERERERERERERERHIJBcZzmYiICF555RWef/55/vOf//D000+zbt06+vfvT/HixVm+fDnJycksW7aMBQsWkJKSAoCLiwu+vr707t2bFi1aAGCz2TCblRRARERERERERERERERERB5uOmM8l/nhhx8A+O677zh9+jQ//fQT/fv35/DhwyxYsIApU6bQv39/3n33XRo2bMiBAwe4du0a1apVo3DhwpQrVw5QUFxERERERERERERERERExEE7xnOYI326I5B99epVPv30U7Zs2ULVqlW5dOkSxYsX5/333+fjjz/mxo0bDB48mLp16/7pZ9rtdkwm032shYiIiIiIiIiIiIiIiIhI7qUtxTnMYrFw6NAhvvzyS06ePImfnx9NmzYlODiYQoUK0blzZ+Lj4+nZsyf58uXjwoULhIaGGu/PzMy87TMVFBcRERERERERERERERER+Z0C4zksJSWFnj178tVXXzF48GDCwsJo2LAhjz32GD///DP58+dn0qRJ1K5dmwMHDgCwbds2xo8fD9wKrIuIiIiIiIiIiIiIiIiIyJ9TKvVc4NSpU8yZM4e1a9eSmZlJt27d6NmzJ61atcLFxYUZM2bg4+PDjBkz2LhxI5GRkbi5ubFq1SqCgoJyuvgiIiIiIiIiIiIiIiIiIrmaAuO5RHJyMt9//z2ff/45165do169ejzyyCOMGTOG1q1bM2TIEAB27tzJt99+S6VKlejQoUMOl1pEREREREREREREREREJPdTYDyXiYmJ4csvv2Tr1q3Y7XaSk5MBGDRoEO3atQMgKSkJT09PAGw2G2azMuKLiIiIiIiIiIiIiIiIiPwZBcZzofj4eH744QeWLFnC3r17cXFxISQkhI8++ohatWoZ99ntdkwmUw6WVEREREREREREREREREQk99NW41zI29ubF198kZkzZ9K+fXucnJyIjIwkNTU1230KiouIiIiIiIiIiIiIiIiI/HfaMZ5LZd0Nvn79eqxWKy+88EIOl0pERERERERERERERERE5MGjwHgudqdU6TpTXERERERERERERERERETk71FgXERERERERERERERERERE8jRtPRYRERERERERERERERERkTxNgXEREREREREREREREREREcnTFBgXEREREREREREREREREZE8TYFxERERERERERERERERERHJ0xQYFxERERERERERERERERGRPE2BcRERERERERERERERERERydMUGBcRERERERERERERERERkTxNgXEREREREREREREREREREcnTrDldABEREREREZEHzZUrV5g4cSI//PADly5dwtPTk2rVqvH5559TqFChnC6eiIiIiIiIiPyBAuMiIiIiIiIif0N8fDwtW7bkt99+w9vbm6CgIK5du8b27du5du2aAuMiIiIiIiIiuZAC4yIiIiIiIiJ/w6pVq/jtt9944okn+Oqrr3B2dgYgIiJCQXERERERERGRXEqBcREREREREZG/4dSpUwA8//zzRlAcoGrVqjlVJBERERERERH5L8w5XQARERERERGRB0l6ejpAtqC4iIiIiIiIiORuCoyLiIiIiIiIiIiIiIiIiEieZrLb7facLoSIiIiIiIhIbtagQQPOnz//l/cMHz6c5s2bG39PSkpi7ty5bNy4kZiYGCwWCxUrVqRjx448//zzd/yMLVu2MH/+fE6dOkV8fDyFChWifv369OnTBx8fn39Vhw8++IBVq1YxfPhwGjZsyJQpU9iwYQPXrl2jWLFivPLKK3Ts2BGTyZTtfYmJicyfP59NmzZx7tw5AEJCQmjTpg0tW7Y07ps0aRKTJ0+md+/eeHt7M2vWLFJSUujVqxcvv/wyn3zyCd9//z2FCxdm8ODBPPbYY8Z709LSWLRoEevWreP06dPYbDZKlSrFK6+8QqtWrW4rk4iIiIiIiMjfpTPGRURERERERP6LkJAQvLy8ALh48SLx8fEULVoUb29v456sP1+6dImOHTty5swZPDw8KF68OElJSezfv5/9+/fTu3dv+vTpk+13jBo1itmzZwNQpEgRAgMDiYmJYdGiRezfv5+VK1felfTtKSkpdOrUiUOHDlGsWDFcXFw4deoUw4YNA6BTp07GvQkJCbRq1YozZ87g5OREsWLFSE9P5/Dhwxw+fJhr167xxhtvZPv8tWvXcuHCBQoWLEhCQgIjR45k7dq1nDlzBldXV86cOcOQIUMICwsDbi0geP3114mIiMDV1RV/f39SU1M5cuQIR44c4eeff2bEiBH/ut4iIiIiIiLycFMqdREREREREZH/YubMmaxZs4Y1a9bQoEEDAN566y3jtTVr1vDMM88Y97/33nucPXuWwYMHs2/fPsLCwvj+++9Zvnw57u7uTJs2jZiYGOP+06dPM2fOHEwmE9OmTWPHjh2sX7+enTt3UrJkSU6cOMHWrVvvSl2mTJnC+fPnWbBgAVu3bmX37t00bdoUgNDQ0Gz3zp49mzNnzlC6dGm2b9/Opk2b2Lp1K9OnTzf+u2RmZmZ7z2+//cbSpUvZunUrRYsWxWazkZyczJYtW1iyZAkAZ86cMe4fOnQoERER9OrVi3379rFhwwa2bt3Kxo0bKVq0KKtWrWL//v13pe4iIiIiIiLy8NKOcREREREREZG7KDIykn379uHi4sLixYtZvHjxbfdkZmaya9cu2rZtC4DVamXYsGF4eXkZgXe4tQv9scce4/Tp05w+ffqulC8uLo4lS5ZQpUoVAJycnHj33XdZt25dtmA9wKOPPkpgYCAVK1bEz8/PeP2JJ57Ay8uLxMRErl69SuHChY1rzz//PJUqVQIgICCAixcv8tprr+Hj42Okg3cE02NjY1m7di1ms5ktW7awZcuWbL8/JSUFgB07dvDII4/clfqLiIiIiIjIw0mBcREREREREZG7KDw8HIDU1FSioqL+9L4LFy4YPwcEBBAQEIDdbufkyZMcP36cEydOsG/fPn7++WcAMjIy7kr5GjRoYATFHfz9/QFu2/39xBNPAJCcnMxPP/1EdHQ0R48eZdeuXSQmJgKQnp6e7T0lSpS47Xfe6TWAw4cPG7/zf/1vJSIiIiIiIvJPKDAuIiIiIiIichclJCQA8NxzzzF58uT/+X1ff/0106dP5/LlywAULFiQypUr89hjj7Fnz567Vr5atWrd9prJZLrjvbGxsQwfPpwNGzaQnp6O1WolKCiIevXqsXHjRuLi4m57j9l8+6ltd3oNID4+HoAKFSqwatWqv1ELERERERERkb9HgXERERERERGRuyhfvnwAXLx48Y7Xk5KSSEpKwtXVlfz58wOwYsUKPv/8c4KCgpgxYwbVq1c3PmfSpEl3NTDu+Nz/xm638/bbb7Nv3z6aN29Op06dCAkJwcnJCYCdO3feMTD+d3h7ewN//t8qJSWF+Ph4nJ2d8fX1/Ve/S0RERERERB5ud16yLSIiIiIiIiL/SPXq1QE4duwY58+fv+36gAEDqFevHrNmzTJe++abbwDo06cP9erVM4LXdrudiIiI+1Dq28XExLBv3z7c3NwYOnQo5cqVM4Liv/76K7Gxsf/6d1SuXBmLxcL169f56aefbrs+fvx46tWrx+eff/6vf5eIiIiIiIg83BQYFxEREREREbmLKlSowKOPPkpmZia9evXi1KlTxrXVq1ezZcsWzGYzTZo0MV53nNedNQgeExPD22+/zc6dO+9f4bNwpIS/efMmx44dA8Bms7Fjxw46d+5MSkrKv/4dvr6+NGvWDID333/fOJ8dYNeuXSxZsgSAl1566V//LhEREREREXm4KZW6iIiIiIiIyF02evRoOnXqxLFjx2jUqBFFixYlPT2dq1evAtC/f3/KlStn3N+0aVPGjh3LggUL2LRpE1arlfPnz2M2m6lYsSJHjx413nu/lC9fnlKlSnHy5EleeeUVihcvzvXr14mPj6dYsWL4+voSGxvLtWvXKF68+D/+PQMHDuSXX34hIiKCNm3aULBgQaxWq5FevV27dtSvX/8u1UpEREREREQeVtoxLiIiIiIiInKXFSlShJUrV9KrVy9CQkK4du0aKSkpPP7448yZM4cuXbpku7979+4MHTqUihUrkpiYSGJiIvXq1WPhwoX07NkTgP/7v/8zdnHfDxaLhfnz59O+fXsKFy7M+fPn8fT0pGPHjqxYscJIGb9y5cp/9Xs8PT35+uuvGTBgABUqVCAxMZG4uDiqV6/O+PHj+eSTT+5GdUREREREROQhZ7Lb7facLoSIiIiIiIiIiIiIiIiIiMi9oh3jIiIiIiIiIiIiIiIiIiKSp+mMcREREREREZEHyOLFi1myZMn/fH+lSpX44osv7mGJRERERERERHI/BcZFREREREREHiBXr14lKirqf74/X75897A0IiIiIiIiIg8GnTEuIiIiIiIiIiIiIiIiIiJ5ms4YFxERERERERERERERERGRPE2BcRERERERERERERERERERydMUGBcRERERERERERERERERkTxNgXEREREREREREREREREREcnTFBgXEREREREREREREREREZE8TYFxERERERERERERERERERHJ0xQYFxERERERERERERERERGRPE2BcRERERERERERERERERERydMUGBcRERERERERERERERERkTzt/wGC36YN3Pl23QAAAABJRU5ErkJggg==\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "feature_importance = pd.DataFrame()\n", "feature_importance['fea_name'] = feature_cols\n", "feature_importance['fea_imp'] = gbm.feature_importance()\n", "feature_importance = feature_importance.sort_values('fea_imp', ascending=False)\n", "\n", "plt.figure(figsize=[20, 10])\n", "ax = sns.barplot(x=feature_importance['fea_name'], y=feature_importance['fea_imp'])\n", "ax.set_xticklabels(labels=feature_importance['fea_name'], rotation=45, fontsize=18)\n", "ax.set_yticklabels(labels=[0, 2000, 4000, 6000, 8000, 10000, 12000, 14000, 16000], fontsize=6)\n", "plt.xlabel('fea_name', fontsize=18)\n", "plt.ylabel('fea_imp', fontsize=18)\n", "plt.tight_layout()\n", "plt.savefig('./figure/特征重要性.png')" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 17, "outputs": [], "source": [ "import seaborn as sns" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 18, "outputs": [], "source": [ "from sklearn.preprocessing import MinMaxScaler" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 18, "outputs": [], "source": [], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.6" } }, "nbformat": 4, "nbformat_minor": 0 }