{"nbformat": 4, "cells": [{"execution_count": null, "source": ["import lightgbm as lgb\n", "import pandas as pd\n", "import numpy as np\n", "from sklearn import *\n", "\n", "# scala label\n", "train = pd.read_csv('../input/kkbox-churn-scala-label/user_label_201703.csv', dtype={'is_churn': 'int8'})\n", "\n", "# train_v2\n", "#train = pd.read_csv('../input/kkbox-churn-prediction-challenge/train_v2.csv')"], "outputs": [], "metadata": {"_cell_guid": "f6b1d126-e5ad-4ddd-a434-65094b8d2a0c", "_uuid": "8153e53208f0ebb0028d18a635dd882bba2c1822"}, "cell_type": "code"}, {"execution_count": null, "source": ["test = pd.read_csv('../input/kkbox-churn-prediction-challenge/sample_submission_v2.csv')\n", "\n", "members = pd.read_csv('../input/kkbox-churn-prediction-challenge/members_v3.csv')\n", "train = pd.merge(train, members, how='left', on='msno')\n", "test = pd.merge(test, members, how='left', on='msno') \n", "gender = {'male':1, 'female':2}\n", "train['gender'] = train['gender'].map(gender)\n", "test['gender'] = test['gender'].map(gender)\n", "train = train.fillna(-1)\n", "test = test.fillna(-1)\n", "\n", "cols = [c for c in train.columns if c not in ['is_churn','msno']]\n", "print(cols)"], "outputs": [], "metadata": {"_cell_guid": "0004487c-fd12-4bab-8037-a6e3e5989e71", "collapsed": true, "_uuid": "f5577d164dc892d84de8dd72172e1e5c84cf6c49"}, "cell_type": "code"}, {"execution_count": null, "source": ["lgb_params = {\n", "    'learning_rate': 0.05,\n", "    'application': 'binary',\n", "    'max_depth': 5,\n", "    'num_leaves': 128,\n", "    'verbosity': -1,\n", "    'metric': 'binary_logloss'\n", "}\n", "x1, x2, y1, y2 = model_selection.train_test_split(train[cols], train['is_churn'], test_size=0.2, random_state=0)\n", "        \n", "# lgb\n", "d_train = lgb.Dataset(x1, label=y1)\n", "d_valid = lgb.Dataset(x2, label=y2)\n", "watchlist = [d_train, d_valid]\n", "\n", "model = lgb.train(lgb_params, train_set=d_train, num_boost_round=240, valid_sets=watchlist, early_stopping_rounds=50, verbose_eval=10) \n", "lgb_pred = model.predict(test[cols])\n", "\n", "test['is_churn'] = lgb_pred.clip(0.+1e-15, 1-1e-15)\n", "test[['msno','is_churn']].to_csv('lgb_sub_scala.csv', index=False)"], "outputs": [], "metadata": {"collapsed": true}, "cell_type": "code"}], "nbformat_minor": 1, "metadata": {"language_info": {"mimetype": "text/x-python", "pygments_lexer": "ipython3", "name": "python", "nbconvert_exporter": "python", "version": "3.6.3", "file_extension": ".py", "codemirror_mode": {"name": "ipython", "version": 3}}, "kernelspec": {"name": "python3", "language": "python", "display_name": "Python 3"}}}