{"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_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nimport gc\nimport re\nimport seaborn as sns\nimport matplotlib.pyplot as plt\nfrom sklearn.model_selection import StratifiedKFold\nfrom lightgbm import LGBMClassifier, LGBMRegressor\nfrom sklearn.metrics import roc_auc_score\nimport warnings\ndef warn(*args, **kwargs):\n    pass\nwarnings.warn = warn","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def reduce_mem_usage(data, verbose = True):\n    start_mem = data.memory_usage().sum() / 1024**2\n    if verbose:\n        print('Memory usage of dataframe: {:.2f} MB'.format(start_mem))\n    \n    for col in data.columns:\n        col_type = data[col].dtype\n        c_min = data[col].min()\n        c_max = data[col].max()\n       \n        if c_min > np.finfo(np.float16).min and c_max < np.finfo(np.float16).max:\n            data[col] = data[col].astype(np.float16)\n        elif c_min > np.finfo(np.float32).min and c_max < np.finfo(np.float32).max:\n            data[col] = data[col].astype(np.float32)\n        else:\n            data[col] = data[col].astype(np.float64)\n\n    end_mem = data.memory_usage().sum() / 1024**2\n    if verbose:\n        print('Memory usage after optimization: {:.2f} MB'.format(end_mem))\n        print('Decreased by {:.1f}%'.format(100 * (start_mem - end_mem) / start_mem))\n    \n    return data","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cod_clasificador_deudor_prop = {0: 0.15688926647141677, 1: 0.2890634923515215, 2: 0.4431920199501247, \n                                3: 0.64500279173646, 4: 0.6764332825976661, 5: 0.7514495828029981}\n\ncredito_prop = {6: 0.0, 8: 0.10902255639097744, 9: 0.10562302275742423, 10: 0.17494253870506093,\n 11: 0.16899460655510995, 12: 0.18052665829537226, 13: 0.07561248600920284, 99: 0.13607809026771045}\n\ncod_instit_financiera_prop = {999:0.6116504854368932, 85: 0.7619047619047619, 92: 0.41509433962264153,\n 52: 0.4954128440366973, 95: 0.9407665505226481, 49: 0.9241379310344827, 43: 0.2354948805460751, 69: 0.7948717948717948,\n 53: 0.1182170542635659, 48: 0.17302052785923755, 60: 0.3925619834710744, 82: 0.13231552162849872, 59: 0.1837968561064087,\n 44: 0.15822130299896586, 4: 0.105716523101018, 42: 0.1331793687451886, 58: 0.14725770097670923, 35: 0.20191649555099248,\n 40: 0.14709851551956815, 24: 0.19044911881750995, 45: 0.2870999030067895, 30: 0.13221601489757914, 23: 0.16858917480035493,\n 22: 0.1360417443160641, 29: 0.1187363834422658, 16: 0.1825551232166018, 62: 0.1275894538606403, 63: 0.33434721572297615,\n 27: 0.13233790141133156, 54: 0.14940997335363532, 65: 0.3542074363992172, 21: 0.13103687034793146, 46: 0.4733054393305439,\n 7: 0.12812079533562565, 41: 0.15185904136180378, 56: 0.12247924080664294, 36: 0.23845954356846474, 38: 0.13467779323133983,\n 8: 0.06798168369144064, 25: 0.13936565688523295, 19: 0.11906175771971496, 15: 0.18454812172812518, 57: 0.12826350941105039,\n 17: 0.15016005432146667, 20: 0.1284232804232804, 33: 0.34622419649856284, 18: 0.1435701214440193, 3: 0.09706149841628249,\n 13: 0.14328660053018502, 61: 0.2569009541728262, 2: 0.09969571778442966, 32: 0.20545250783340577, 0: 0.1209448318334426,\n 11: 0.11768627804306694, 55: 0.3113530707120137, 37: 0.16164259079372043, 1: 0.1374771845767739, 34: 0.1429118217693719, 10: 0.1469047592341256,\n 28: 0.14690657611396388}\n\nproducto_prop = {0: 0.17728251563189165, 1: 0.15711097539397606, 2: 0.15219135166776876, 3: 0.1487220526087886, 4: 0.1752574465729155,\n 5: 0.15935291690307937, 6: 0.2072482457168696, 7: 0.18557780564425427, 8: 0.15584060614921086, 9: 0.13261809807335842,\n 10: 0.17635699013725084, 11: 0.1594650945431016, 12: 0.7600888825173823, 13: 0.13241688602905333, 14: 0.13660377358490566,\n 15: 0.2196812922942589, 16: 0.07092907092907093, 17: 0.7503486750348675, 18: 0.475635593220339, 19: 0.08317063647012886,\n 20: 0.44977019041365723, 21: 0.10645355850422196, 22: 0.06430496726992684, 23: 0.34439359267734554, 24: 0.06698564593301436,\n 25: 0.42857142857142855, 28: 0.0756578947368421, 29: 0.3509532062391681, 31: 0.09330985915492958, 255: 0.13520217373759114,\n 999: 0.06302521008403361}\n\nriesgo_prop = {1: 0.15819262623191357, -1: 0.15831363146039784, 2: 0.46651922262481765, 3: 0.5348513011152416,\n 5: 0.7205882352941176}","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#utils \nseed = 1997\ndef get_rcc_features_scheme(rcc_final: pd.DataFrame, rcc_df: pd.DataFrame, \n                               prod_dict, inst_dict, deudor_dict, credito_dict, riesgo_dict) -> pd.DataFrame:\n    \n    agg = {'PRODUCTO' : [\"COD_CLASIFICACION_DEUDOR_prop\",\n                                    \"cod_instit_financiera_prop\",\"saldo\",\"condicion\",'riesgo_prop'],\n           'RIESGO_DIRECTO' : [\"PRODUCTO_prop\",\n                               \"saldo\",\"condicion\",\"tipo_credito_prop\"]}\n    agg_1 = {'PRODUCTO' : [\"COD_CLASIFICACION_DEUDOR_prop\",\n                                    \"cod_instit_financiera_prop\",\"saldo\",'tipo_credito_prop'],\n           'cod_instit_financiera' : [\"saldo\",\"PRODUCTO_prop\"]}\n    \n    # tratando los posibles puntos influyentes?\n    rcc_df[\"PRODUCTO\"] = rcc_df[\"PRODUCTO\"].fillna(255).astype(np.int16)\n    cod_inst_low_freq = [89, 31, 105, 84, 72, 87, 9, 74, 98, 66, 67, 71, 14, 70, 76, 5, 81, 93, 6, 79, 97, 47, 75, 26, 78, 80, 73, 86, \n                         68, 103, 50, 91,94, 88, 77, 51, 99, 83, 100, 90, 64, 102, 107, 12, 106, 96, 104, 108, 39, 101]\n    prod_low_freq = [40,41, 33, 36, 35, 39, 34, 37, 38, 27, 30, 32]\n    rcc_df.loc[rcc_df.cod_instit_financiera.isin( cod_inst_low_freq),\"cod_instit_financiera\"] = 999\n    rcc_df.loc[rcc_df.PRODUCTO.isin( prod_low_freq),\"PRODUCTO\"] = 999\n    rcc_df[\"cod_instit_financiera\"] = rcc_df[\"cod_instit_financiera\"].fillna(999).astype(np.int16)\n    del cod_inst_low_freq, prod_low_freq\n\n    rcc_df[\"PRODUCTO_prop\"] = rcc_df[\"PRODUCTO\"].map(prod_dict)\n    rcc_df[\"riesgo_prop\"] = rcc_df[\"RIESGO_DIRECTO\"].map(riesgo_dict)\n    rcc_df[\"cod_instit_financiera_prop\"] = rcc_df[\"cod_instit_financiera\"].map(inst_dict)\n    rcc_df[\"tipo_credito_prop\"] = rcc_df[\"tipo_credito\"].map(credito_dict)\n    rcc_df[\"COD_CLASIFICACION_DEUDOR_prop\"] = rcc_df[\"COD_CLASIFICACION_DEUDOR\"].map(deudor_dict)\n    \n    rcc_df.loc[(rcc_df.PRODUCTO.isin( [1,0,255,2,3,4,6,8,5,15])==False),\"PRODUCTO\"] = 999\n    rcc_df.loc[(rcc_df.RIESGO_DIRECTO.isin( [1, -1])==False),\"tipo_credito\"] = 999\n    rcc_df.loc[(rcc_df.cod_instit_financiera.isin( [28,10,34,1,37,55,11,0,32,2])==False),\"cod_instit_financiera\"] = 999\n    bins = [-1, 0, 30, float(\"inf\")]\n    rcc_df[\"calificacion\"] = pd.cut(rcc_df.condicion, bins)\n    rcc_df[\"calificacion\"] = rcc_df[\"calificacion\"].cat.codes\n    function = ['sum','mean','min', 'max']\n\n    rcc_df = rcc_df.reset_index().set_index(\"codmes\").sort_index()\n    for mes in rcc_df.index.unique():\n        \n        rcc_df_mes = rcc_df.loc[mes]\n        for agg_i in agg.keys():\n            rcc_agg = rcc_df_mes.groupby([\"key_value\",agg_i])[agg[agg_i]].agg(function).unstack(level=1)\n            rcc_agg = rcc_agg.fillna(rcc_agg.min())\n            column_name = [''.join(str(col)).strip('()').replace(',','_').replace(\" \",'') for col in rcc_agg.columns.values]\n            rcc_agg.columns = [ re.sub(\"[\\\"\\']\", \"\", i) for i in column_name ]\n            rcc_agg = rcc_agg.add_suffix(\"_\"+str(agg_i)+'_mes_'+str(mes)[-2:])\n            rcc_agg = reduce_mem_usage(rcc_agg, verbose = False)\n            rcc_final = rcc_final.join(rcc_agg)\n            del rcc_agg\n        del rcc_df_mes\n    for agg_i in agg_1.keys():\n        rcc_agg = rcc_df.groupby([\"key_value\",agg_i])[agg_1[agg_i]].agg(function).unstack(level=1).fillna(0)\n        column_name = [''.join(str(col)).strip('()').replace(',','_').replace(\" \",'') for col in rcc_agg.columns.values]\n        rcc_agg.columns = [ re.sub(\"[\\\"\\']\", \"\", i) for i in column_name ]\n        rcc_agg = rcc_agg.add_suffix(\"_\"+str(agg_i))\n        rcc_agg = reduce_mem_usage(rcc_agg, verbose = False)\n        rcc_final = rcc_final.join(rcc_agg)\n        del rcc_agg\n    for agg_i in agg_1.keys():\n        rcc_df_mes = rcc_df.loc[(rcc_df.index.unique().min()+6):]\n        rcc_agg = rcc_df_mes.groupby([\"key_value\",agg_i])[agg_1[agg_i]].agg(function).unstack(level=1).fillna(0)\n        column_name = [''.join(str(col)).strip('()').replace(',','_').replace(\" \",'') for col in rcc_agg.columns.values]\n        rcc_agg.columns = [ re.sub(\"[\\\"\\']\", \"\", i) for i in column_name ]\n        rcc_agg = rcc_agg.add_suffix(\"_\"+str(agg_i)+'_mes_09_02')\n        rcc_agg = reduce_mem_usage(rcc_agg, verbose = False)\n        rcc_final = rcc_final.join(rcc_agg)\n        del rcc_agg\n    gc.collect()\n    return rcc_final\ndef data_feature_reduce(df_train, df_test, features_names):\n    for feature_i in features_names:\n        levels = df_train[feature_i].value_counts(normalize = True).index.to_numpy()[\n        df_train[feature_i].value_counts()>200]\n        df_train.loc[df_train[feature_i].isin( levels)==False,feature_i] = -999\n        df_test.loc[df_test[feature_i].isin( levels)==False,feature_i] = -999\n    return df_train, df_test\ndef mean_encoding(df_train, df_test, y_train, features_names):\n    df_train = df_train.join(y_train).reset_index()\n    for feature_i in features_names:\n        to_map = dict(df_train.drop_duplicates([\"key_value\",feature_i]).groupby(feature_i).target.mean())\n        df_train[feature_i] = df_train[feature_i].map(to_map)\n        df_test[feature_i] = df_test[feature_i].map(to_map)\n    return df_train.drop(\"target\",axis = 1), df_test.reset_index()\ndef parse_reduce_mean_encoding(df_train, df_test, y_train, features_names):\n    df_train, df_test = data_feature_reduce(df_train, df_test, features_names)\n    df_train, df_test = mean_encoding(df_train, df_test, y_train, features_names)\n    return df_train, df_test\ndef get_sunat_df(sunat_train_path, sunat_test_path, y_train_path, train_df, test_df):\n    \n    train_df = pd.DataFrame(train_df.index,columns = [\"key_value\"]).set_index(\"key_value\")\n    test_df = pd.DataFrame(test_df.index,columns = [\"key_value\"]).set_index(\"key_value\")\n    sunat_train = pd.read_csv(sunat_train_path).set_index(\"key_value\")\n    sunat_train = (train_df.join(sunat_train)).fillna(-9999)\n    sunat_test = pd.read_csv(sunat_test_path).set_index(\"key_value\")\n    sunat_test = (test_df.join(sunat_test)).fillna(-9999)\n    y_train = pd.read_csv(y_train_path).set_index(\"key_value\")\n    \n    sunat_features = sunat_train.columns.to_numpy()\n    sunat_train, sunat_test = parse_reduce_mean_encoding(sunat_train, sunat_test, y_train, sunat_features)\n    sunat_train = sunat_train.groupby(\"key_value\").agg([\"max\",\"mean\"])\n    sunat_test = sunat_test.groupby(\"key_value\").agg([\"max\",\"mean\"])\n    column_name = [''.join(str(col)).strip('()').replace(',','_').replace(\" \",'') for col in sunat_train.columns.values]\n    sunat_train.columns = [ re.sub(\"[\\\"\\']\", \"\", i) for i in column_name ]\n    sunat_test.columns = [ re.sub(\"[\\\"\\']\", \"\", i) for i in column_name ]\n    \n    return sunat_train, sunat_test\ndef get_se_df(se_train_path, se_test_path, y_train_path, train_df, test_df):\n    \n    train_df = pd.DataFrame(train_df.index,columns = [\"key_value\"]).set_index(\"key_value\")\n    test_df = pd.DataFrame(test_df.index,columns = [\"key_value\"]).set_index(\"key_value\")\n    se_train = pd.read_csv(se_train_path).set_index(\"key_value\")\n    se_train = (train_df.join(se_train)).fillna(-9999)\n    se_test = pd.read_csv(se_test_path).set_index(\"key_value\")\n    se_test = (test_df.join(se_test)).fillna(-9999)\n    y_train = pd.read_csv(y_train_path).set_index(\"key_value\")\n    \n    se_features = se_train.drop(\"edad\",axis =1).columns.to_numpy()\n    se_train, se_test = parse_reduce_mean_encoding(se_train, se_test, y_train, se_features)\n    return se_train.set_index(\"key_value\"), se_test.set_index(\"key_value\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def get_rcc_features(rcc_path: str,prod_dict=None, inst_dict=None, deudor_dict=None, credito_dict = None, riesgo_dict = None)->pd.DataFrame:\n    \n    types_dict = {'condicion': np.int16, 'RIESGO_DIRECTO': np.int16,\n              'saldo': np.float64, 'COD_CLASIFICACION_DEUDOR': np.int32, \n               'codmes': np.int32, 'tipo_credito': np.int16}\n        \n    rcc_df = pd.read_csv(rcc_path,dtype=types_dict).set_index(\"key_value\").sort_index()\n    codmes_inicio = rcc_df.codmes.min(); codmes_fin = rcc_df.codmes.max()\n    '''creando la base final'''\n    rcc_final = pd.DataFrame(np.sort(rcc_df.index.unique()),columns=[\"key_value\"]).set_index(\"key_value\")\n    rcc_df = rcc_df.reset_index().set_index(\"codmes\").sort_index()\n\n    rcc_final = get_rcc_features_scheme(rcc_final, rcc_df,prod_dict, inst_dict, deudor_dict, credito_dict, riesgo_dict)\n    print(\"Rcc data extracted successfully\")\n    return rcc_final\n    del rcc_df\n    gc.collect()","metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#selected_feature = pd.read_csv(\"./selected_feature.csv\",header=None)[0].to_numpy()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train = get_rcc_features(\"/kaggle/input/interbank20/rcc_train.csv\", prod_dict=producto_prop,\n                                 inst_dict=cod_instit_financiera_prop, deudor_dict=cod_clasificador_deudor_prop,\n                                                credito_dict = credito_prop, riesgo_dict = riesgo_prop)#.loc[:,selected_feature]\ntrain.shape","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"y_train = pd.read_csv(\"/kaggle/input/interbank20/y_train.csv\", index_col=\"key_value\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Seleccionando las variables","metadata":{}},{"cell_type":"code","source":"def select_features(train: pd.DataFrame, y_train) -> list:\n       \n    learner = LGBMClassifier(n_estimators=42,lambda_l1  = 20)\n    learner.fit(train,y_train.loc[train.index])\n    learner = pd.Series(learner.feature_importances_ / learner.feature_importances_.sum(), index=train.columns).sort_values(ascending=False)\n    return train.loc[:,learner!=0].columns.to_numpy()\n    del lerner \n    gc.collect()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"selected_feature = select_features(train.sample(frac = 0.30,random_state=seed), y_train)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"gc.collect()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"np.savetxt('selected_feature.csv', selected_feature, delimiter=' ',newline = \"\\n\", fmt=\"%s\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train = train.loc[:,selected_feature]","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test = get_rcc_features(\"/kaggle/input/interbank20/rcc_test.csv\", prod_dict=producto_prop,\n                        inst_dict=cod_instit_financiera_prop, deudor_dict=cod_clasificador_deudor_prop\n                       , credito_dict = credito_prop, riesgo_dict = riesgo_prop).loc[:,selected_feature]","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train.shape, test.shape","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"se_train_path=\"/kaggle/input/interbank20/se_train.csv\"\nse_test_path= \"/kaggle/input/interbank20/se_test.csv\"\ny_train_path = \"../input/interbank20/y_train.csv\"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"se_train= pd.read_csv(\"/kaggle/input/interbank20/se_train.csv\").set_index(\"key_value\")\nse_test= pd.read_csv(\"/kaggle/input/interbank20/se_test.csv\").set_index(\"key_value\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sunat_train = pd.read_csv(\"../input/interbank20/sunat_train.csv\")\nsunat_test = pd.read_csv(\"../input/interbank20/sunat_test.csv\")  \n\nsunat_train = sunat_train.drop_duplicates(subset=[\"key_value\"]).set_index(\"key_value\")\nsunat_test = sunat_test.drop_duplicates(subset=[\"key_value\"]).set_index(\"key_value\")  \n \ntrain = train.join(se_train).join(sunat_train)\ntest = test.join(se_test.set_index(\"key_value\")).join(sunat_test)  ","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sunat_train_path = \"../input/interbank20/sunat_train.csv\"\nsunat_test_path = \"../input/interbank20/sunat_test.csv\"\nsunat_train, sunat_test = get_sunat_df(sunat_train_path, sunat_test_path, y_train_path, train, test)\n\ntrain = train.join(se_train).join(sunat_train)\ntest = test.join(se_test).join(sunat_test)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"del se_train, sunat_train, se_test, sunat_test ","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Modelagem","metadata":{}},{"cell_type":"code","source":"folds = [train.index[t] for t, v in StratifiedKFold(15, shuffle = True,random_state = seed).split(train,y_train.loc[train.index])]\ntest_probs = []\ntrain_probs = []\nfi = []\nfor i, idx in enumerate(folds):\n    print(\"*\"*10, i, \"*\"*10)\n    Xt = train.loc[idx].fillna(0)\n    yt = y_train.loc[Xt.index]\n\n    Xv = train.drop(Xt.index).fillna(0)     \n    yv = y_train.loc[Xv.index]\n\n    learner = LGBMClassifier(n_estimators=4500,min_data_in_leaf = 400, lambda_l2  = 120, max_bin=948)\n    learner.fit(Xt, yt,  early_stopping_rounds=100,eval_metric=\"auc\",\n                    eval_set=[(Xt, yt), (Xv, yv)], verbose=300)\n    test_probs.append(pd.Series(learner.predict_proba(test.fillna(0))[:, -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    fi.append(pd.Series(learner.feature_importances_ / learner.feature_importances_.sum(), index=Xt.columns))\n    gc.collect()\ntest_probs = pd.concat(test_probs, axis=1).mean(axis=1)\ntrain_probs = pd.concat(train_probs)\nfi = pd.concat(fi, axis=1).mean(axis=1)\nprint(\"*\" * 21)\nprint(\"roc auc estimado: \", roc_auc_score(y_train.loc[train_probs.index], train_probs))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"8577 0.8596695254180021 0.8597106644743888","metadata":{}},{"cell_type":"markdown","source":"folds = [train.index[t] for t, v in StratifiedKFold(5, shuffle = True,random_state = seed).split(train,y_train.loc[train.index])]\ntest_probs_dart = []\ntrain_probs_dart = []\nfi = []\nfor i, idx in enumerate(folds):\n    print(\"*\"*10, i, \"*\"*10)\n    Xt = train.loc[idx].fillna(0)\n    yt = y_train.loc[Xt.index]\n  \n    Xv = train.drop(Xt.index).fillna(0)\n    yv = y_train.loc[Xv.index]\n\n    learner = LGBMClassifier(n_estimators=1900,min_data_in_leaf = 500,lambda_l2  = 120, \n                             boosting_type  = \"dart\", feature_fraction = 0.8)\n    learner.fit(Xt, yt,  eval_set=[(Xt, yt), (Xv, yv)], eval_metric=\"auc\")\n    test_probs_dart.append(pd.Series(learner.predict_proba(test.fillna(0))[:, -1], index=test.index, name=\"fold_\" + str(i)))\n    train_probs_dart.append(pd.Series(learner.predict_proba(Xv)[:, -1], index=Xv.index, name=\"probs\"))\n    fi.append(pd.Series(learner.feature_importances_ / learner.feature_importances_.sum(), index=Xt.columns))\n    gc.collect() \ntest_probs_dart = pd.concat(test_probs_dart, axis=1).mean(axis=1)\ntrain_probs_dart = pd.concat(train_probs_dart)\nfi = pd.concat(fi, axis=1).mean(axis=1)\n\nprint(\"*\" * 21)\nprint(\"roc auc estimado: \", roc_auc_score(y_train.loc[train_probs_dart.index], train_probs_dart))","metadata":{"trusted":true}},{"cell_type":"code","source":"train_squeme_1 = pd.DataFrame(train_probs.rename(\"probs_lgbm_1\"))#.join(pd.DataFrame(train_probs_dart.rename(\"probs_dart_1\")))\ntest_squeme_1 = pd.DataFrame(test_probs.rename(\"probs_lgbm_1\"))#.join(pd.DataFrame(test_probs_dart.rename(\"probs_dart_1\")))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_squeme_1.to_csv(\"train_squeme_1.csv\")\ntest_squeme_1.to_csv(\"test_squeme_1.csv\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]}]}