{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.13","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":50160,"databundleVersionId":7921029,"sourceType":"competition"}],"dockerImageVersionId":30646,"isInternetEnabled":false,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"## **Home Credit - Credit Risk Model Stability - TensorFlow**\n* Cristhian Ccala Huamani","metadata":{}},{"cell_type":"code","source":"import pandas as pd\nimport polars as pl\nimport numpy as np\nimport os\nimport tensorflow as tf\nimport matplotlib.pyplot as plt \nimport seaborn as sns\n\nfrom sklearn.preprocessing import Normalizer, StandardScaler\nfrom sklearn.metrics import confusion_matrix, accuracy_score\nfrom sklearn.model_selection import train_test_split","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:05:38.747776Z","iopub.execute_input":"2024-11-16T23:05:38.749312Z","iopub.status.idle":"2024-11-16T23:05:53.206631Z","shell.execute_reply.started":"2024-11-16T23:05:38.749273Z","shell.execute_reply":"2024-11-16T23:05:53.205607Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## **Direccion de Datos**","metadata":{}},{"cell_type":"code","source":"dr_train = '/kaggle/input/home-credit-credit-risk-model-stability/csv_files/train'\ndr_test = '/kaggle/input/home-credit-credit-risk-model-stability/csv_files/test'","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:05:53.209211Z","iopub.execute_input":"2024-11-16T23:05:53.210800Z","iopub.status.idle":"2024-11-16T23:05:53.221947Z","shell.execute_reply.started":"2024-11-16T23:05:53.210749Z","shell.execute_reply":"2024-11-16T23:05:53.220404Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## **Procesamiento de Datos**","metadata":{}},{"cell_type":"code","source":"def procesar_datos_pl(df):\n    columnas_a_eliminar =[i for i in df.columns if df[i].null_count() > len(df)*0.1]\n    df = df.drop(columnas_a_eliminar)\n\n    df_numeric = df.select(pl.selectors.numeric())\n    df_categorical = df.select(~pl.selectors.numeric())\n\n    for i in df_categorical.columns:\n        series = pl.Series(df_categorical[i]).cast(pl.Categorical).to_physical()\n        df_categorical = df_categorical.with_columns(**{i: series})\n\n    df = pl.concat([df_numeric, df_categorical], how='horizontal')\n    df = df.group_by('case_id', maintain_order=True).mean()\n    #df = df.fill_null(strategy=\"mean\")\n    for col in df.columns:\n        df = df.with_columns(pl.col(col).fill_null(pl.median(col)),)\n    \n    columnas_a_eliminar = [col for col in df.columns if (df[col] == df[col][0]).all()]\n    df = df.drop(columnas_a_eliminar)\n    \n    return df\n\ndef check_different_dtypes(dfs):\n    columnas = []\n    for i in range(len(dfs[0].columns)):\n        dtypes_set = set(str(df.dtypes[i]) for df in dfs)\n        if len(dtypes_set) >= 2:\n            types = sorted(dtypes_set)\n            columnas.append((dfs[0].columns[i], types[0]))\n    return columnas\n        \ndef change_dtypes(df, dtype_list):\n    for col_name, dtype in dtype_list:\n        df = df.with_columns(pl.col(col_name).cast(pl.Float64 if dtype == 'Float64' else pl.Utf8 if dtype == 'Boolean' else pl.Int64))\n    return df","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:05:53.224671Z","iopub.execute_input":"2024-11-16T23:05:53.226221Z","iopub.status.idle":"2024-11-16T23:05:53.261200Z","shell.execute_reply.started":"2024-11-16T23:05:53.226149Z","shell.execute_reply":"2024-11-16T23:05:53.260057Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# train_base.csv # train_base.csv\ntrain_base = pl.read_csv(f\"{dr_train}/train_base.csv\")\ntest_base = pl.read_csv(f\"{dr_test}/test_base.csv\")\ntarget = train_base['target']\ntrain_base = train_base.drop(['target'])\ndfs = [train_base,test_base]\n\nbase = pl.concat([\n    change_dtypes(train_base, check_different_dtypes(dfs)), \n    change_dtypes(test_base, check_different_dtypes(dfs))\n], how=\"vertical_relaxed\")\nbase = procesar_datos_pl(base)\n\ntrain_base = base.filter(pl.col(\"case_id\").is_in(train_base['case_id']))\ntest_base = base.filter(pl.col(\"case_id\").is_in(test_base['case_id']))","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:05:53.262987Z","iopub.execute_input":"2024-11-16T23:05:53.266871Z","iopub.status.idle":"2024-11-16T23:05:54.541594Z","shell.execute_reply.started":"2024-11-16T23:05:53.266811Z","shell.execute_reply":"2024-11-16T23:05:54.540545Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# train_static_0_0.csv # train_static_0_1.csv # test_static_0_0.csv # test_static_0_1.csv\ntrain_static_0_0 = pl.read_csv(f\"{dr_train}/train_static_0_0.csv\")\ntrain_static_0_1 = pl.read_csv(f\"{dr_train}/train_static_0_1.csv\")\ntest_static_0_0 = pl.read_csv(f\"{dr_test}/test_static_0_0.csv\")\ntest_static_0_1 = pl.read_csv(f\"{dr_test}/test_static_0_1.csv\")\ntest_static_0_2 = pl.read_csv(f\"{dr_test}/test_static_0_2.csv\") \ndfs = [train_static_0_0,train_static_0_1,test_static_0_0,test_static_0_1,test_static_0_2]\n\ntrain_static = pl.concat([\n    change_dtypes(train_static_0_0, check_different_dtypes(dfs)),\n    change_dtypes(train_static_0_1, check_different_dtypes(dfs))\n], how=\"vertical_relaxed\")\ntest_static = pl.concat([\n    change_dtypes(test_static_0_0, check_different_dtypes(dfs)),\n    change_dtypes(test_static_0_0, check_different_dtypes(dfs)),\n    change_dtypes(test_static_0_0, check_different_dtypes(dfs))\n], how=\"vertical_relaxed\")\n\nstatic = pl.concat([train_static, test_static])\nstatic = procesar_datos_pl(static)\n\ntrain_static = static.filter(pl.col(\"case_id\").is_in(train_static['case_id']))\ntest_static = static.filter(pl.col(\"case_id\").is_in(test_static['case_id']))","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:05:54.544311Z","iopub.execute_input":"2024-11-16T23:05:54.544986Z","iopub.status.idle":"2024-11-16T23:06:10.281085Z","shell.execute_reply.started":"2024-11-16T23:05:54.544950Z","shell.execute_reply":"2024-11-16T23:06:10.279980Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# train_static_cb_0.csv # test_static_cb_0.csv\ntrain_static_cb = pl.read_csv(f\"{dr_train}/train_static_cb_0.csv\")\ntest_static_cb = pl.read_csv(f\"{dr_test}/test_static_cb_0.csv\")\ndfs = [train_static_cb,test_static_cb]\n\nstatic_cb = pl.concat([\n    change_dtypes(train_static_cb, check_different_dtypes(dfs)), \n    change_dtypes(test_static_cb, check_different_dtypes(dfs))\n], how=\"vertical_relaxed\")\nstatic_cb = procesar_datos_pl(static_cb)\n\ntrain_static_cb = static_cb.filter(pl.col(\"case_id\").is_in(train_static_cb['case_id']))\ntest_static_cb = static_cb.filter(pl.col(\"case_id\").is_in(test_static_cb['case_id']))","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:06:10.282359Z","iopub.execute_input":"2024-11-16T23:06:10.282749Z","iopub.status.idle":"2024-11-16T23:06:14.223533Z","shell.execute_reply.started":"2024-11-16T23:06:10.282720Z","shell.execute_reply":"2024-11-16T23:06:14.222415Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# train_person_1.csv # test_person_1.csv\ntrain_person_1 = pl.read_csv(f\"{dr_train}/train_person_1.csv\")\ntest_person_1 = pl.read_csv(f\"{dr_test}/test_person_1.csv\")\ndfs = [train_person_1,test_person_1]\n\nperson_1 = pl.concat([\n    change_dtypes(train_person_1, check_different_dtypes(dfs)), \n    change_dtypes(test_person_1, check_different_dtypes(dfs))\n], how=\"vertical_relaxed\")\nperson_1 = procesar_datos_pl(person_1)\n\ntrain_person_1 = person_1.filter(pl.col(\"case_id\").is_in(train_person_1['case_id']))\ntest_person_1 = person_1.filter(pl.col(\"case_id\").is_in(test_person_1['case_id']))","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:06:14.224977Z","iopub.execute_input":"2024-11-16T23:06:14.225252Z","iopub.status.idle":"2024-11-16T23:06:19.786177Z","shell.execute_reply.started":"2024-11-16T23:06:14.225229Z","shell.execute_reply":"2024-11-16T23:06:19.785201Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# train_credit_bureau_b_2.csv # test_credit_bureau_b_2.csv\ntrain_credit_bureau_b_2 = pl.read_csv(f\"{dr_train}/train_credit_bureau_b_2.csv\")\ntest_credit_bureau_b_2 = pl.read_csv(f\"{dr_test}/test_credit_bureau_b_2.csv\")\ndfs = [train_credit_bureau_b_2,test_credit_bureau_b_2]\n\nbureau_b_2 = pl.concat([\n    change_dtypes(train_credit_bureau_b_2, check_different_dtypes(dfs)), \n    change_dtypes(test_credit_bureau_b_2, check_different_dtypes(dfs))\n])\nbureau_b_2 = procesar_datos_pl(bureau_b_2)\n\ntrain_credit_bureau_b_2 = bureau_b_2.filter(pl.col(\"case_id\").is_in(train_credit_bureau_b_2['case_id']))\ntest_credit_bureau_b_2 = bureau_b_2.filter(pl.col(\"case_id\").is_in(test_credit_bureau_b_2['case_id']))","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:06:19.787500Z","iopub.execute_input":"2024-11-16T23:06:19.787942Z","iopub.status.idle":"2024-11-16T23:06:20.290299Z","shell.execute_reply.started":"2024-11-16T23:06:19.787901Z","shell.execute_reply":"2024-11-16T23:06:20.289404Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Unir\ntrain_merged_df = train_base.join(train_static, on='case_id', how='left')\ntrain_merged_df = train_merged_df.join(train_static_cb, on='case_id', how='left')\ntrain_merged_df = train_merged_df.join(train_person_1, on='case_id', how='left')\ntrain_merged_df = train_merged_df.join(train_credit_bureau_b_2, on='case_id', how='left')\n\ntest_merged_df = test_base.join(test_static, on='case_id', how='left')\ntest_merged_df = test_merged_df.join(test_static_cb, on='case_id', how='left')\ntest_merged_df = test_merged_df.join(test_person_1, on='case_id', how='left')\ntest_merged_df = test_merged_df.join(test_credit_bureau_b_2, on='case_id', how='left')\n\nmerged_df = pl.concat([train_merged_df, test_merged_df])\nmerged_df = procesar_datos_pl(merged_df)\ncase_id = merged_df[:,:1]\ncolumn_names = merged_df.columns[1:]\n#merged_df = merged_df[:,1:].select((pl.all()-pl.all().min()) / (pl.all().max()-pl.all().min()))\n#merged_df = pl.DataFrame(Normalizer().fit_transform(merged_df[:,1:]))\nmerged_df = pl.DataFrame(StandardScaler().fit_transform(merged_df[:,1:]))\nmerged_df.columns = column_names\nmerged_df = pl.concat([case_id, merged_df], how=\"horizontal\")\n\ntrain = merged_df.filter(pl.col(\"case_id\").is_in(train_merged_df['case_id']))\ntest = merged_df.filter(pl.col(\"case_id\").is_in(test_merged_df['case_id']))","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:06:20.291654Z","iopub.execute_input":"2024-11-16T23:06:20.291987Z","iopub.status.idle":"2024-11-16T23:06:31.184859Z","shell.execute_reply.started":"2024-11-16T23:06:20.291958Z","shell.execute_reply":"2024-11-16T23:06:31.183727Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train = train.to_pandas()\ntrain","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:06:31.186103Z","iopub.execute_input":"2024-11-16T23:06:31.186381Z","iopub.status.idle":"2024-11-16T23:06:31.851858Z","shell.execute_reply.started":"2024-11-16T23:06:31.186358Z","shell.execute_reply":"2024-11-16T23:06:31.850743Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test = test.to_pandas()\ntest","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:06:31.853217Z","iopub.execute_input":"2024-11-16T23:06:31.853566Z","iopub.status.idle":"2024-11-16T23:06:31.884104Z","shell.execute_reply.started":"2024-11-16T23:06:31.853539Z","shell.execute_reply":"2024-11-16T23:06:31.882995Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"target = target.to_pandas()\ntarget","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:06:31.885486Z","iopub.execute_input":"2024-11-16T23:06:31.885925Z","iopub.status.idle":"2024-11-16T23:06:31.904510Z","shell.execute_reply.started":"2024-11-16T23:06:31.885883Z","shell.execute_reply":"2024-11-16T23:06:31.903352Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plt.figure(figsize = (8,3))\nsns.countplot(x='target', data=target.to_frame())\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:06:31.905987Z","iopub.execute_input":"2024-11-16T23:06:31.906505Z","iopub.status.idle":"2024-11-16T23:06:32.182309Z","shell.execute_reply.started":"2024-11-16T23:06:31.906427Z","shell.execute_reply":"2024-11-16T23:06:32.181175Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train = pd.concat([train, target], axis=1)\ncantidad = np.bincount(train['target'].values.astype('int32'))\ncantidad","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-16T23:07:19.118144Z","iopub.execute_input":"2024-11-16T23:07:19.119833Z","iopub.status.idle":"2024-11-16T23:07:19.601875Z","shell.execute_reply.started":"2024-11-16T23:07:19.119785Z","shell.execute_reply":"2024-11-16T23:07:19.600872Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"\ntrain_1 = train[train['target'] == 1]\ntrains_0 = np.array_split(train[train['target'] == 0], cantidad[0]//cantidad[1])\ntrain = pd.concat([train_1, trains_0[0]], axis=0)","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:07:20.978411Z","iopub.execute_input":"2024-11-16T23:07:20.978836Z","iopub.status.idle":"2024-11-16T23:07:22.437870Z","shell.execute_reply.started":"2024-11-16T23:07:20.978808Z","shell.execute_reply":"2024-11-16T23:07:22.435959Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plt.figure(figsize = (8,3))\nsns.countplot(x='target', data=train)\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-16T23:07:25.328425Z","iopub.execute_input":"2024-11-16T23:07:25.328942Z","iopub.status.idle":"2024-11-16T23:07:25.472310Z","shell.execute_reply.started":"2024-11-16T23:07:25.328904Z","shell.execute_reply":"2024-11-16T23:07:25.471165Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## **Eliminamos el Columnas Innecesarias**","metadata":{}},{"cell_type":"code","source":"case_id = test['case_id']\ntarget = train['target']\ntrain = train.drop(['case_id','target'], axis=1)\ntest = test.drop(['case_id'], axis=1)","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:07:30.157913Z","iopub.execute_input":"2024-11-16T23:07:30.158739Z","iopub.status.idle":"2024-11-16T23:07:30.186363Z","shell.execute_reply.started":"2024-11-16T23:07:30.158706Z","shell.execute_reply":"2024-11-16T23:07:30.185332Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"##  **Dividimos los Datos y Sobremuestreo**","metadata":{}},{"cell_type":"code","source":"# dividimos los datos con un 80% de entranamiendo y 20% de validacion\nx_train, x_valid, y_train, y_valid = train_test_split(\n    train, target,\n    random_state=77,\n    shuffle = True,\n    test_size=0.20)\nprint(x_train.shape)\nprint(x_valid.shape)\nprint(y_train.shape)\nprint(y_valid.shape)","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:07:32.325608Z","iopub.execute_input":"2024-11-16T23:07:32.325980Z","iopub.status.idle":"2024-11-16T23:07:32.400142Z","shell.execute_reply.started":"2024-11-16T23:07:32.325955Z","shell.execute_reply":"2024-11-16T23:07:32.399151Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## **Entranamiento**","metadata":{}},{"cell_type":"code","source":"ds_train = tf.data.Dataset.from_tensor_slices((x_train, y_train))\nds_valid = tf.data.Dataset.from_tensor_slices((x_valid, y_valid))","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:07:39.558745Z","iopub.execute_input":"2024-11-16T23:07:39.559149Z","iopub.status.idle":"2024-11-16T23:07:39.854510Z","shell.execute_reply.started":"2024-11-16T23:07:39.559120Z","shell.execute_reply":"2024-11-16T23:07:39.853470Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"ds_train = ds_train.shuffle(1000)\nds_train = ds_train.batch(64)\nds_valid = ds_valid.batch(64)\nentrenar_ds = ds_train.prefetch(buffer_size=tf.data.AUTOTUNE) \nvalidar_ds = ds_valid.prefetch(buffer_size=tf.data.AUTOTUNE)","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:07:40.365705Z","iopub.execute_input":"2024-11-16T23:07:40.366085Z","iopub.status.idle":"2024-11-16T23:07:40.388428Z","shell.execute_reply.started":"2024-11-16T23:07:40.366059Z","shell.execute_reply":"2024-11-16T23:07:40.387216Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"modelo_1 = tf.keras.models.Sequential([\n    tf.keras.layers.Dense(256, activation='relu', input_shape=(x_train.shape[1],)),\n    tf.keras.layers.BatchNormalization(),\n    tf.keras.layers.Dropout(0.3),\n    tf.keras.layers.Dense(128, activation='relu'),\n    tf.keras.layers.BatchNormalization(),\n    tf.keras.layers.Dropout(0.3),\n    tf.keras.layers.Dense(64, activation='relu'),\n    tf.keras.layers.BatchNormalization(),\n    tf.keras.layers.Dropout(0.1),\n    tf.keras.layers.Dense(32, activation='relu'),\n    tf.keras.layers.BatchNormalization(),\n    tf.keras.layers.Dense(16, activation='relu'),\n    tf.keras.layers.BatchNormalization(),\n    tf.keras.layers.Dense(8, activation='relu'),\n    tf.keras.layers.BatchNormalization(),\n    tf.keras.layers.Dense(4, activation='relu'),\n    tf.keras.layers.BatchNormalization(),\n    tf.keras.layers.Dense(1, activation='sigmoid')\n])\n\nmodelo_1.compile(\n    loss=tf.keras.losses.BinaryCrossentropy(),\n    optimizer=tf.keras.optimizers.Adam(learning_rate=1e-4),\n    metrics=['accuracy']\n)\n\nmodelo_1.summary()","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:07:41.603373Z","iopub.execute_input":"2024-11-16T23:07:41.604289Z","iopub.status.idle":"2024-11-16T23:07:42.158563Z","shell.execute_reply.started":"2024-11-16T23:07:41.604257Z","shell.execute_reply":"2024-11-16T23:07:42.157544Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from tensorflow.keras.callbacks import EarlyStopping\nearly_stop = EarlyStopping(monitor = \"val_loss\",\n                           mode = \"auto\",\n                           verbose = 1,\n                           patience = 5)","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:07:42.307937Z","iopub.execute_input":"2024-11-16T23:07:42.308741Z","iopub.status.idle":"2024-11-16T23:07:42.316655Z","shell.execute_reply.started":"2024-11-16T23:07:42.308706Z","shell.execute_reply":"2024-11-16T23:07:42.314179Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"historia = modelo_1.fit(\n    entrenar_ds, \n    validation_data=validar_ds,\n    epochs=50,\n    callbacks = [early_stop]\n)","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## **Evaluacion del Modelo**","metadata":{}},{"cell_type":"code","source":"modelo_1.evaluate(validar_ds)","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:06:34.100600Z","iopub.status.idle":"2024-11-16T23:06:34.100970Z","shell.execute_reply.started":"2024-11-16T23:06:34.100802Z","shell.execute_reply":"2024-11-16T23:06:34.100817Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"pd.DataFrame(historia.history).plot()\nplt.title('Grafico de Lineas')\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:06:34.102925Z","iopub.status.idle":"2024-11-16T23:06:34.103510Z","shell.execute_reply.started":"2024-11-16T23:06:34.103177Z","shell.execute_reply":"2024-11-16T23:06:34.103197Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"y_pred = modelo_1.predict(validar_ds).ravel()\ny_pred = np.round(y_pred)\ny_pred","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:06:34.105803Z","iopub.status.idle":"2024-11-16T23:06:34.106428Z","shell.execute_reply.started":"2024-11-16T23:06:34.106123Z","shell.execute_reply":"2024-11-16T23:06:34.106149Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"y_true = y_valid.values\ny_true","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:06:34.108265Z","iopub.status.idle":"2024-11-16T23:06:34.108949Z","shell.execute_reply.started":"2024-11-16T23:06:34.108602Z","shell.execute_reply":"2024-11-16T23:06:34.108630Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"mc = confusion_matrix(y_true, y_pred)\nplt.figure(figsize = (6,5))\nplt.title('Matrix de Confusion')\nsns.heatmap(pd.DataFrame(mc, index= [0,1], columns = [0,1]), annot = True, fmt='d')\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:06:34.111797Z","iopub.status.idle":"2024-11-16T23:06:34.112439Z","shell.execute_reply.started":"2024-11-16T23:06:34.112111Z","shell.execute_reply":"2024-11-16T23:06:34.112137Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## **Prediccion de datos de Prueba**","metadata":{}},{"cell_type":"code","source":"test_data = tf.data.Dataset.from_tensor_slices(test)\nds_test = test_data.batch(64)\nds_test = ds_test.prefetch(buffer_size=tf.data.AUTOTUNE)","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:06:34.114135Z","iopub.status.idle":"2024-11-16T23:06:34.114660Z","shell.execute_reply.started":"2024-11-16T23:06:34.114389Z","shell.execute_reply":"2024-11-16T23:06:34.114410Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"prediccion = modelo_1.predict(ds_test).ravel()\nprediccion","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:06:34.116633Z","iopub.status.idle":"2024-11-16T23:06:34.117257Z","shell.execute_reply.started":"2024-11-16T23:06:34.116964Z","shell.execute_reply":"2024-11-16T23:06:34.116989Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## **Enviamos Resultados**","metadata":{}},{"cell_type":"code","source":"submission = pd.DataFrame()\nsubmission['case_id'] = case_id\nsubmission['score'] = prediccion\nsubmission","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:06:34.124508Z","iopub.status.idle":"2024-11-16T23:06:34.124991Z","shell.execute_reply.started":"2024-11-16T23:06:34.124785Z","shell.execute_reply":"2024-11-16T23:06:34.124805Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"submission.to_csv('submission.csv',index=False)","metadata":{"execution":{"iopub.status.busy":"2024-11-16T23:06:34.126380Z","iopub.status.idle":"2024-11-16T23:06:34.126937Z","shell.execute_reply.started":"2024-11-16T23:06:34.126706Z","shell.execute_reply":"2024-11-16T23:06:34.126726Z"},"trusted":true},"outputs":[],"execution_count":null}]}