{"cells":[{"metadata":{},"cell_type":"markdown","source":"# Modelo Interbank"},{"metadata":{},"cell_type":"markdown","source":"##### Nota: Pre-procesamiento v20"},{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true},"cell_type":"code","source":"import pandas as pd\nfrom lightgbm import LGBMClassifier\nfrom sklearn.metrics import roc_auc_score\nfrom sklearn.model_selection import KFold","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train = pd.read_csv(\"/kaggle/input/pre-procesamiento-interbank/train-v20.gz\")\ny_train = pd.read_csv(\"/kaggle/input/interbank20/y_train.csv\", index_col=\"key_value\").target\n\ntest = pd.read_csv(\"/kaggle/input/pre-procesamiento-interbank/test-v20.gz\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"folds = [train.index[t] for t, v in KFold(5).split(train)]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"params = {\n    \"min_child_samples\": 2213,\n    \"min_split_gain\": 0.723453223,\n    \"min_child_weight\": 0.006471099,\n    \"bagging_fraction\": 0.545505283,\n    \"feature_fraction\": 0.162791863,\n    \"learning_rate\": 0.05\n}","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"best_probs = []\ntest_probs = []\ntrain_probs = []\np  = \" /// \".join([f\"{k}={v}\" for k, v in params.items()])\nprint(\"*\"*10, p, \"*\"*10)\nfor i, idx in enumerate(folds):\n    Xt = train.loc[idx]\n    yt = y_train.loc[Xt.index]\n\n    Xv = train.drop(Xt.index)\n    yv = y_train.loc[Xv.index]\n\n    learner = LGBMClassifier(n_estimators=5000, **params)\n    learner.fit(Xt, yt, early_stopping_rounds=150, eval_metric=\"auc\",\n                eval_set=[(Xt, yt), (Xv, yv)], verbose=False)\n    test_probs.append(pd.Series(learner.predict_proba(test)[:, -1], index=test.index, name=\"fold_\" + str(i)))\n    train_probs.append(pd.Series(learner.predict_proba(Xv)[:, -1], index=Xv.index, name=\"probs\"))\n\ntest_probs = pd.concat(test_probs, axis=1).mean(axis=1)\ntrain_probs = pd.concat(train_probs)\nscore = roc_auc_score(y_train, train_probs.loc[y_train.index])\nprint(f\"roc auc estimado {score}\")","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Guardado de las predicciones modelo para hacer la presentación\n\nFinalmente creamos el archivo CSV que podemos subir como nuestra Solución a la competencia"},{"metadata":{"trusted":true},"cell_type":"code","source":"test_probs.name = \"target\"\ntest_probs.to_csv(\"benchmark-datasetv8-testB.csv\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat":4,"nbformat_minor":4}