{ "cells": [ { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "from sklearn.ensemble import RandomForestClassifier\n", "from sklearn.impute import SimpleImputer\n", "from sklearn.pipeline import Pipeline\n", "from sklearn.preprocessing import OneHotEncoder\n", "from sklearn.compose import ColumnTransformer\n", "from sklearn.model_selection import train_test_split, cross_val_score\n", "from sklearn.metrics import accuracy_score\n", "from xgboost import XGBClassifier\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "from sklearn.feature_selection import mutual_info_regression\n", "from sklearn.discriminant_analysis import StandardScaler\n", "import numpy as np\n", "from sklearn.metrics import classification_report\n", "from sklearn.preprocessing import StandardScaler\n", "from sklearn.model_selection import train_test_split, ParameterGrid\n", "from keras.callbacks import TensorBoard, EarlyStopping, LearningRateScheduler\n", "from keras.models import Model\n", "from keras.layers import Activation, Dense, LSTM, Input\n", "from keras.optimizers import Adam, RMSprop, SGD\n", "from scikeras.wrappers import KerasClassifier\n", "import tensorflow as tf\n", "from os import path" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Method to load the dataset" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "def load_dataset(columns_drop) -> tuple([pd.DataFrame, pd.DataFrame, pd.DataFrame, pd.DataFrame]):\n", " train = pd.read_csv(\"C:\\\\Projects\\\\kaggle\\\\competitions\\\\identify-age-related-conditions\\\\data\\\\train.csv\")\n", " greeks = pd.read_csv(\"C:\\\\Projects\\\\kaggle\\\\competitions\\\\identify-age-related-conditions\\\\data\\\\greeks.csv\")\n", " test = pd.read_csv(\"C:\\\\Projects\\\\kaggle\\\\competitions\\\\identify-age-related-conditions\\\\data\\\\test.csv\")\n", " columns_drop = ['Id'] + columns_drop\n", " id_list = test[\"Id\"]\n", " train.drop(columns_drop, inplace=True, axis=1)\n", " test.drop(columns_drop, inplace=True, axis=1)\n", " print(len(train.columns))\n", " return (train, greeks, test, id_list)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Method to split the data in validation and train set randomly" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "def split_data(df: pd.DataFrame, split)->tuple([pd.DataFrame, pd.DataFrame, pd.DataFrame, pd.DataFrame]):\n", " X = df.loc[:, df.columns != \"Class\"]\n", " y = df.loc[:, \"Class\"]\n", " return train_test_split(X, y, test_size=split, random_state=42)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Method to build a Tensorflow model" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "def build_tensorflow_model(input_shape:int, output_shape:int, units1: int, units2: int, units3: int, activation1: str, \n", " activation2: str, activation3: str, optimizer: tf.keras.optimizers.Optimizer, learning_rate: float) -> Model:\n", " input = Input(shape=input_shape)\n", " x = Dense(units=units1, activation=activation1)(input)\n", " x = Dense(units=units2, activation=activation2)(x)\n", " x = Dense(units=units3, activation=activation3)(x)\n", " output = Dense(units=output_shape, activation=\"softmax\")(x)\n", " model = Model(inputs=[input], outputs=[output])\n", " \n", " model.compile(loss=\"categorical_crossentropy\",\n", " optimizer=optimizer(learning_rate=learning_rate),\n", " metrics=[\"accuracy\"]) \n", " return model" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Method to plot the accuracy of the model" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "def plot_acc_tf_model(history:Model):\n", " # summarize history for accuracy\n", " plt.plot(history.history['accuracy'])\n", " plt.plot(history.history['val_accuracy'])\n", " plt.title('model accuracy')\n", " plt.ylabel('accuracy')\n", " plt.xlabel('epoch')\n", " plt.legend(['Train', 'Validation'], loc='upper left')\n", " plt.show()\n", " \n", " # summarize history for loss\n", " plt.plot(history.history['loss'])\n", " plt.plot(history.history['val_loss'])\n", " plt.title('model loss')\n", " plt.ylabel('loss')\n", " plt.xlabel('epoch')\n", " plt.legend(['Train', 'Validation'], loc='upper left')\n", " plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Method to fit the Tensorflow model with ES Callback" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "es_callback = EarlyStopping(\n", " monitor=\"val_accuracy\",\n", " patience=5,\n", " verbose=1,\n", " restore_best_weights=True,\n", " min_delta=0.005\n", " )\n", " \n", "def fit_model(model: Model, x: np.ndarray, y: np.ndarray, epochs: int, split: float) -> Model:\n", " #split train and validation\n", " x_train, x_val, y_train, y_val = train_test_split(x, y, test_size=split, random_state=42)\n", " #fit the model\n", " history = model.fit(x_train, y_train, epochs=epochs, validation_data=(x_val,y_val), callbacks=[es_callback])\n", " return history " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Method for GridSearch of Tensorflow model" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "grid_params = {\"units1\": [8], \"units2\": [16], \"units3\": [64], \"activation1\": [\"relu\"], \"activation2\": [\"relu\"], \n", " \"activation3\": [\"relu\"], \"optimizer\": [Adam, RMSprop, SGD], \"learning_rate\": [0.001, 0.0007]}\n", "\n", "#GridSearch\n", "def grid_search_tf_model(X_train: pd.DataFrame, y_train: pd.DataFrame)->Model:\n", " grid = ParameterGrid(param_grid = grid_params)\n", " results = []\n", " input_shape = len(X_train[1])\n", " output_shape = 2\n", " for idx,params in enumerate(grid):\n", " model = build_tensorflow_model(input_shape=input_shape, output_shape=output_shape, **params)\n", " history = fit_model(model, X_train, y_train, 100, 0.2)\n", " val_loss = history.history['val_loss'][-1] \n", " val_acc = history.history['val_accuracy'][-1]\n", " results.append([val_loss, val_acc])\n", " \n", " val_accuracies = [i[1] for i in results]\n", " val_losses= [i[0] for i in results]\n", " best_acc = val_accuracies.index(max(val_accuracies))\n", " best_loss = val_losses.index(min(val_losses))\n", " print(f\"best acc at index {best_acc}: {max(val_accuracies)}\")\n", " print(f\"best loss at index {best_loss}: {min(val_losses)}\")\n", " print(grid[best_acc])\n", " \n", " model = build_tensorflow_model(input_shape=input_shape, output_shape=output_shape, **grid[best_acc])\n", " history = fit_model(model, X_train, y_train, 100, 0.2)\n", " #plot_acc_tf_model(history)\n", " return model" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Method to build a preprocessing pipeline" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "def build_preprocessing_pipeline(df: pd.DataFrame) -> ColumnTransformer:\n", " # Preprocessing for numerical data \n", " numerical_transformer = Pipeline(steps=[\n", " ('imputer',SimpleImputer(strategy='constant')),\n", " ('scaler', StandardScaler())])\n", " \n", " # Preprocessing for categorical data\n", " categorical_transformer = Pipeline(steps=[\n", " ('imputer', SimpleImputer(strategy='most_frequent')),\n", " ('onehot', OneHotEncoder(handle_unknown='ignore'))\n", " ])\n", "\n", " # Bundle preprocessing for numerical and categorical data\n", " numerical_cols = [cname for cname in df.columns if df[cname].dtype in [\"int64\", \"float64\"]]\n", " categorical_cols = [cname for cname in df.columns if df[cname].nunique() < 10]\n", " preprocessor = ColumnTransformer(\n", " transformers=[\n", " ('num', numerical_transformer, numerical_cols),\n", " ('cat', categorical_transformer, categorical_cols)\n", " ])\n", " print(f\"Number of columns: {len(df.columns)}\")\n", " return preprocessor" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Method to generate the Mutual Info scores and plot them" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [], "source": [ "\n", "def make_mi_scores(X: pd.DataFrame, y: pd.DataFrame, discrete_features: list):\n", " mi_scores = mutual_info_regression(X, y, discrete_features=discrete_features)\n", " mi_scores = pd.Series(mi_scores, name=\"MI Scores\", index=X.columns)\n", " mi_scores = mi_scores.sort_values(ascending=False)\n", " return mi_scores\n", "\n", "def plot_mi_scores(scores):\n", " scores = scores.sort_values(ascending=True)\n", " width = np.arange(len(scores))\n", " ticks = list(scores.index)\n", " plt.figure(dpi=100, figsize=(16, 16))\n", " plt.barh(width, scores)\n", " plt.yticks(width, ticks)\n", " plt.title(\"Mutual Information Scores\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Display MI scores that are beneath 0.01" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "57\n", "dataset shape: (617, 57)\n", "X shape: (431, 56) and y shape: (431,)\n", " Columns with MI equal zero: ['BR', 'FD ', 'CC', 'DN', 'BC', 'EL', 'EP', 'EG', 'FI', 'DH', 'CL', 'EJ', 'BZ', 'AY', 'AZ', 'BD ', 'GE', 'GB', 'FS', 'CB', 'DY', 'CD ', 'CF', 'CU', 'CW ', 'DE', 'AB'] --> total length: 27\n" ] } ], "source": [ "#get the mutual information of features\n", "train, greeks, test, id_list = load_dataset(columns_drop=[])\n", "print(f\"dataset shape: {train.shape}\")\n", "X_train, X_valid, y_train, y_valid = split_data(train, 0.3)\n", "print(f\"X shape: {X_train.shape} and y shape: {y_train.shape}\")\n", "\n", "cols = list(X_train.columns)\n", "cols.append(\"1\")\n", "X_transformed = X_train.fillna(0)\n", "X_transformed[\"EJ\"].replace(['A', 'B'], [0, 1], inplace=True)\n", "discrete_features = X_transformed.dtypes == int\n", "mi_scores = make_mi_scores(X_transformed, y_train, discrete_features)\n", "bad_scores = list(mi_scores.index[i] for i, score in zip(range(len(mi_scores)),mi_scores) if score < 0.01)\n", "#plot_mi_scores(mi_scores)\n", "print(f\" Columns with MI equal zero: {bad_scores} --> total length: {len(bad_scores)}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create a model and preprocessor" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "30\n", "dataset shape: (617, 30)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Number of columns: 29\n", "Epoch 1/100\n", "10/10 [==============================] - 0s 18ms/step - loss: 0.6105 - accuracy: 0.8412 - val_loss: 0.5906 - val_accuracy: 0.8378\n", "Epoch 2/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5545 - accuracy: 0.8412 - val_loss: 0.5453 - val_accuracy: 0.8378\n", "Epoch 3/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5124 - accuracy: 0.8412 - val_loss: 0.5096 - val_accuracy: 0.8378\n", "Epoch 4/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4798 - accuracy: 0.8412 - val_loss: 0.4813 - val_accuracy: 0.8378\n", "Epoch 5/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4554 - accuracy: 0.8412 - val_loss: 0.4542 - val_accuracy: 0.8378\n", "Epoch 6/100\n", " 1/10 [==>...........................] - ETA: 0s - loss: 0.3158 - accuracy: 0.9375Restoring model weights from the end of the best epoch: 1.\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4323 - accuracy: 0.8412 - val_loss: 0.4333 - val_accuracy: 0.8378\n", "Epoch 6: early stopping\n", "Epoch 1/100\n", "10/10 [==============================] - 0s 18ms/step - loss: 0.7007 - accuracy: 0.5236 - val_loss: 0.6205 - val_accuracy: 0.8378\n", "Epoch 2/100\n", "10/10 [==============================] - 0s 5ms/step - loss: 0.5866 - accuracy: 0.8378 - val_loss: 0.5451 - val_accuracy: 0.8378\n", "Epoch 3/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5246 - accuracy: 0.8412 - val_loss: 0.5031 - val_accuracy: 0.8378\n", "Epoch 4/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4803 - accuracy: 0.8412 - val_loss: 0.4772 - val_accuracy: 0.8378\n", "Epoch 5/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4410 - accuracy: 0.8412 - val_loss: 0.4551 - val_accuracy: 0.8378\n", "Epoch 6/100\n", " 1/10 [==>...........................] - ETA: 0s - loss: 0.3819 - accuracy: 0.8438Restoring model weights from the end of the best epoch: 1.\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4065 - accuracy: 0.8446 - val_loss: 0.4337 - val_accuracy: 0.8378\n", "Epoch 6: early stopping\n", "Epoch 1/100\n", "10/10 [==============================] - 0s 17ms/step - loss: 0.6627 - accuracy: 0.6554 - val_loss: 0.5934 - val_accuracy: 0.8108\n", "Epoch 2/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5461 - accuracy: 0.8412 - val_loss: 0.5370 - val_accuracy: 0.8378\n", "Epoch 3/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4874 - accuracy: 0.8446 - val_loss: 0.5073 - val_accuracy: 0.8378\n", "Epoch 4/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4370 - accuracy: 0.8446 - val_loss: 0.4844 - val_accuracy: 0.8378\n", "Epoch 5/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.3903 - accuracy: 0.8547 - val_loss: 0.4710 - val_accuracy: 0.8378\n", "Epoch 6/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.3573 - accuracy: 0.8615 - val_loss: 0.4628 - val_accuracy: 0.8514\n", "Epoch 7/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.3315 - accuracy: 0.8716 - val_loss: 0.4630 - val_accuracy: 0.8649\n", "Epoch 8/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.3126 - accuracy: 0.8750 - val_loss: 0.4662 - val_accuracy: 0.8649\n", "Epoch 9/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.2966 - accuracy: 0.8750 - val_loss: 0.4745 - val_accuracy: 0.8514\n", "Epoch 10/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.2841 - accuracy: 0.8885 - val_loss: 0.4793 - val_accuracy: 0.8378\n", "Epoch 11/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.2726 - accuracy: 0.8953 - val_loss: 0.4900 - val_accuracy: 0.8514\n", "Epoch 12/100\n", " 1/10 [==>...........................] - ETA: 0s - loss: 0.3123 - accuracy: 0.8750Restoring model weights from the end of the best epoch: 7.\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.2625 - accuracy: 0.9054 - val_loss: 0.5004 - val_accuracy: 0.8514\n", "Epoch 12: early stopping\n", "Epoch 1/100\n", "10/10 [==============================] - 0s 18ms/step - loss: 0.6431 - accuracy: 0.7905 - val_loss: 0.5666 - val_accuracy: 0.8378\n", "Epoch 2/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5371 - accuracy: 0.8412 - val_loss: 0.4946 - val_accuracy: 0.8378\n", "Epoch 3/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4760 - accuracy: 0.8412 - val_loss: 0.4376 - val_accuracy: 0.8378\n", "Epoch 4/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4357 - accuracy: 0.8412 - val_loss: 0.3953 - val_accuracy: 0.8378\n", "Epoch 5/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4014 - accuracy: 0.8480 - val_loss: 0.3645 - val_accuracy: 0.8378\n", "Epoch 6/100\n", " 1/10 [==>...........................] - ETA: 0s - loss: 0.2738 - accuracy: 0.9375Restoring model weights from the end of the best epoch: 1.\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.3747 - accuracy: 0.8547 - val_loss: 0.3433 - val_accuracy: 0.8378\n", "Epoch 6: early stopping\n", "Epoch 1/100\n", "10/10 [==============================] - 1s 18ms/step - loss: 0.6466 - accuracy: 0.7264 - val_loss: 0.5681 - val_accuracy: 0.8378\n", "Epoch 2/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5562 - accuracy: 0.8412 - val_loss: 0.5165 - val_accuracy: 0.8378\n", "Epoch 3/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5070 - accuracy: 0.8412 - val_loss: 0.4828 - val_accuracy: 0.8378\n", "Epoch 4/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4774 - accuracy: 0.8412 - val_loss: 0.4626 - val_accuracy: 0.8378\n", "Epoch 5/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4565 - accuracy: 0.8412 - val_loss: 0.4506 - val_accuracy: 0.8378\n", "Epoch 6/100\n", " 1/10 [==>...........................] - ETA: 0s - loss: 0.4210 - accuracy: 0.8438Restoring model weights from the end of the best epoch: 1.\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4405 - accuracy: 0.8412 - val_loss: 0.4447 - val_accuracy: 0.8378\n", "Epoch 6: early stopping\n", "Epoch 1/100\n", "10/10 [==============================] - 1s 18ms/step - loss: 0.6088 - accuracy: 0.8412 - val_loss: 0.5498 - val_accuracy: 0.8378\n", "Epoch 2/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5494 - accuracy: 0.8412 - val_loss: 0.5163 - val_accuracy: 0.8378\n", "Epoch 3/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5082 - accuracy: 0.8412 - val_loss: 0.4908 - val_accuracy: 0.8378\n", "Epoch 4/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4800 - accuracy: 0.8412 - val_loss: 0.4669 - val_accuracy: 0.8378\n", "Epoch 5/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4559 - accuracy: 0.8412 - val_loss: 0.4478 - val_accuracy: 0.8378\n", "Epoch 6/100\n", " 1/10 [==>...........................] - ETA: 0s - loss: 0.4657 - accuracy: 0.8438Restoring model weights from the end of the best epoch: 1.\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4307 - accuracy: 0.8412 - val_loss: 0.4306 - val_accuracy: 0.8378\n", "Epoch 6: early stopping\n", "Epoch 1/100\n", "10/10 [==============================] - 1s 17ms/step - loss: 0.5698 - accuracy: 0.8412 - val_loss: 0.4932 - val_accuracy: 0.8378\n", "Epoch 2/100\n", "10/10 [==============================] - 0s 5ms/step - loss: 0.4965 - accuracy: 0.8412 - val_loss: 0.4606 - val_accuracy: 0.8378\n", "Epoch 3/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4637 - accuracy: 0.8412 - val_loss: 0.4423 - val_accuracy: 0.8378\n", "Epoch 4/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4363 - accuracy: 0.8412 - val_loss: 0.4263 - val_accuracy: 0.8378\n", "Epoch 5/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4149 - accuracy: 0.8446 - val_loss: 0.4140 - val_accuracy: 0.8378\n", "Epoch 6/100\n", " 1/10 [==>...........................] - ETA: 0s - loss: 0.4585 - accuracy: 0.7812Restoring model weights from the end of the best epoch: 1.\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.3981 - accuracy: 0.8446 - val_loss: 0.4040 - val_accuracy: 0.8378\n", "Epoch 6: early stopping\n", "Epoch 1/100\n", "10/10 [==============================] - 1s 18ms/step - loss: 0.6790 - accuracy: 0.5946 - val_loss: 0.5451 - val_accuracy: 0.8378\n", "Epoch 2/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5330 - accuracy: 0.8412 - val_loss: 0.4788 - val_accuracy: 0.8378\n", "Epoch 3/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4806 - accuracy: 0.8412 - val_loss: 0.4399 - val_accuracy: 0.8378\n", "Epoch 4/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4442 - accuracy: 0.8412 - val_loss: 0.4161 - val_accuracy: 0.8378\n", "Epoch 5/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4204 - accuracy: 0.8412 - val_loss: 0.4005 - val_accuracy: 0.8378\n", "Epoch 6/100\n", " 1/10 [==>...........................] - ETA: 0s - loss: 0.3700 - accuracy: 0.8438Restoring model weights from the end of the best epoch: 1.\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.3942 - accuracy: 0.8446 - val_loss: 0.3875 - val_accuracy: 0.8378\n", "Epoch 6: early stopping\n", "Epoch 1/100\n", "10/10 [==============================] - 0s 17ms/step - loss: 0.6697 - accuracy: 0.6993 - val_loss: 0.6722 - val_accuracy: 0.6757\n", "Epoch 2/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6640 - accuracy: 0.7196 - val_loss: 0.6656 - val_accuracy: 0.7432\n", "Epoch 3/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6583 - accuracy: 0.7466 - val_loss: 0.6593 - val_accuracy: 0.7568\n", "Epoch 4/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6528 - accuracy: 0.7770 - val_loss: 0.6531 - val_accuracy: 0.7838\n", "Epoch 5/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6474 - accuracy: 0.7905 - val_loss: 0.6479 - val_accuracy: 0.8108\n", "Epoch 6/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6428 - accuracy: 0.8142 - val_loss: 0.6427 - val_accuracy: 0.8108\n", "Epoch 7/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6383 - accuracy: 0.8311 - val_loss: 0.6376 - val_accuracy: 0.8108\n", "Epoch 8/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6337 - accuracy: 0.8311 - val_loss: 0.6323 - val_accuracy: 0.8108\n", "Epoch 9/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6290 - accuracy: 0.8345 - val_loss: 0.6270 - val_accuracy: 0.8108\n", "Epoch 10/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6244 - accuracy: 0.8378 - val_loss: 0.6219 - val_accuracy: 0.8243\n", "Epoch 11/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6199 - accuracy: 0.8412 - val_loss: 0.6168 - val_accuracy: 0.8378\n", "Epoch 12/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6154 - accuracy: 0.8412 - val_loss: 0.6124 - val_accuracy: 0.8378\n", "Epoch 13/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6114 - accuracy: 0.8412 - val_loss: 0.6078 - val_accuracy: 0.8378\n", "Epoch 14/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6073 - accuracy: 0.8378 - val_loss: 0.6034 - val_accuracy: 0.8378\n", "Epoch 15/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6035 - accuracy: 0.8412 - val_loss: 0.5993 - val_accuracy: 0.8378\n", "Epoch 16/100\n", " 1/10 [==>...........................] - ETA: 0s - loss: 0.6283 - accuracy: 0.8125Restoring model weights from the end of the best epoch: 11.\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5997 - accuracy: 0.8412 - val_loss: 0.5955 - val_accuracy: 0.8378\n", "Epoch 16: early stopping\n", "Epoch 1/100\n", "10/10 [==============================] - 0s 17ms/step - loss: 0.7043 - accuracy: 0.5270 - val_loss: 0.7015 - val_accuracy: 0.5405\n", "Epoch 2/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6947 - accuracy: 0.5709 - val_loss: 0.6892 - val_accuracy: 0.5541\n", "Epoch 3/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6853 - accuracy: 0.6047 - val_loss: 0.6772 - val_accuracy: 0.5811\n", "Epoch 4/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6762 - accuracy: 0.6453 - val_loss: 0.6674 - val_accuracy: 0.6081\n", "Epoch 5/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6685 - accuracy: 0.6791 - val_loss: 0.6577 - val_accuracy: 0.6892\n", "Epoch 6/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6608 - accuracy: 0.7162 - val_loss: 0.6486 - val_accuracy: 0.6892\n", "Epoch 7/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6533 - accuracy: 0.7264 - val_loss: 0.6398 - val_accuracy: 0.7568\n", "Epoch 8/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6460 - accuracy: 0.7466 - val_loss: 0.6316 - val_accuracy: 0.7838\n", "Epoch 9/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6390 - accuracy: 0.7635 - val_loss: 0.6240 - val_accuracy: 0.7838\n", "Epoch 10/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6325 - accuracy: 0.7838 - val_loss: 0.6170 - val_accuracy: 0.7838\n", "Epoch 11/100\n", "10/10 [==============================] - 0s 3ms/step - loss: 0.6264 - accuracy: 0.7905 - val_loss: 0.6104 - val_accuracy: 0.7838\n", "Epoch 12/100\n", "10/10 [==============================] - 0s 5ms/step - loss: 0.6205 - accuracy: 0.8007 - val_loss: 0.6052 - val_accuracy: 0.7973\n", "Epoch 13/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6157 - accuracy: 0.8041 - val_loss: 0.5995 - val_accuracy: 0.7838\n", "Epoch 14/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6104 - accuracy: 0.8108 - val_loss: 0.5940 - val_accuracy: 0.7973\n", "Epoch 15/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6053 - accuracy: 0.8176 - val_loss: 0.5887 - val_accuracy: 0.7973\n", "Epoch 16/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6003 - accuracy: 0.8209 - val_loss: 0.5838 - val_accuracy: 0.8108\n", "Epoch 17/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5956 - accuracy: 0.8243 - val_loss: 0.5791 - val_accuracy: 0.8243\n", "Epoch 18/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5911 - accuracy: 0.8243 - val_loss: 0.5749 - val_accuracy: 0.8243\n", "Epoch 19/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5871 - accuracy: 0.8243 - val_loss: 0.5705 - val_accuracy: 0.8243\n", "Epoch 20/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5829 - accuracy: 0.8277 - val_loss: 0.5670 - val_accuracy: 0.8243\n", "Epoch 21/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5793 - accuracy: 0.8277 - val_loss: 0.5631 - val_accuracy: 0.8378\n", "Epoch 22/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5756 - accuracy: 0.8345 - val_loss: 0.5599 - val_accuracy: 0.8378\n", "Epoch 23/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5723 - accuracy: 0.8378 - val_loss: 0.5563 - val_accuracy: 0.8378\n", "Epoch 24/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5688 - accuracy: 0.8378 - val_loss: 0.5528 - val_accuracy: 0.8378\n", "Epoch 25/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5653 - accuracy: 0.8378 - val_loss: 0.5496 - val_accuracy: 0.8378\n", "Epoch 26/100\n", " 1/10 [==>...........................] - ETA: 0s - loss: 0.5763 - accuracy: 0.7812Restoring model weights from the end of the best epoch: 21.\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5621 - accuracy: 0.8378 - val_loss: 0.5465 - val_accuracy: 0.8378\n", "Epoch 26: early stopping\n", "Epoch 1/100\n", "10/10 [==============================] - 0s 17ms/step - loss: 0.6347 - accuracy: 0.8345 - val_loss: 0.6086 - val_accuracy: 0.8243\n", "Epoch 2/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6311 - accuracy: 0.8345 - val_loss: 0.6050 - val_accuracy: 0.8243\n", "Epoch 3/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6275 - accuracy: 0.8378 - val_loss: 0.6019 - val_accuracy: 0.8243\n", "Epoch 4/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6241 - accuracy: 0.8378 - val_loss: 0.5988 - val_accuracy: 0.8378\n", "Epoch 5/100\n", "10/10 [==============================] - 0s 5ms/step - loss: 0.6206 - accuracy: 0.8412 - val_loss: 0.5952 - val_accuracy: 0.8378\n", "Epoch 6/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6170 - accuracy: 0.8412 - val_loss: 0.5916 - val_accuracy: 0.8378\n", "Epoch 7/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6134 - accuracy: 0.8412 - val_loss: 0.5885 - val_accuracy: 0.8378\n", "Epoch 8/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6102 - accuracy: 0.8412 - val_loss: 0.5853 - val_accuracy: 0.8378\n", "Epoch 9/100\n", " 1/10 [==>...........................] - ETA: 0s - loss: 0.6311 - accuracy: 0.9062Restoring model weights from the end of the best epoch: 4.\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6071 - accuracy: 0.8412 - val_loss: 0.5822 - val_accuracy: 0.8378\n", "Epoch 9: early stopping\n", "Epoch 1/100\n", "10/10 [==============================] - 0s 17ms/step - loss: 0.7065 - accuracy: 0.4088 - val_loss: 0.7104 - val_accuracy: 0.4595\n", "Epoch 2/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6973 - accuracy: 0.4797 - val_loss: 0.7001 - val_accuracy: 0.5541\n", "Epoch 3/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6891 - accuracy: 0.5439 - val_loss: 0.6908 - val_accuracy: 0.6622\n", "Epoch 4/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6816 - accuracy: 0.5912 - val_loss: 0.6817 - val_accuracy: 0.7027\n", "Epoch 5/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6743 - accuracy: 0.6824 - val_loss: 0.6727 - val_accuracy: 0.7162\n", "Epoch 6/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6670 - accuracy: 0.7196 - val_loss: 0.6640 - val_accuracy: 0.7432\n", "Epoch 7/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6599 - accuracy: 0.7466 - val_loss: 0.6563 - val_accuracy: 0.7838\n", "Epoch 8/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6534 - accuracy: 0.7601 - val_loss: 0.6489 - val_accuracy: 0.8243\n", "Epoch 9/100\n", "10/10 [==============================] - 0s 5ms/step - loss: 0.6471 - accuracy: 0.7838 - val_loss: 0.6418 - val_accuracy: 0.8378\n", "Epoch 10/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6410 - accuracy: 0.7939 - val_loss: 0.6355 - val_accuracy: 0.8378\n", "Epoch 11/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6353 - accuracy: 0.8074 - val_loss: 0.6290 - val_accuracy: 0.8378\n", "Epoch 12/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6295 - accuracy: 0.8243 - val_loss: 0.6229 - val_accuracy: 0.8514\n", "Epoch 13/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6239 - accuracy: 0.8243 - val_loss: 0.6169 - val_accuracy: 0.8514\n", "Epoch 14/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6183 - accuracy: 0.8345 - val_loss: 0.6115 - val_accuracy: 0.8514\n", "Epoch 15/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6132 - accuracy: 0.8378 - val_loss: 0.6060 - val_accuracy: 0.8514\n", "Epoch 16/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6079 - accuracy: 0.8446 - val_loss: 0.6012 - val_accuracy: 0.8514\n", "Epoch 17/100\n", " 1/10 [==>...........................] - ETA: 0s - loss: 0.5861 - accuracy: 0.9062Restoring model weights from the end of the best epoch: 12.\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6031 - accuracy: 0.8412 - val_loss: 0.5968 - val_accuracy: 0.8514\n", "Epoch 17: early stopping\n", "Epoch 1/100\n", "10/10 [==============================] - 0s 18ms/step - loss: 0.6960 - accuracy: 0.5845 - val_loss: 0.6690 - val_accuracy: 0.7432\n", "Epoch 2/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6166 - accuracy: 0.8243 - val_loss: 0.6352 - val_accuracy: 0.8378\n", "Epoch 3/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5681 - accuracy: 0.8412 - val_loss: 0.6168 - val_accuracy: 0.8378\n", "Epoch 4/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5351 - accuracy: 0.8412 - val_loss: 0.5959 - val_accuracy: 0.8378\n", "Epoch 5/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5091 - accuracy: 0.8412 - val_loss: 0.5734 - val_accuracy: 0.8378\n", "Epoch 6/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4898 - accuracy: 0.8412 - val_loss: 0.5485 - val_accuracy: 0.8378\n", "Epoch 7/100\n", " 1/10 [==>...........................] - ETA: 0s - loss: 0.5183 - accuracy: 0.7812Restoring model weights from the end of the best epoch: 2.\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4677 - accuracy: 0.8412 - val_loss: 0.5301 - val_accuracy: 0.8378\n", "Epoch 7: early stopping\n", "Epoch 1/100\n", "10/10 [==============================] - 0s 17ms/step - loss: 0.6580 - accuracy: 0.7568 - val_loss: 0.6098 - val_accuracy: 0.8378\n", "Epoch 2/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5915 - accuracy: 0.8412 - val_loss: 0.5465 - val_accuracy: 0.8378\n", "Epoch 3/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5457 - accuracy: 0.8412 - val_loss: 0.4981 - val_accuracy: 0.8378\n", "Epoch 4/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5080 - accuracy: 0.8412 - val_loss: 0.4630 - val_accuracy: 0.8378\n", "Epoch 5/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4814 - accuracy: 0.8412 - val_loss: 0.4377 - val_accuracy: 0.8378\n", "Epoch 6/100\n", " 1/10 [==>...........................] - ETA: 0s - loss: 0.4967 - accuracy: 0.8438Restoring model weights from the end of the best epoch: 1.\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4600 - accuracy: 0.8412 - val_loss: 0.4208 - val_accuracy: 0.8378\n", "Epoch 6: early stopping\n", "Epoch 1/100\n", "10/10 [==============================] - 0s 18ms/step - loss: 0.6449 - accuracy: 0.7196 - val_loss: 0.5605 - val_accuracy: 0.8378\n", "Epoch 2/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5472 - accuracy: 0.8412 - val_loss: 0.4859 - val_accuracy: 0.8378\n", "Epoch 3/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4961 - accuracy: 0.8412 - val_loss: 0.4356 - val_accuracy: 0.8378\n", "Epoch 4/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4631 - accuracy: 0.8412 - val_loss: 0.4071 - val_accuracy: 0.8378\n", "Epoch 5/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4430 - accuracy: 0.8412 - val_loss: 0.3919 - val_accuracy: 0.8378\n", "Epoch 6/100\n", " 1/10 [==>...........................] - ETA: 0s - loss: 0.4334 - accuracy: 0.8125Restoring model weights from the end of the best epoch: 1.\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4292 - accuracy: 0.8412 - val_loss: 0.3808 - val_accuracy: 0.8378\n", "Epoch 6: early stopping\n", "Epoch 1/100\n", "10/10 [==============================] - 0s 18ms/step - loss: 0.6726 - accuracy: 0.6486 - val_loss: 0.5745 - val_accuracy: 0.8514\n", "Epoch 2/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5798 - accuracy: 0.8412 - val_loss: 0.5202 - val_accuracy: 0.8378\n", "Epoch 3/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5348 - accuracy: 0.8412 - val_loss: 0.4985 - val_accuracy: 0.8378\n", "Epoch 4/100\n", "10/10 [==============================] - 0s 5ms/step - loss: 0.5106 - accuracy: 0.8412 - val_loss: 0.4825 - val_accuracy: 0.8378\n", "Epoch 5/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4903 - accuracy: 0.8412 - val_loss: 0.4690 - val_accuracy: 0.8378\n", "Epoch 6/100\n", " 1/10 [==>...........................] - ETA: 0s - loss: 0.4324 - accuracy: 0.8438Restoring model weights from the end of the best epoch: 1.\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4716 - accuracy: 0.8412 - val_loss: 0.4570 - val_accuracy: 0.8378\n", "Epoch 6: early stopping\n", "Epoch 1/100\n", "10/10 [==============================] - 1s 18ms/step - loss: 0.7793 - accuracy: 0.4561 - val_loss: 0.6962 - val_accuracy: 0.6757\n", "Epoch 2/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6566 - accuracy: 0.7230 - val_loss: 0.6170 - val_accuracy: 0.7973\n", "Epoch 3/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5809 - accuracy: 0.8277 - val_loss: 0.5681 - val_accuracy: 0.8108\n", "Epoch 4/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5297 - accuracy: 0.8378 - val_loss: 0.5353 - val_accuracy: 0.8378\n", "Epoch 5/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4945 - accuracy: 0.8446 - val_loss: 0.5121 - val_accuracy: 0.8378\n", "Epoch 6/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4665 - accuracy: 0.8446 - val_loss: 0.4942 - val_accuracy: 0.8378\n", "Epoch 7/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4448 - accuracy: 0.8446 - val_loss: 0.4785 - val_accuracy: 0.8378\n", "Epoch 8/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4262 - accuracy: 0.8446 - val_loss: 0.4631 - val_accuracy: 0.8378\n", "Epoch 9/100\n", " 1/10 [==>...........................] - ETA: 0s - loss: 0.4070 - accuracy: 0.8125Restoring model weights from the end of the best epoch: 4.\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4103 - accuracy: 0.8446 - val_loss: 0.4516 - val_accuracy: 0.8378\n", "Epoch 9: early stopping\n", "Epoch 1/100\n", "10/10 [==============================] - 1s 17ms/step - loss: 0.5702 - accuracy: 0.8345 - val_loss: 0.4800 - val_accuracy: 0.8378\n", "Epoch 2/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4953 - accuracy: 0.8412 - val_loss: 0.4463 - val_accuracy: 0.8378\n", "Epoch 3/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4608 - accuracy: 0.8412 - val_loss: 0.4176 - val_accuracy: 0.8378\n", "Epoch 4/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4358 - accuracy: 0.8412 - val_loss: 0.4017 - val_accuracy: 0.8378\n", "Epoch 5/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4187 - accuracy: 0.8412 - val_loss: 0.3916 - val_accuracy: 0.8378\n", "Epoch 6/100\n", " 1/10 [==>...........................] - ETA: 0s - loss: 0.3352 - accuracy: 0.9062Restoring model weights from the end of the best epoch: 1.\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4013 - accuracy: 0.8412 - val_loss: 0.3842 - val_accuracy: 0.8378\n", "Epoch 6: early stopping\n", "Epoch 1/100\n", "10/10 [==============================] - 1s 17ms/step - loss: 0.6646 - accuracy: 0.7669 - val_loss: 0.6089 - val_accuracy: 0.8378\n", "Epoch 2/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6017 - accuracy: 0.8412 - val_loss: 0.5613 - val_accuracy: 0.8378\n", "Epoch 3/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5619 - accuracy: 0.8412 - val_loss: 0.5315 - val_accuracy: 0.8378\n", "Epoch 4/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5325 - accuracy: 0.8412 - val_loss: 0.5055 - val_accuracy: 0.8378\n", "Epoch 5/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5056 - accuracy: 0.8412 - val_loss: 0.4858 - val_accuracy: 0.8378\n", "Epoch 6/100\n", " 1/10 [==>...........................] - ETA: 0s - loss: 0.4966 - accuracy: 0.8438Restoring model weights from the end of the best epoch: 1.\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4848 - accuracy: 0.8412 - val_loss: 0.4658 - val_accuracy: 0.8378\n", "Epoch 6: early stopping\n", "Epoch 1/100\n", "10/10 [==============================] - 1s 17ms/step - loss: 0.6607 - accuracy: 0.6486 - val_loss: 0.5583 - val_accuracy: 0.8378\n", "Epoch 2/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5349 - accuracy: 0.8412 - val_loss: 0.4935 - val_accuracy: 0.8378\n", "Epoch 3/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4832 - accuracy: 0.8412 - val_loss: 0.4605 - val_accuracy: 0.8378\n", "Epoch 4/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4485 - accuracy: 0.8412 - val_loss: 0.4382 - val_accuracy: 0.8378\n", "Epoch 5/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4213 - accuracy: 0.8412 - val_loss: 0.4295 - val_accuracy: 0.8243\n", "Epoch 6/100\n", " 1/10 [==>...........................] - ETA: 0s - loss: 0.3816 - accuracy: 0.7812Restoring model weights from the end of the best epoch: 1.\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.3946 - accuracy: 0.8412 - val_loss: 0.4208 - val_accuracy: 0.8243\n", "Epoch 6: early stopping\n", "Epoch 1/100\n", "10/10 [==============================] - 0s 17ms/step - loss: 0.8957 - accuracy: 0.1622 - val_loss: 0.9972 - val_accuracy: 0.1757\n", "Epoch 2/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.8831 - accuracy: 0.1655 - val_loss: 0.9823 - val_accuracy: 0.1757\n", "Epoch 3/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.8713 - accuracy: 0.1689 - val_loss: 0.9680 - val_accuracy: 0.1757\n", "Epoch 4/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.8598 - accuracy: 0.1858 - val_loss: 0.9541 - val_accuracy: 0.1757\n", "Epoch 5/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.8488 - accuracy: 0.1926 - val_loss: 0.9404 - val_accuracy: 0.1892\n", "Epoch 6/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.8380 - accuracy: 0.1926 - val_loss: 0.9277 - val_accuracy: 0.1892\n", "Epoch 7/100\n", "10/10 [==============================] - 0s 5ms/step - loss: 0.8281 - accuracy: 0.1959 - val_loss: 0.9150 - val_accuracy: 0.1892\n", "Epoch 8/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.8182 - accuracy: 0.1892 - val_loss: 0.9027 - val_accuracy: 0.2027\n", "Epoch 9/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.8086 - accuracy: 0.2027 - val_loss: 0.8907 - val_accuracy: 0.2297\n", "Epoch 10/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.7992 - accuracy: 0.2061 - val_loss: 0.8789 - val_accuracy: 0.2432\n", "Epoch 11/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.7902 - accuracy: 0.2331 - val_loss: 0.8680 - val_accuracy: 0.2432\n", "Epoch 12/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.7819 - accuracy: 0.2466 - val_loss: 0.8578 - val_accuracy: 0.2973\n", "Epoch 13/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.7740 - accuracy: 0.2635 - val_loss: 0.8474 - val_accuracy: 0.3514\n", "Epoch 14/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.7661 - accuracy: 0.2838 - val_loss: 0.8369 - val_accuracy: 0.3514\n", "Epoch 15/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.7582 - accuracy: 0.3108 - val_loss: 0.8266 - val_accuracy: 0.3649\n", "Epoch 16/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.7506 - accuracy: 0.3345 - val_loss: 0.8172 - val_accuracy: 0.3784\n", "Epoch 17/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.7435 - accuracy: 0.3378 - val_loss: 0.8081 - val_accuracy: 0.3784\n", "Epoch 18/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.7368 - accuracy: 0.3750 - val_loss: 0.7997 - val_accuracy: 0.3919\n", "Epoch 19/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.7306 - accuracy: 0.3986 - val_loss: 0.7913 - val_accuracy: 0.4189\n", "Epoch 20/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.7244 - accuracy: 0.4291 - val_loss: 0.7820 - val_accuracy: 0.4189\n", "Epoch 21/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.7177 - accuracy: 0.4662 - val_loss: 0.7735 - val_accuracy: 0.4324\n", "Epoch 22/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.7116 - accuracy: 0.5000 - val_loss: 0.7655 - val_accuracy: 0.4459\n", "Epoch 23/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.7058 - accuracy: 0.5304 - val_loss: 0.7575 - val_accuracy: 0.4595\n", "Epoch 24/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.7001 - accuracy: 0.5473 - val_loss: 0.7499 - val_accuracy: 0.5000\n", "Epoch 25/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6947 - accuracy: 0.5676 - val_loss: 0.7427 - val_accuracy: 0.5000\n", "Epoch 26/100\n", "10/10 [==============================] - 0s 5ms/step - loss: 0.6896 - accuracy: 0.5980 - val_loss: 0.7357 - val_accuracy: 0.5135\n", "Epoch 27/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6845 - accuracy: 0.6284 - val_loss: 0.7290 - val_accuracy: 0.5541\n", "Epoch 28/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6798 - accuracy: 0.6486 - val_loss: 0.7223 - val_accuracy: 0.5946\n", "Epoch 29/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6751 - accuracy: 0.6824 - val_loss: 0.7164 - val_accuracy: 0.6351\n", "Epoch 30/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6708 - accuracy: 0.7027 - val_loss: 0.7103 - val_accuracy: 0.6757\n", "Epoch 31/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6666 - accuracy: 0.7027 - val_loss: 0.7041 - val_accuracy: 0.6892\n", "Epoch 32/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6622 - accuracy: 0.7095 - val_loss: 0.6980 - val_accuracy: 0.6892\n", "Epoch 33/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6580 - accuracy: 0.7128 - val_loss: 0.6921 - val_accuracy: 0.6757\n", "Epoch 34/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6539 - accuracy: 0.7331 - val_loss: 0.6867 - val_accuracy: 0.7027\n", "Epoch 35/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6501 - accuracy: 0.7432 - val_loss: 0.6813 - val_accuracy: 0.7297\n", "Epoch 36/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6465 - accuracy: 0.7669 - val_loss: 0.6762 - val_accuracy: 0.7432\n", "Epoch 37/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6429 - accuracy: 0.7703 - val_loss: 0.6706 - val_accuracy: 0.7568\n", "Epoch 38/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6391 - accuracy: 0.7770 - val_loss: 0.6666 - val_accuracy: 0.7703\n", "Epoch 39/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6362 - accuracy: 0.7872 - val_loss: 0.6615 - val_accuracy: 0.7703\n", "Epoch 40/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6328 - accuracy: 0.7973 - val_loss: 0.6566 - val_accuracy: 0.7838\n", "Epoch 41/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6295 - accuracy: 0.8074 - val_loss: 0.6520 - val_accuracy: 0.7838\n", "Epoch 42/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6263 - accuracy: 0.8142 - val_loss: 0.6474 - val_accuracy: 0.8108\n", "Epoch 43/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6232 - accuracy: 0.8176 - val_loss: 0.6429 - val_accuracy: 0.8108\n", "Epoch 44/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6201 - accuracy: 0.8277 - val_loss: 0.6386 - val_accuracy: 0.8108\n", "Epoch 45/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6172 - accuracy: 0.8345 - val_loss: 0.6347 - val_accuracy: 0.8108\n", "Epoch 46/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6145 - accuracy: 0.8277 - val_loss: 0.6308 - val_accuracy: 0.7973\n", "Epoch 47/100\n", " 1/10 [==>...........................] - ETA: 0s - loss: 0.6142 - accuracy: 0.8438Restoring model weights from the end of the best epoch: 42.\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6118 - accuracy: 0.8243 - val_loss: 0.6270 - val_accuracy: 0.7973\n", "Epoch 47: early stopping\n", "Epoch 1/100\n", "10/10 [==============================] - 0s 17ms/step - loss: 0.6895 - accuracy: 0.7095 - val_loss: 0.6717 - val_accuracy: 0.7838\n", "Epoch 2/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6865 - accuracy: 0.7736 - val_loss: 0.6688 - val_accuracy: 0.8243\n", "Epoch 3/100\n", "10/10 [==============================] - 0s 5ms/step - loss: 0.6837 - accuracy: 0.8041 - val_loss: 0.6659 - val_accuracy: 0.8243\n", "Epoch 4/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6808 - accuracy: 0.8142 - val_loss: 0.6630 - val_accuracy: 0.8243\n", "Epoch 5/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6779 - accuracy: 0.8345 - val_loss: 0.6601 - val_accuracy: 0.8378\n", "Epoch 6/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6750 - accuracy: 0.8412 - val_loss: 0.6572 - val_accuracy: 0.8378\n", "Epoch 7/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6722 - accuracy: 0.8378 - val_loss: 0.6545 - val_accuracy: 0.8378\n", "Epoch 8/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6695 - accuracy: 0.8412 - val_loss: 0.6519 - val_accuracy: 0.8378\n", "Epoch 9/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6669 - accuracy: 0.8412 - val_loss: 0.6492 - val_accuracy: 0.8378\n", "Epoch 10/100\n", " 1/10 [==>...........................] - ETA: 0s - loss: 0.6919 - accuracy: 0.7500Restoring model weights from the end of the best epoch: 5.\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6643 - accuracy: 0.8412 - val_loss: 0.6466 - val_accuracy: 0.8378\n", "Epoch 10: early stopping\n", "Epoch 1/100\n", "10/10 [==============================] - 0s 18ms/step - loss: 0.6483 - accuracy: 0.7500 - val_loss: 0.6464 - val_accuracy: 0.7162\n", "Epoch 2/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6452 - accuracy: 0.7568 - val_loss: 0.6434 - val_accuracy: 0.7162\n", "Epoch 3/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6423 - accuracy: 0.7703 - val_loss: 0.6403 - val_accuracy: 0.7297\n", "Epoch 4/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6394 - accuracy: 0.7770 - val_loss: 0.6372 - val_accuracy: 0.7432\n", "Epoch 5/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6364 - accuracy: 0.7804 - val_loss: 0.6342 - val_accuracy: 0.7568\n", "Epoch 6/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6335 - accuracy: 0.7905 - val_loss: 0.6313 - val_accuracy: 0.7838\n", "Epoch 7/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6308 - accuracy: 0.7939 - val_loss: 0.6286 - val_accuracy: 0.7838\n", "Epoch 8/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6282 - accuracy: 0.8007 - val_loss: 0.6257 - val_accuracy: 0.7973\n", "Epoch 9/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6254 - accuracy: 0.8142 - val_loss: 0.6227 - val_accuracy: 0.7973\n", "Epoch 10/100\n", "10/10 [==============================] - 0s 3ms/step - loss: 0.6226 - accuracy: 0.8176 - val_loss: 0.6201 - val_accuracy: 0.7973\n", "Epoch 11/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6200 - accuracy: 0.8209 - val_loss: 0.6173 - val_accuracy: 0.7973\n", "Epoch 12/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6174 - accuracy: 0.8311 - val_loss: 0.6146 - val_accuracy: 0.8108\n", "Epoch 13/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6147 - accuracy: 0.8311 - val_loss: 0.6121 - val_accuracy: 0.8108\n", "Epoch 14/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6123 - accuracy: 0.8311 - val_loss: 0.6095 - val_accuracy: 0.8108\n", "Epoch 15/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6098 - accuracy: 0.8311 - val_loss: 0.6070 - val_accuracy: 0.8108\n", "Epoch 16/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.6074 - accuracy: 0.8311 - val_loss: 0.6047 - val_accuracy: 0.8108\n", "Epoch 17/100\n", " 1/10 [==>...........................] - ETA: 0s - loss: 0.5835 - accuracy: 0.8750Restoring model weights from the end of the best epoch: 12.\n", "10/10 [==============================] - 0s 5ms/step - loss: 0.6052 - accuracy: 0.8277 - val_loss: 0.6022 - val_accuracy: 0.8108\n", "Epoch 17: early stopping\n", "Epoch 1/100\n", "10/10 [==============================] - 0s 17ms/step - loss: 0.5966 - accuracy: 0.8412 - val_loss: 0.6114 - val_accuracy: 0.8378\n", "Epoch 2/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5939 - accuracy: 0.8412 - val_loss: 0.6085 - val_accuracy: 0.8378\n", "Epoch 3/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5911 - accuracy: 0.8412 - val_loss: 0.6057 - val_accuracy: 0.8378\n", "Epoch 4/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5884 - accuracy: 0.8412 - val_loss: 0.6028 - val_accuracy: 0.8378\n", "Epoch 5/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5857 - accuracy: 0.8412 - val_loss: 0.6001 - val_accuracy: 0.8378\n", "Epoch 6/100\n", " 1/10 [==>...........................] - ETA: 0s - loss: 0.6673 - accuracy: 0.8125Restoring model weights from the end of the best epoch: 1.\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5830 - accuracy: 0.8412 - val_loss: 0.5976 - val_accuracy: 0.8378\n", "Epoch 6: early stopping\n", "best acc at index 2: 0.8513513803482056\n", "best loss at index 3: 0.3433414697647095\n", "{'units3': 64, 'units2': 32, 'units1': 8, 'optimizer': , 'learning_rate': 0.001, 'activation3': 'relu', 'activation2': 'relu', 'activation1': 'relu'}\n", "Epoch 1/100\n", "10/10 [==============================] - 0s 17ms/step - loss: 0.6318 - accuracy: 0.8311 - val_loss: 0.5849 - val_accuracy: 0.8514\n", "Epoch 2/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5755 - accuracy: 0.8412 - val_loss: 0.5307 - val_accuracy: 0.8378\n", "Epoch 3/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.5155 - accuracy: 0.8412 - val_loss: 0.4831 - val_accuracy: 0.8378\n", "Epoch 4/100\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.4634 - accuracy: 0.8581 - val_loss: 0.4438 - val_accuracy: 0.8378\n", "Epoch 5/100\n", "10/10 [==============================] - 0s 5ms/step - loss: 0.4147 - accuracy: 0.8615 - val_loss: 0.4034 - val_accuracy: 0.8514\n", "Epoch 6/100\n", " 1/10 [==>...........................] - ETA: 0s - loss: 0.3117 - accuracy: 0.9375Restoring model weights from the end of the best epoch: 1.\n", "10/10 [==============================] - 0s 4ms/step - loss: 0.3742 - accuracy: 0.8716 - val_loss: 0.3825 - val_accuracy: 0.8514\n", "Epoch 6: early stopping\n" ] } ], "source": [ "#Newly load the dataset with columns drop and create preprocessing pipeline\n", "train, greeks, test, id_list = load_dataset(columns_drop=bad_scores)\n", "print(f\"dataset shape: {train.shape}\")\n", "X_train, X_valid, y_train, y_valid = split_data(train, 0.3)\n", "preprocessor = build_preprocessing_pipeline(X_train)\n", "\n", "\n", "# Define models for the pipeline\n", "preprocessor.fit(X_train)\n", "X_preprocessed = preprocessor.transform(X_train)\n", "y_train_ohe = pd.get_dummies(y_train, columns = ['Class'])\n", "y_valid_ohe = pd.get_dummies(y_valid, columns = ['Class'])\n", "model_keras = KerasClassifier(model=grid_search_tf_model(X_train=X_preprocessed, y_train=y_train_ohe), epochs=0)\n", "model_rf = RandomForestClassifier(n_estimators=100, random_state=22)\n", "model_xgb = XGBClassifier(n_estimators=500)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Build the final pipeline with preprocessor and model, fit it and display accuracy score" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [], "source": [ "# Building Pipeline\n", "def fit_pipeline(X_train: pd.DataFrame, y_train: pd.DataFrame, preprocessor, model) -> Pipeline:\n", " pipeline = Pipeline(steps=[('preprocessor', preprocessor),\n", " ('model', model)\n", " ])\n", " #Fit the Model and make preds\n", " pipeline.fit(X_train, y_train)\n", " preds = pipeline.predict(X_valid)\n", " \"\"\" score = cross_val_score(pipeline, X_valid, y_valid, cv=5, scoring='accuracy')\n", " print(f\"Accuracy of {score}\") \"\"\"\n", " correct_answers = 0\n", " for y_pred,y_true in zip(preds,y_valid_ohe.to_numpy()):\n", " if(y_pred[0] == y_true[0]):correct_answers+=1\n", " print(correct_answers/len(preds))\n", " return pipeline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Print results of the model" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "8/8 [==============================] - 0s 913us/step\n", "0.7935222672064778\n", "0.9190283400809717\n", "0.9149797570850202\n" ] } ], "source": [ "pipeline_keras = fit_pipeline(X_train, y_train_ohe, preprocessor, model_keras)\n", "pipeline_rf = fit_pipeline(X_train, y_train_ohe, preprocessor, model_rf)\n", "pipeline_xgb = fit_pipeline(X_train, y_train_ohe, preprocessor, model_xgb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Combine the fitted models to look if the accuracy improves" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "8/8 [==============================] - 0s 956us/step\n", "0.9068825910931174\n" ] } ], "source": [ "preds1 = pipeline_keras.predict(X_valid)\n", "preds2 = pipeline_rf.predict(X_valid)\n", "preds3 = pipeline_xgb.predict(X_valid)\n", "correct_answers = 0\n", "preds = [[0,0] for _ in range(len(preds1))]\n", "submission = [[0,0] for _ in range(len(preds1))]\n", "for y_pred1,y_pred2,y_pred3, i in zip(preds1,preds2,preds3, range(len(preds1))):\n", " count_class1 = y_pred1[0] + y_pred2[0] + y_pred3[0]\n", " count_class2 = y_pred1[1] + y_pred2[1] + y_pred3[1]\n", " submission[i][0] = round(count_class1/(count_class1 + count_class2),2)\n", " submission[i][1] = round(count_class2/(count_class1 + count_class2),2)\n", " if(count_class1 > count_class2):\n", " preds[i][0] = 1\n", " preds[i][1] = 0\n", " else:\n", " preds[i][0] = 0\n", " preds[i][1] = 1\n", "for y_pred,y_true in zip(preds,y_valid_ohe.to_numpy()):\n", " if(y_pred[0] == y_true[0]):correct_answers+=1\n", "print(correct_answers/len(preds))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Submission" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "ename": "NameError", "evalue": "name 'id_number' is not defined", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", "Cell \u001b[1;32mIn[46], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m submission_df \u001b[39m=\u001b[39m pd\u001b[39m.\u001b[39mDataFrame()\n\u001b[1;32m----> 2\u001b[0m submission_df\u001b[39m.\u001b[39minsert(\u001b[39m0\u001b[39m, \u001b[39m\"\u001b[39m\u001b[39mId\u001b[39m\u001b[39m\"\u001b[39m, id_number, \u001b[39mFalse\u001b[39;00m)\n\u001b[0;32m 3\u001b[0m submission_df\u001b[39m.\u001b[39minsert(\u001b[39m1\u001b[39m, \u001b[39m\"\u001b[39m\u001b[39mclass_0\u001b[39m\u001b[39m\"\u001b[39m, [\u001b[39mround\u001b[39m(\u001b[39m1\u001b[39m\u001b[39m-\u001b[39mi[\u001b[39m0\u001b[39m],\u001b[39m2\u001b[39m) \u001b[39mfor\u001b[39;00m i \u001b[39min\u001b[39;00m prediction], \u001b[39mTrue\u001b[39;00m)\n\u001b[0;32m 4\u001b[0m submission_df\u001b[39m.\u001b[39minsert(\u001b[39m2\u001b[39m, \u001b[39m\"\u001b[39m\u001b[39mclass_1\u001b[39m\u001b[39m\"\u001b[39m, [\u001b[39mround\u001b[39m(i[\u001b[39m0\u001b[39m],\u001b[39m2\u001b[39m) \u001b[39mfor\u001b[39;00m i \u001b[39min\u001b[39;00m prediction], \u001b[39mTrue\u001b[39;00m)\n", "\u001b[1;31mNameError\u001b[0m: name 'id_number' is not defined" ] } ], "source": [ "submission_df = pd.DataFrame()\n", "submission_df.insert(0, \"Id\", id_number, False)\n", "submission_df.insert(1, \"class_0\", [round(1-i[0],2) for i in prediction], True)\n", "submission_df.insert(2, \"class_1\", [round(i[0],2) for i in prediction], True)\n", "submission_df.to_csv(\"/kaggle/working/submission.csv\",index = False)" ] } ], "metadata": { "kernelspec": { "display_name": "base", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.9" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }