1191 lines
71 KiB
Plaintext
1191 lines
71 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 109,
|
|
"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": 110,
|
|
"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": 111,
|
|
"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": 112,
|
|
"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": 113,
|
|
"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": 114,
|
|
"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": 115,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"grid_params = {\"units1\": [8], \"units2\": [16,32], \"units3\": [64,128], \"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": 116,
|
|
"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": 117,
|
|
"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": 118,
|
|
"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: ['AY', 'DN', 'CC', 'DY', 'EG', 'CH', 'DF', 'CF', 'CD ', 'CU', 'AR', 'GB', 'DE', 'EJ', 'EL', 'DV', 'AZ', 'FD ', 'BN', 'CL', 'BD ', 'CB'] --> total length: 22\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": 119,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"35\n",
|
|
"dataset shape: (617, 35)\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Number of columns: 34\n",
|
|
"Epoch 1/100\n",
|
|
"11/11 [==============================] - 0s 16ms/step - loss: 0.6561 - accuracy: 0.7471 - val_loss: 0.6202 - val_accuracy: 0.8391\n",
|
|
"Epoch 2/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5913 - accuracy: 0.8372 - val_loss: 0.5735 - val_accuracy: 0.8391\n",
|
|
"Epoch 3/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5461 - accuracy: 0.8372 - val_loss: 0.5388 - val_accuracy: 0.8391\n",
|
|
"Epoch 4/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5114 - accuracy: 0.8372 - val_loss: 0.5133 - val_accuracy: 0.8391\n",
|
|
"Epoch 5/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4793 - accuracy: 0.8372 - val_loss: 0.4964 - val_accuracy: 0.8391\n",
|
|
"Epoch 6/100\n",
|
|
" 1/11 [=>............................] - ETA: 0s - loss: 0.3964 - accuracy: 0.8750Restoring model weights from the end of the best epoch: 1.\n",
|
|
"11/11 [==============================] - 0s 5ms/step - loss: 0.4505 - accuracy: 0.8372 - val_loss: 0.4834 - val_accuracy: 0.8391\n",
|
|
"Epoch 6: early stopping\n",
|
|
"Epoch 1/100\n",
|
|
"11/11 [==============================] - 0s 15ms/step - loss: 0.6388 - accuracy: 0.8140 - val_loss: 0.5963 - val_accuracy: 0.8391\n",
|
|
"Epoch 2/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5696 - accuracy: 0.8372 - val_loss: 0.5499 - val_accuracy: 0.8391\n",
|
|
"Epoch 3/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5243 - accuracy: 0.8372 - val_loss: 0.5189 - val_accuracy: 0.8391\n",
|
|
"Epoch 4/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4787 - accuracy: 0.8372 - val_loss: 0.5014 - val_accuracy: 0.8391\n",
|
|
"Epoch 5/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.4402 - accuracy: 0.8401 - val_loss: 0.4803 - val_accuracy: 0.8391\n",
|
|
"Epoch 6/100\n",
|
|
" 1/11 [=>............................] - ETA: 0s - loss: 0.2606 - accuracy: 0.9688Restoring model weights from the end of the best epoch: 1.\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.4061 - accuracy: 0.8517 - val_loss: 0.4681 - val_accuracy: 0.8391\n",
|
|
"Epoch 6: early stopping\n",
|
|
"Epoch 1/100\n",
|
|
"11/11 [==============================] - 0s 15ms/step - loss: 0.7284 - accuracy: 0.4157 - val_loss: 0.6167 - val_accuracy: 0.8161\n",
|
|
"Epoch 2/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5948 - accuracy: 0.8227 - val_loss: 0.5262 - val_accuracy: 0.8391\n",
|
|
"Epoch 3/100\n",
|
|
"11/11 [==============================] - 0s 5ms/step - loss: 0.5261 - accuracy: 0.8372 - val_loss: 0.4787 - val_accuracy: 0.8391\n",
|
|
"Epoch 4/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.4769 - accuracy: 0.8372 - val_loss: 0.4398 - val_accuracy: 0.8391\n",
|
|
"Epoch 5/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4252 - accuracy: 0.8372 - val_loss: 0.4115 - val_accuracy: 0.8391\n",
|
|
"Epoch 6/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.3769 - accuracy: 0.8605 - val_loss: 0.3935 - val_accuracy: 0.8621\n",
|
|
"Epoch 7/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.3334 - accuracy: 0.8808 - val_loss: 0.3759 - val_accuracy: 0.8621\n",
|
|
"Epoch 8/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.3042 - accuracy: 0.8895 - val_loss: 0.3669 - val_accuracy: 0.8621\n",
|
|
"Epoch 9/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.2833 - accuracy: 0.9012 - val_loss: 0.3631 - val_accuracy: 0.8506\n",
|
|
"Epoch 10/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.2676 - accuracy: 0.8953 - val_loss: 0.3631 - val_accuracy: 0.8506\n",
|
|
"Epoch 11/100\n",
|
|
" 1/11 [=>............................] - ETA: 0s - loss: 0.1730 - accuracy: 0.9375Restoring model weights from the end of the best epoch: 6.\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.2570 - accuracy: 0.8983 - val_loss: 0.3609 - val_accuracy: 0.8621\n",
|
|
"Epoch 11: early stopping\n",
|
|
"Epoch 1/100\n",
|
|
"11/11 [==============================] - 0s 16ms/step - loss: 0.6101 - accuracy: 0.8343 - val_loss: 0.5123 - val_accuracy: 0.8391\n",
|
|
"Epoch 2/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5191 - accuracy: 0.8372 - val_loss: 0.4737 - val_accuracy: 0.8391\n",
|
|
"Epoch 3/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.4540 - accuracy: 0.8634 - val_loss: 0.4463 - val_accuracy: 0.8391\n",
|
|
"Epoch 4/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4052 - accuracy: 0.8924 - val_loss: 0.4325 - val_accuracy: 0.8391\n",
|
|
"Epoch 5/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.3703 - accuracy: 0.8924 - val_loss: 0.4291 - val_accuracy: 0.8506\n",
|
|
"Epoch 6/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.3426 - accuracy: 0.8837 - val_loss: 0.4249 - val_accuracy: 0.8506\n",
|
|
"Epoch 7/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.3215 - accuracy: 0.8953 - val_loss: 0.4196 - val_accuracy: 0.8621\n",
|
|
"Epoch 8/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.3018 - accuracy: 0.8953 - val_loss: 0.4276 - val_accuracy: 0.8621\n",
|
|
"Epoch 9/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.2864 - accuracy: 0.9099 - val_loss: 0.4162 - val_accuracy: 0.8621\n",
|
|
"Epoch 10/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.2683 - accuracy: 0.9099 - val_loss: 0.4296 - val_accuracy: 0.8736\n",
|
|
"Epoch 11/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.2542 - accuracy: 0.9099 - val_loss: 0.4342 - val_accuracy: 0.8621\n",
|
|
"Epoch 12/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.2444 - accuracy: 0.9099 - val_loss: 0.4314 - val_accuracy: 0.8621\n",
|
|
"Epoch 13/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.2345 - accuracy: 0.9157 - val_loss: 0.4260 - val_accuracy: 0.8621\n",
|
|
"Epoch 14/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.2236 - accuracy: 0.9215 - val_loss: 0.4336 - val_accuracy: 0.8621\n",
|
|
"Epoch 15/100\n",
|
|
" 1/11 [=>............................] - ETA: 0s - loss: 0.3471 - accuracy: 0.8750Restoring model weights from the end of the best epoch: 10.\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.2151 - accuracy: 0.9186 - val_loss: 0.4454 - val_accuracy: 0.8621\n",
|
|
"Epoch 15: early stopping\n",
|
|
"Epoch 1/100\n",
|
|
"11/11 [==============================] - 1s 15ms/step - loss: 0.5830 - accuracy: 0.8198 - val_loss: 0.5017 - val_accuracy: 0.8391\n",
|
|
"Epoch 2/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5194 - accuracy: 0.8372 - val_loss: 0.4658 - val_accuracy: 0.8391\n",
|
|
"Epoch 3/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.4839 - accuracy: 0.8430 - val_loss: 0.4392 - val_accuracy: 0.8391\n",
|
|
"Epoch 4/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4544 - accuracy: 0.8459 - val_loss: 0.4219 - val_accuracy: 0.8391\n",
|
|
"Epoch 5/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4315 - accuracy: 0.8488 - val_loss: 0.4098 - val_accuracy: 0.8391\n",
|
|
"Epoch 6/100\n",
|
|
" 1/11 [=>............................] - ETA: 0s - loss: 0.7116 - accuracy: 0.6875Restoring model weights from the end of the best epoch: 1.\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.4103 - accuracy: 0.8488 - val_loss: 0.3997 - val_accuracy: 0.8391\n",
|
|
"Epoch 6: early stopping\n",
|
|
"Epoch 1/100\n",
|
|
"11/11 [==============================] - 1s 16ms/step - loss: 0.5854 - accuracy: 0.7703 - val_loss: 0.5036 - val_accuracy: 0.8391\n",
|
|
"Epoch 2/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.4693 - accuracy: 0.8372 - val_loss: 0.4403 - val_accuracy: 0.8391\n",
|
|
"Epoch 3/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4031 - accuracy: 0.8459 - val_loss: 0.4113 - val_accuracy: 0.8276\n",
|
|
"Epoch 4/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.3571 - accuracy: 0.8663 - val_loss: 0.3857 - val_accuracy: 0.8161\n",
|
|
"Epoch 5/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.3235 - accuracy: 0.8779 - val_loss: 0.3706 - val_accuracy: 0.8276\n",
|
|
"Epoch 6/100\n",
|
|
" 1/11 [=>............................] - ETA: 0s - loss: 0.1695 - accuracy: 0.9375Restoring model weights from the end of the best epoch: 1.\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.3049 - accuracy: 0.8866 - val_loss: 0.3606 - val_accuracy: 0.8391\n",
|
|
"Epoch 6: early stopping\n",
|
|
"Epoch 1/100\n",
|
|
"11/11 [==============================] - 1s 15ms/step - loss: 0.6416 - accuracy: 0.7122 - val_loss: 0.4936 - val_accuracy: 0.8391\n",
|
|
"Epoch 2/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4911 - accuracy: 0.8372 - val_loss: 0.4214 - val_accuracy: 0.8391\n",
|
|
"Epoch 3/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4431 - accuracy: 0.8372 - val_loss: 0.3941 - val_accuracy: 0.8391\n",
|
|
"Epoch 4/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4136 - accuracy: 0.8372 - val_loss: 0.3820 - val_accuracy: 0.8391\n",
|
|
"Epoch 5/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.3916 - accuracy: 0.8372 - val_loss: 0.3724 - val_accuracy: 0.8391\n",
|
|
"Epoch 6/100\n",
|
|
" 1/11 [=>............................] - ETA: 0s - loss: 0.3220 - accuracy: 0.9062Restoring model weights from the end of the best epoch: 1.\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.3686 - accuracy: 0.8372 - val_loss: 0.3656 - val_accuracy: 0.8391\n",
|
|
"Epoch 6: early stopping\n",
|
|
"Epoch 1/100\n",
|
|
"11/11 [==============================] - 1s 16ms/step - loss: 0.5582 - accuracy: 0.8372 - val_loss: 0.5230 - val_accuracy: 0.8391\n",
|
|
"Epoch 2/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.4594 - accuracy: 0.8372 - val_loss: 0.4956 - val_accuracy: 0.8391\n",
|
|
"Epoch 3/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.3915 - accuracy: 0.8663 - val_loss: 0.4875 - val_accuracy: 0.8391\n",
|
|
"Epoch 4/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.3471 - accuracy: 0.8866 - val_loss: 0.4820 - val_accuracy: 0.8276\n",
|
|
"Epoch 5/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.3192 - accuracy: 0.8983 - val_loss: 0.4814 - val_accuracy: 0.8276\n",
|
|
"Epoch 6/100\n",
|
|
" 1/11 [=>............................] - ETA: 0s - loss: 0.2134 - accuracy: 0.9688Restoring model weights from the end of the best epoch: 1.\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.3034 - accuracy: 0.9012 - val_loss: 0.5029 - val_accuracy: 0.8391\n",
|
|
"Epoch 6: early stopping\n",
|
|
"Epoch 1/100\n",
|
|
"11/11 [==============================] - 0s 15ms/step - loss: 0.6851 - accuracy: 0.5349 - val_loss: 0.6892 - val_accuracy: 0.5862\n",
|
|
"Epoch 2/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6764 - accuracy: 0.5669 - val_loss: 0.6811 - val_accuracy: 0.5862\n",
|
|
"Epoch 3/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6681 - accuracy: 0.6017 - val_loss: 0.6732 - val_accuracy: 0.5862\n",
|
|
"Epoch 4/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6602 - accuracy: 0.6134 - val_loss: 0.6657 - val_accuracy: 0.6207\n",
|
|
"Epoch 5/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6525 - accuracy: 0.6424 - val_loss: 0.6584 - val_accuracy: 0.6207\n",
|
|
"Epoch 6/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6452 - accuracy: 0.6541 - val_loss: 0.6515 - val_accuracy: 0.6437\n",
|
|
"Epoch 7/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6382 - accuracy: 0.6831 - val_loss: 0.6448 - val_accuracy: 0.6322\n",
|
|
"Epoch 8/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6314 - accuracy: 0.7151 - val_loss: 0.6384 - val_accuracy: 0.6667\n",
|
|
"Epoch 9/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6249 - accuracy: 0.7238 - val_loss: 0.6322 - val_accuracy: 0.6897\n",
|
|
"Epoch 10/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6187 - accuracy: 0.7413 - val_loss: 0.6263 - val_accuracy: 0.7356\n",
|
|
"Epoch 11/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6128 - accuracy: 0.7674 - val_loss: 0.6206 - val_accuracy: 0.7356\n",
|
|
"Epoch 12/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6070 - accuracy: 0.7820 - val_loss: 0.6151 - val_accuracy: 0.7356\n",
|
|
"Epoch 13/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6015 - accuracy: 0.7820 - val_loss: 0.6098 - val_accuracy: 0.7471\n",
|
|
"Epoch 14/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5962 - accuracy: 0.7907 - val_loss: 0.6047 - val_accuracy: 0.7816\n",
|
|
"Epoch 15/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5911 - accuracy: 0.7965 - val_loss: 0.5998 - val_accuracy: 0.7931\n",
|
|
"Epoch 16/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5862 - accuracy: 0.8023 - val_loss: 0.5952 - val_accuracy: 0.8046\n",
|
|
"Epoch 17/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5814 - accuracy: 0.7994 - val_loss: 0.5907 - val_accuracy: 0.8161\n",
|
|
"Epoch 18/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5769 - accuracy: 0.8052 - val_loss: 0.5863 - val_accuracy: 0.8046\n",
|
|
"Epoch 19/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5725 - accuracy: 0.8140 - val_loss: 0.5822 - val_accuracy: 0.8046\n",
|
|
"Epoch 20/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5684 - accuracy: 0.8227 - val_loss: 0.5782 - val_accuracy: 0.8161\n",
|
|
"Epoch 21/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5643 - accuracy: 0.8227 - val_loss: 0.5744 - val_accuracy: 0.8046\n",
|
|
"Epoch 22/100\n",
|
|
" 1/11 [=>............................] - ETA: 0s - loss: 0.5955 - accuracy: 0.8125Restoring model weights from the end of the best epoch: 17.\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5605 - accuracy: 0.8256 - val_loss: 0.5707 - val_accuracy: 0.8046\n",
|
|
"Epoch 22: early stopping\n",
|
|
"Epoch 1/100\n",
|
|
"11/11 [==============================] - 0s 16ms/step - loss: 0.6567 - accuracy: 0.7587 - val_loss: 0.6396 - val_accuracy: 0.7356\n",
|
|
"Epoch 2/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6516 - accuracy: 0.7674 - val_loss: 0.6345 - val_accuracy: 0.7586\n",
|
|
"Epoch 3/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6468 - accuracy: 0.7791 - val_loss: 0.6297 - val_accuracy: 0.7816\n",
|
|
"Epoch 4/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6423 - accuracy: 0.7965 - val_loss: 0.6252 - val_accuracy: 0.7931\n",
|
|
"Epoch 5/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6379 - accuracy: 0.8052 - val_loss: 0.6207 - val_accuracy: 0.8046\n",
|
|
"Epoch 6/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6336 - accuracy: 0.8169 - val_loss: 0.6164 - val_accuracy: 0.8046\n",
|
|
"Epoch 7/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6295 - accuracy: 0.8198 - val_loss: 0.6123 - val_accuracy: 0.8161\n",
|
|
"Epoch 8/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6256 - accuracy: 0.8227 - val_loss: 0.6084 - val_accuracy: 0.8276\n",
|
|
"Epoch 9/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6218 - accuracy: 0.8227 - val_loss: 0.6046 - val_accuracy: 0.8276\n",
|
|
"Epoch 10/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6181 - accuracy: 0.8256 - val_loss: 0.6008 - val_accuracy: 0.8276\n",
|
|
"Epoch 11/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6145 - accuracy: 0.8314 - val_loss: 0.5973 - val_accuracy: 0.8276\n",
|
|
"Epoch 12/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6111 - accuracy: 0.8343 - val_loss: 0.5938 - val_accuracy: 0.8276\n",
|
|
"Epoch 13/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6077 - accuracy: 0.8343 - val_loss: 0.5905 - val_accuracy: 0.8391\n",
|
|
"Epoch 14/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6044 - accuracy: 0.8343 - val_loss: 0.5872 - val_accuracy: 0.8391\n",
|
|
"Epoch 15/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6013 - accuracy: 0.8343 - val_loss: 0.5840 - val_accuracy: 0.8391\n",
|
|
"Epoch 16/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5982 - accuracy: 0.8343 - val_loss: 0.5810 - val_accuracy: 0.8391\n",
|
|
"Epoch 17/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5952 - accuracy: 0.8343 - val_loss: 0.5781 - val_accuracy: 0.8391\n",
|
|
"Epoch 18/100\n",
|
|
" 1/11 [=>............................] - ETA: 0s - loss: 0.5912 - accuracy: 0.8750Restoring model weights from the end of the best epoch: 13.\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5923 - accuracy: 0.8343 - val_loss: 0.5753 - val_accuracy: 0.8391\n",
|
|
"Epoch 18: early stopping\n",
|
|
"Epoch 1/100\n",
|
|
"11/11 [==============================] - 0s 15ms/step - loss: 0.7429 - accuracy: 0.4099 - val_loss: 0.7250 - val_accuracy: 0.4368\n",
|
|
"Epoch 2/100\n",
|
|
"11/11 [==============================] - 0s 5ms/step - loss: 0.7316 - accuracy: 0.4477 - val_loss: 0.7135 - val_accuracy: 0.4943\n",
|
|
"Epoch 3/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.7209 - accuracy: 0.4738 - val_loss: 0.7026 - val_accuracy: 0.5402\n",
|
|
"Epoch 4/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.7107 - accuracy: 0.5087 - val_loss: 0.6922 - val_accuracy: 0.5517\n",
|
|
"Epoch 5/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.7011 - accuracy: 0.5552 - val_loss: 0.6823 - val_accuracy: 0.5747\n",
|
|
"Epoch 6/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6920 - accuracy: 0.6134 - val_loss: 0.6729 - val_accuracy: 0.6092\n",
|
|
"Epoch 7/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6835 - accuracy: 0.6657 - val_loss: 0.6640 - val_accuracy: 0.6437\n",
|
|
"Epoch 8/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6753 - accuracy: 0.6802 - val_loss: 0.6555 - val_accuracy: 0.6437\n",
|
|
"Epoch 9/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6676 - accuracy: 0.6948 - val_loss: 0.6475 - val_accuracy: 0.6897\n",
|
|
"Epoch 10/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6603 - accuracy: 0.7267 - val_loss: 0.6398 - val_accuracy: 0.7356\n",
|
|
"Epoch 11/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6533 - accuracy: 0.7267 - val_loss: 0.6325 - val_accuracy: 0.7701\n",
|
|
"Epoch 12/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6468 - accuracy: 0.7413 - val_loss: 0.6256 - val_accuracy: 0.7931\n",
|
|
"Epoch 13/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6405 - accuracy: 0.7500 - val_loss: 0.6189 - val_accuracy: 0.7931\n",
|
|
"Epoch 14/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6346 - accuracy: 0.7529 - val_loss: 0.6125 - val_accuracy: 0.7931\n",
|
|
"Epoch 15/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6289 - accuracy: 0.7529 - val_loss: 0.6064 - val_accuracy: 0.8161\n",
|
|
"Epoch 16/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6235 - accuracy: 0.7703 - val_loss: 0.6006 - val_accuracy: 0.8391\n",
|
|
"Epoch 17/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6183 - accuracy: 0.7878 - val_loss: 0.5951 - val_accuracy: 0.8506\n",
|
|
"Epoch 18/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6135 - accuracy: 0.7936 - val_loss: 0.5896 - val_accuracy: 0.8391\n",
|
|
"Epoch 19/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6086 - accuracy: 0.8052 - val_loss: 0.5844 - val_accuracy: 0.8391\n",
|
|
"Epoch 20/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6041 - accuracy: 0.8052 - val_loss: 0.5795 - val_accuracy: 0.8391\n",
|
|
"Epoch 21/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5998 - accuracy: 0.8023 - val_loss: 0.5748 - val_accuracy: 0.8391\n",
|
|
"Epoch 22/100\n",
|
|
" 1/11 [=>............................] - ETA: 0s - loss: 0.5433 - accuracy: 0.8125Restoring model weights from the end of the best epoch: 17.\n",
|
|
"11/11 [==============================] - 0s 5ms/step - loss: 0.5957 - accuracy: 0.8081 - val_loss: 0.5702 - val_accuracy: 0.8276\n",
|
|
"Epoch 22: early stopping\n",
|
|
"Epoch 1/100\n",
|
|
"11/11 [==============================] - 0s 16ms/step - loss: 0.7568 - accuracy: 0.2035 - val_loss: 0.7384 - val_accuracy: 0.2299\n",
|
|
"Epoch 2/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.7452 - accuracy: 0.2733 - val_loss: 0.7282 - val_accuracy: 0.3448\n",
|
|
"Epoch 3/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.7341 - accuracy: 0.3401 - val_loss: 0.7183 - val_accuracy: 0.4253\n",
|
|
"Epoch 4/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.7236 - accuracy: 0.4099 - val_loss: 0.7091 - val_accuracy: 0.4828\n",
|
|
"Epoch 5/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.7137 - accuracy: 0.4855 - val_loss: 0.7002 - val_accuracy: 0.5862\n",
|
|
"Epoch 6/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.7044 - accuracy: 0.5203 - val_loss: 0.6918 - val_accuracy: 0.6207\n",
|
|
"Epoch 7/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6955 - accuracy: 0.5698 - val_loss: 0.6838 - val_accuracy: 0.6667\n",
|
|
"Epoch 8/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6871 - accuracy: 0.6134 - val_loss: 0.6762 - val_accuracy: 0.6782\n",
|
|
"Epoch 9/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6793 - accuracy: 0.6715 - val_loss: 0.6689 - val_accuracy: 0.7126\n",
|
|
"Epoch 10/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6717 - accuracy: 0.7035 - val_loss: 0.6620 - val_accuracy: 0.7241\n",
|
|
"Epoch 11/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6647 - accuracy: 0.7238 - val_loss: 0.6554 - val_accuracy: 0.7701\n",
|
|
"Epoch 12/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6580 - accuracy: 0.7674 - val_loss: 0.6492 - val_accuracy: 0.7816\n",
|
|
"Epoch 13/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6516 - accuracy: 0.7791 - val_loss: 0.6431 - val_accuracy: 0.7816\n",
|
|
"Epoch 14/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6456 - accuracy: 0.7965 - val_loss: 0.6373 - val_accuracy: 0.8046\n",
|
|
"Epoch 15/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6398 - accuracy: 0.8081 - val_loss: 0.6319 - val_accuracy: 0.8276\n",
|
|
"Epoch 16/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6343 - accuracy: 0.8140 - val_loss: 0.6265 - val_accuracy: 0.8391\n",
|
|
"Epoch 17/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6291 - accuracy: 0.8198 - val_loss: 0.6215 - val_accuracy: 0.8391\n",
|
|
"Epoch 18/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6242 - accuracy: 0.8227 - val_loss: 0.6167 - val_accuracy: 0.8391\n",
|
|
"Epoch 19/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6194 - accuracy: 0.8314 - val_loss: 0.6120 - val_accuracy: 0.8391\n",
|
|
"Epoch 20/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6148 - accuracy: 0.8314 - val_loss: 0.6076 - val_accuracy: 0.8391\n",
|
|
"Epoch 21/100\n",
|
|
" 1/11 [=>............................] - ETA: 0s - loss: 0.6200 - accuracy: 0.7500Restoring model weights from the end of the best epoch: 16.\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6105 - accuracy: 0.8343 - val_loss: 0.6033 - val_accuracy: 0.8391\n",
|
|
"Epoch 21: early stopping\n",
|
|
"Epoch 1/100\n",
|
|
"11/11 [==============================] - 0s 15ms/step - loss: 0.7095 - accuracy: 0.4564 - val_loss: 0.6819 - val_accuracy: 0.6437\n",
|
|
"Epoch 2/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6405 - accuracy: 0.7878 - val_loss: 0.6349 - val_accuracy: 0.8046\n",
|
|
"Epoch 3/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5892 - accuracy: 0.8285 - val_loss: 0.5962 - val_accuracy: 0.8276\n",
|
|
"Epoch 4/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5445 - accuracy: 0.8372 - val_loss: 0.5638 - val_accuracy: 0.8391\n",
|
|
"Epoch 5/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5027 - accuracy: 0.8372 - val_loss: 0.5384 - val_accuracy: 0.8391\n",
|
|
"Epoch 6/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4690 - accuracy: 0.8372 - val_loss: 0.5193 - val_accuracy: 0.8391\n",
|
|
"Epoch 7/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4395 - accuracy: 0.8372 - val_loss: 0.5065 - val_accuracy: 0.8391\n",
|
|
"Epoch 8/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4162 - accuracy: 0.8401 - val_loss: 0.4990 - val_accuracy: 0.8391\n",
|
|
"Epoch 9/100\n",
|
|
" 1/11 [=>............................] - ETA: 0s - loss: 0.3528 - accuracy: 0.8750Restoring model weights from the end of the best epoch: 4.\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.3988 - accuracy: 0.8430 - val_loss: 0.4951 - val_accuracy: 0.8391\n",
|
|
"Epoch 9: early stopping\n",
|
|
"Epoch 1/100\n",
|
|
"11/11 [==============================] - 0s 15ms/step - loss: 0.7215 - accuracy: 0.3983 - val_loss: 0.6485 - val_accuracy: 0.8046\n",
|
|
"Epoch 2/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6172 - accuracy: 0.8140 - val_loss: 0.5619 - val_accuracy: 0.8391\n",
|
|
"Epoch 3/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5548 - accuracy: 0.8372 - val_loss: 0.5092 - val_accuracy: 0.8391\n",
|
|
"Epoch 4/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5142 - accuracy: 0.8372 - val_loss: 0.4766 - val_accuracy: 0.8391\n",
|
|
"Epoch 5/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4841 - accuracy: 0.8372 - val_loss: 0.4526 - val_accuracy: 0.8391\n",
|
|
"Epoch 6/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4586 - accuracy: 0.8372 - val_loss: 0.4389 - val_accuracy: 0.8391\n",
|
|
"Epoch 7/100\n",
|
|
" 1/11 [=>............................] - ETA: 0s - loss: 0.3790 - accuracy: 0.8750Restoring model weights from the end of the best epoch: 2.\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.4360 - accuracy: 0.8372 - val_loss: 0.4309 - val_accuracy: 0.8391\n",
|
|
"Epoch 7: early stopping\n",
|
|
"Epoch 1/100\n",
|
|
"11/11 [==============================] - 0s 16ms/step - loss: 0.7462 - accuracy: 0.3750 - val_loss: 0.6626 - val_accuracy: 0.6897\n",
|
|
"Epoch 2/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6276 - accuracy: 0.7733 - val_loss: 0.5712 - val_accuracy: 0.8161\n",
|
|
"Epoch 3/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5523 - accuracy: 0.8401 - val_loss: 0.5149 - val_accuracy: 0.8391\n",
|
|
"Epoch 4/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5019 - accuracy: 0.8459 - val_loss: 0.4774 - val_accuracy: 0.8391\n",
|
|
"Epoch 5/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4635 - accuracy: 0.8459 - val_loss: 0.4510 - val_accuracy: 0.8391\n",
|
|
"Epoch 6/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4350 - accuracy: 0.8459 - val_loss: 0.4332 - val_accuracy: 0.8391\n",
|
|
"Epoch 7/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4125 - accuracy: 0.8488 - val_loss: 0.4226 - val_accuracy: 0.8391\n",
|
|
"Epoch 8/100\n",
|
|
" 1/11 [=>............................] - ETA: 0s - loss: 0.3229 - accuracy: 0.9062Restoring model weights from the end of the best epoch: 3.\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.3944 - accuracy: 0.8488 - val_loss: 0.4144 - val_accuracy: 0.8391\n",
|
|
"Epoch 8: early stopping\n",
|
|
"Epoch 1/100\n",
|
|
"11/11 [==============================] - 0s 15ms/step - loss: 0.6074 - accuracy: 0.8052 - val_loss: 0.5724 - val_accuracy: 0.8391\n",
|
|
"Epoch 2/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5342 - accuracy: 0.8372 - val_loss: 0.5336 - val_accuracy: 0.8391\n",
|
|
"Epoch 3/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4959 - accuracy: 0.8372 - val_loss: 0.5233 - val_accuracy: 0.8391\n",
|
|
"Epoch 4/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.4686 - accuracy: 0.8372 - val_loss: 0.5218 - val_accuracy: 0.8391\n",
|
|
"Epoch 5/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4488 - accuracy: 0.8372 - val_loss: 0.5201 - val_accuracy: 0.8391\n",
|
|
"Epoch 6/100\n",
|
|
" 1/11 [=>............................] - ETA: 0s - loss: 0.4088 - accuracy: 0.8750Restoring model weights from the end of the best epoch: 1.\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.4277 - accuracy: 0.8372 - val_loss: 0.5169 - val_accuracy: 0.8391\n",
|
|
"Epoch 6: early stopping\n",
|
|
"Epoch 1/100\n",
|
|
"11/11 [==============================] - 1s 16ms/step - loss: 0.6447 - accuracy: 0.8081 - val_loss: 0.5849 - val_accuracy: 0.8391\n",
|
|
"Epoch 2/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5958 - accuracy: 0.8372 - val_loss: 0.5489 - val_accuracy: 0.8391\n",
|
|
"Epoch 3/100\n",
|
|
"11/11 [==============================] - 0s 5ms/step - loss: 0.5652 - accuracy: 0.8372 - val_loss: 0.5187 - val_accuracy: 0.8391\n",
|
|
"Epoch 4/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5387 - accuracy: 0.8372 - val_loss: 0.4960 - val_accuracy: 0.8391\n",
|
|
"Epoch 5/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5142 - accuracy: 0.8372 - val_loss: 0.4750 - val_accuracy: 0.8391\n",
|
|
"Epoch 6/100\n",
|
|
" 1/11 [=>............................] - ETA: 0s - loss: 0.5897 - accuracy: 0.7500Restoring model weights from the end of the best epoch: 1.\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.4916 - accuracy: 0.8372 - val_loss: 0.4582 - val_accuracy: 0.8391\n",
|
|
"Epoch 6: early stopping\n",
|
|
"Epoch 1/100\n",
|
|
"11/11 [==============================] - 1s 16ms/step - loss: 0.6374 - accuracy: 0.7703 - val_loss: 0.5730 - val_accuracy: 0.8391\n",
|
|
"Epoch 2/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5777 - accuracy: 0.8372 - val_loss: 0.5332 - val_accuracy: 0.8391\n",
|
|
"Epoch 3/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5458 - accuracy: 0.8372 - val_loss: 0.5065 - val_accuracy: 0.8391\n",
|
|
"Epoch 4/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5243 - accuracy: 0.8372 - val_loss: 0.4933 - val_accuracy: 0.8391\n",
|
|
"Epoch 5/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5040 - accuracy: 0.8372 - val_loss: 0.4807 - val_accuracy: 0.8391\n",
|
|
"Epoch 6/100\n",
|
|
" 1/11 [=>............................] - ETA: 0s - loss: 0.3613 - accuracy: 0.9375Restoring model weights from the end of the best epoch: 1.\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.4850 - accuracy: 0.8372 - val_loss: 0.4738 - val_accuracy: 0.8391\n",
|
|
"Epoch 6: early stopping\n",
|
|
"Epoch 1/100\n",
|
|
"11/11 [==============================] - 1s 15ms/step - loss: 0.6247 - accuracy: 0.7616 - val_loss: 0.5506 - val_accuracy: 0.8391\n",
|
|
"Epoch 2/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5528 - accuracy: 0.8372 - val_loss: 0.5061 - val_accuracy: 0.8391\n",
|
|
"Epoch 3/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5168 - accuracy: 0.8372 - val_loss: 0.4745 - val_accuracy: 0.8391\n",
|
|
"Epoch 4/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4883 - accuracy: 0.8372 - val_loss: 0.4520 - val_accuracy: 0.8391\n",
|
|
"Epoch 5/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4657 - accuracy: 0.8372 - val_loss: 0.4388 - val_accuracy: 0.8391\n",
|
|
"Epoch 6/100\n",
|
|
" 1/11 [=>............................] - ETA: 0s - loss: 0.4244 - accuracy: 0.8750Restoring model weights from the end of the best epoch: 1.\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.4434 - accuracy: 0.8401 - val_loss: 0.4271 - val_accuracy: 0.8391\n",
|
|
"Epoch 6: early stopping\n",
|
|
"Epoch 1/100\n",
|
|
"11/11 [==============================] - 1s 16ms/step - loss: 0.6038 - accuracy: 0.8169 - val_loss: 0.5589 - val_accuracy: 0.8391\n",
|
|
"Epoch 2/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5368 - accuracy: 0.8372 - val_loss: 0.5275 - val_accuracy: 0.8391\n",
|
|
"Epoch 3/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5016 - accuracy: 0.8372 - val_loss: 0.5100 - val_accuracy: 0.8391\n",
|
|
"Epoch 4/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4754 - accuracy: 0.8372 - val_loss: 0.4983 - val_accuracy: 0.8391\n",
|
|
"Epoch 5/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4499 - accuracy: 0.8401 - val_loss: 0.4864 - val_accuracy: 0.8391\n",
|
|
"Epoch 6/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.4290 - accuracy: 0.8401 - val_loss: 0.4761 - val_accuracy: 0.8506\n",
|
|
"Epoch 7/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4088 - accuracy: 0.8372 - val_loss: 0.4675 - val_accuracy: 0.8391\n",
|
|
"Epoch 8/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.3895 - accuracy: 0.8517 - val_loss: 0.4596 - val_accuracy: 0.8391\n",
|
|
"Epoch 9/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.3736 - accuracy: 0.8692 - val_loss: 0.4570 - val_accuracy: 0.8391\n",
|
|
"Epoch 10/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.3604 - accuracy: 0.8692 - val_loss: 0.4480 - val_accuracy: 0.8391\n",
|
|
"Epoch 11/100\n",
|
|
" 1/11 [=>............................] - ETA: 0s - loss: 0.4443 - accuracy: 0.8438Restoring model weights from the end of the best epoch: 6.\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.3477 - accuracy: 0.8779 - val_loss: 0.4473 - val_accuracy: 0.8391\n",
|
|
"Epoch 11: early stopping\n",
|
|
"Epoch 1/100\n",
|
|
"11/11 [==============================] - 1s 15ms/step - loss: 0.5843 - accuracy: 0.8227 - val_loss: 0.5854 - val_accuracy: 0.8046\n",
|
|
"Epoch 2/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5818 - accuracy: 0.8256 - val_loss: 0.5827 - val_accuracy: 0.8161\n",
|
|
"Epoch 3/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5792 - accuracy: 0.8256 - val_loss: 0.5800 - val_accuracy: 0.8161\n",
|
|
"Epoch 4/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5768 - accuracy: 0.8256 - val_loss: 0.5774 - val_accuracy: 0.8161\n",
|
|
"Epoch 5/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5744 - accuracy: 0.8285 - val_loss: 0.5749 - val_accuracy: 0.8161\n",
|
|
"Epoch 6/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5721 - accuracy: 0.8285 - val_loss: 0.5724 - val_accuracy: 0.8276\n",
|
|
"Epoch 7/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5698 - accuracy: 0.8314 - val_loss: 0.5700 - val_accuracy: 0.8276\n",
|
|
"Epoch 8/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5675 - accuracy: 0.8314 - val_loss: 0.5676 - val_accuracy: 0.8391\n",
|
|
"Epoch 9/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5653 - accuracy: 0.8285 - val_loss: 0.5652 - val_accuracy: 0.8391\n",
|
|
"Epoch 10/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5632 - accuracy: 0.8343 - val_loss: 0.5630 - val_accuracy: 0.8391\n",
|
|
"Epoch 11/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5611 - accuracy: 0.8343 - val_loss: 0.5607 - val_accuracy: 0.8391\n",
|
|
"Epoch 12/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5591 - accuracy: 0.8343 - val_loss: 0.5585 - val_accuracy: 0.8391\n",
|
|
"Epoch 13/100\n",
|
|
" 1/11 [=>............................] - ETA: 0s - loss: 0.5193 - accuracy: 0.8125Restoring model weights from the end of the best epoch: 8.\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5570 - accuracy: 0.8343 - val_loss: 0.5563 - val_accuracy: 0.8391\n",
|
|
"Epoch 13: early stopping\n",
|
|
"Epoch 1/100\n",
|
|
"11/11 [==============================] - 0s 15ms/step - loss: 0.7949 - accuracy: 0.2703 - val_loss: 0.8107 - val_accuracy: 0.2644\n",
|
|
"Epoch 2/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.7842 - accuracy: 0.3198 - val_loss: 0.8006 - val_accuracy: 0.2989\n",
|
|
"Epoch 3/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.7740 - accuracy: 0.3605 - val_loss: 0.7910 - val_accuracy: 0.3218\n",
|
|
"Epoch 4/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.7642 - accuracy: 0.3721 - val_loss: 0.7816 - val_accuracy: 0.3448\n",
|
|
"Epoch 5/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.7547 - accuracy: 0.3983 - val_loss: 0.7727 - val_accuracy: 0.3448\n",
|
|
"Epoch 6/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.7456 - accuracy: 0.4244 - val_loss: 0.7641 - val_accuracy: 0.3793\n",
|
|
"Epoch 7/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.7370 - accuracy: 0.4506 - val_loss: 0.7557 - val_accuracy: 0.4253\n",
|
|
"Epoch 8/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.7285 - accuracy: 0.4797 - val_loss: 0.7479 - val_accuracy: 0.4483\n",
|
|
"Epoch 9/100\n",
|
|
"11/11 [==============================] - 0s 5ms/step - loss: 0.7206 - accuracy: 0.4913 - val_loss: 0.7403 - val_accuracy: 0.4828\n",
|
|
"Epoch 10/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.7129 - accuracy: 0.5233 - val_loss: 0.7329 - val_accuracy: 0.4828\n",
|
|
"Epoch 11/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.7055 - accuracy: 0.5320 - val_loss: 0.7257 - val_accuracy: 0.4828\n",
|
|
"Epoch 12/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6983 - accuracy: 0.5552 - val_loss: 0.7188 - val_accuracy: 0.5402\n",
|
|
"Epoch 13/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6914 - accuracy: 0.5959 - val_loss: 0.7122 - val_accuracy: 0.5402\n",
|
|
"Epoch 14/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6848 - accuracy: 0.6221 - val_loss: 0.7059 - val_accuracy: 0.5402\n",
|
|
"Epoch 15/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6784 - accuracy: 0.6628 - val_loss: 0.6997 - val_accuracy: 0.5402\n",
|
|
"Epoch 16/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6722 - accuracy: 0.6599 - val_loss: 0.6936 - val_accuracy: 0.5402\n",
|
|
"Epoch 17/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6662 - accuracy: 0.6715 - val_loss: 0.6879 - val_accuracy: 0.5747\n",
|
|
"Epoch 18/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6605 - accuracy: 0.6860 - val_loss: 0.6823 - val_accuracy: 0.5977\n",
|
|
"Epoch 19/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6550 - accuracy: 0.7006 - val_loss: 0.6770 - val_accuracy: 0.6092\n",
|
|
"Epoch 20/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6496 - accuracy: 0.7180 - val_loss: 0.6718 - val_accuracy: 0.6437\n",
|
|
"Epoch 21/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6445 - accuracy: 0.7384 - val_loss: 0.6668 - val_accuracy: 0.6552\n",
|
|
"Epoch 22/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6396 - accuracy: 0.7645 - val_loss: 0.6619 - val_accuracy: 0.6552\n",
|
|
"Epoch 23/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6347 - accuracy: 0.7762 - val_loss: 0.6573 - val_accuracy: 0.6552\n",
|
|
"Epoch 24/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6302 - accuracy: 0.7878 - val_loss: 0.6528 - val_accuracy: 0.6782\n",
|
|
"Epoch 25/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6257 - accuracy: 0.7994 - val_loss: 0.6484 - val_accuracy: 0.7126\n",
|
|
"Epoch 26/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6214 - accuracy: 0.8052 - val_loss: 0.6441 - val_accuracy: 0.7241\n",
|
|
"Epoch 27/100\n",
|
|
"11/11 [==============================] - 0s 5ms/step - loss: 0.6171 - accuracy: 0.8110 - val_loss: 0.6399 - val_accuracy: 0.7586\n",
|
|
"Epoch 28/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6131 - accuracy: 0.8052 - val_loss: 0.6359 - val_accuracy: 0.7701\n",
|
|
"Epoch 29/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6091 - accuracy: 0.8169 - val_loss: 0.6321 - val_accuracy: 0.7701\n",
|
|
"Epoch 30/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6054 - accuracy: 0.8256 - val_loss: 0.6283 - val_accuracy: 0.7701\n",
|
|
"Epoch 31/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6017 - accuracy: 0.8227 - val_loss: 0.6246 - val_accuracy: 0.7701\n",
|
|
"Epoch 32/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5981 - accuracy: 0.8227 - val_loss: 0.6211 - val_accuracy: 0.7816\n",
|
|
"Epoch 33/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5947 - accuracy: 0.8169 - val_loss: 0.6178 - val_accuracy: 0.7816\n",
|
|
"Epoch 34/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5914 - accuracy: 0.8285 - val_loss: 0.6144 - val_accuracy: 0.7931\n",
|
|
"Epoch 35/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5882 - accuracy: 0.8343 - val_loss: 0.6112 - val_accuracy: 0.7931\n",
|
|
"Epoch 36/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5851 - accuracy: 0.8343 - val_loss: 0.6081 - val_accuracy: 0.7931\n",
|
|
"Epoch 37/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5821 - accuracy: 0.8343 - val_loss: 0.6051 - val_accuracy: 0.7931\n",
|
|
"Epoch 38/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5791 - accuracy: 0.8343 - val_loss: 0.6021 - val_accuracy: 0.7931\n",
|
|
"Epoch 39/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5763 - accuracy: 0.8459 - val_loss: 0.5992 - val_accuracy: 0.8046\n",
|
|
"Epoch 40/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5735 - accuracy: 0.8459 - val_loss: 0.5964 - val_accuracy: 0.8046\n",
|
|
"Epoch 41/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5708 - accuracy: 0.8430 - val_loss: 0.5937 - val_accuracy: 0.8046\n",
|
|
"Epoch 42/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5681 - accuracy: 0.8459 - val_loss: 0.5911 - val_accuracy: 0.8046\n",
|
|
"Epoch 43/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5656 - accuracy: 0.8430 - val_loss: 0.5885 - val_accuracy: 0.8046\n",
|
|
"Epoch 44/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5631 - accuracy: 0.8430 - val_loss: 0.5860 - val_accuracy: 0.8161\n",
|
|
"Epoch 45/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5607 - accuracy: 0.8430 - val_loss: 0.5836 - val_accuracy: 0.8391\n",
|
|
"Epoch 46/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5584 - accuracy: 0.8430 - val_loss: 0.5813 - val_accuracy: 0.8391\n",
|
|
"Epoch 47/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5562 - accuracy: 0.8430 - val_loss: 0.5790 - val_accuracy: 0.8391\n",
|
|
"Epoch 48/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5540 - accuracy: 0.8459 - val_loss: 0.5768 - val_accuracy: 0.8391\n",
|
|
"Epoch 49/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.5518 - accuracy: 0.8459 - val_loss: 0.5747 - val_accuracy: 0.8391\n",
|
|
"Epoch 50/100\n",
|
|
" 1/11 [=>............................] - ETA: 0s - loss: 0.5793 - accuracy: 0.7500Restoring model weights from the end of the best epoch: 45.\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5498 - accuracy: 0.8430 - val_loss: 0.5726 - val_accuracy: 0.8391\n",
|
|
"Epoch 50: early stopping\n",
|
|
"Epoch 1/100\n",
|
|
"11/11 [==============================] - 0s 15ms/step - loss: 0.6551 - accuracy: 0.7180 - val_loss: 0.6410 - val_accuracy: 0.7241\n",
|
|
"Epoch 2/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6514 - accuracy: 0.7471 - val_loss: 0.6370 - val_accuracy: 0.7586\n",
|
|
"Epoch 3/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6479 - accuracy: 0.7616 - val_loss: 0.6330 - val_accuracy: 0.7701\n",
|
|
"Epoch 4/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6444 - accuracy: 0.7907 - val_loss: 0.6291 - val_accuracy: 0.7816\n",
|
|
"Epoch 5/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6410 - accuracy: 0.8023 - val_loss: 0.6253 - val_accuracy: 0.7816\n",
|
|
"Epoch 6/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6378 - accuracy: 0.8227 - val_loss: 0.6218 - val_accuracy: 0.8161\n",
|
|
"Epoch 7/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6346 - accuracy: 0.8285 - val_loss: 0.6184 - val_accuracy: 0.8276\n",
|
|
"Epoch 8/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6315 - accuracy: 0.8372 - val_loss: 0.6149 - val_accuracy: 0.8276\n",
|
|
"Epoch 9/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6284 - accuracy: 0.8517 - val_loss: 0.6116 - val_accuracy: 0.8391\n",
|
|
"Epoch 10/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6256 - accuracy: 0.8547 - val_loss: 0.6084 - val_accuracy: 0.8391\n",
|
|
"Epoch 11/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6226 - accuracy: 0.8517 - val_loss: 0.6054 - val_accuracy: 0.8391\n",
|
|
"Epoch 12/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6198 - accuracy: 0.8547 - val_loss: 0.6024 - val_accuracy: 0.8391\n",
|
|
"Epoch 13/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6170 - accuracy: 0.8517 - val_loss: 0.5994 - val_accuracy: 0.8391\n",
|
|
"Epoch 14/100\n",
|
|
" 1/11 [=>............................] - ETA: 0s - loss: 0.5474 - accuracy: 0.9062Restoring model weights from the end of the best epoch: 9.\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6143 - accuracy: 0.8547 - val_loss: 0.5966 - val_accuracy: 0.8391\n",
|
|
"Epoch 14: early stopping\n",
|
|
"Epoch 1/100\n",
|
|
"11/11 [==============================] - 0s 15ms/step - loss: 0.6945 - accuracy: 0.5610 - val_loss: 0.6824 - val_accuracy: 0.6552\n",
|
|
"Epoch 2/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6874 - accuracy: 0.5959 - val_loss: 0.6757 - val_accuracy: 0.7241\n",
|
|
"Epoch 3/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6806 - accuracy: 0.6395 - val_loss: 0.6695 - val_accuracy: 0.7356\n",
|
|
"Epoch 4/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6742 - accuracy: 0.6744 - val_loss: 0.6634 - val_accuracy: 0.7126\n",
|
|
"Epoch 5/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6682 - accuracy: 0.7122 - val_loss: 0.6575 - val_accuracy: 0.7241\n",
|
|
"Epoch 6/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6624 - accuracy: 0.7267 - val_loss: 0.6520 - val_accuracy: 0.7701\n",
|
|
"Epoch 7/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6569 - accuracy: 0.7616 - val_loss: 0.6466 - val_accuracy: 0.7586\n",
|
|
"Epoch 8/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6517 - accuracy: 0.7674 - val_loss: 0.6414 - val_accuracy: 0.7586\n",
|
|
"Epoch 9/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6467 - accuracy: 0.7936 - val_loss: 0.6364 - val_accuracy: 0.7586\n",
|
|
"Epoch 10/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6420 - accuracy: 0.8052 - val_loss: 0.6316 - val_accuracy: 0.7586\n",
|
|
"Epoch 11/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6373 - accuracy: 0.8198 - val_loss: 0.6270 - val_accuracy: 0.8046\n",
|
|
"Epoch 12/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6330 - accuracy: 0.8169 - val_loss: 0.6225 - val_accuracy: 0.8046\n",
|
|
"Epoch 13/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6288 - accuracy: 0.8198 - val_loss: 0.6182 - val_accuracy: 0.8046\n",
|
|
"Epoch 14/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6248 - accuracy: 0.8256 - val_loss: 0.6140 - val_accuracy: 0.8391\n",
|
|
"Epoch 15/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6210 - accuracy: 0.8372 - val_loss: 0.6099 - val_accuracy: 0.8391\n",
|
|
"Epoch 16/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6172 - accuracy: 0.8372 - val_loss: 0.6060 - val_accuracy: 0.8391\n",
|
|
"Epoch 17/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.6137 - accuracy: 0.8372 - val_loss: 0.6022 - val_accuracy: 0.8391\n",
|
|
"Epoch 18/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6102 - accuracy: 0.8459 - val_loss: 0.5985 - val_accuracy: 0.8391\n",
|
|
"Epoch 19/100\n",
|
|
" 1/11 [=>............................] - ETA: 0s - loss: 0.5978 - accuracy: 0.8125Restoring model weights from the end of the best epoch: 14.\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.6069 - accuracy: 0.8459 - val_loss: 0.5949 - val_accuracy: 0.8391\n",
|
|
"Epoch 19: early stopping\n",
|
|
"best acc at index 2: 0.8620689511299133\n",
|
|
"best loss at index 5: 0.36059069633483887\n",
|
|
"{'units3': 64, 'units2': 32, 'units1': 8, 'optimizer': <class 'keras.optimizers.legacy.adam.Adam'>, 'learning_rate': 0.001, 'activation3': 'relu', 'activation2': 'relu', 'activation1': 'relu'}\n",
|
|
"Epoch 1/100\n",
|
|
"11/11 [==============================] - 0s 15ms/step - loss: 0.6042 - accuracy: 0.8227 - val_loss: 0.5625 - val_accuracy: 0.8161\n",
|
|
"Epoch 2/100\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.5076 - accuracy: 0.8488 - val_loss: 0.5082 - val_accuracy: 0.8276\n",
|
|
"Epoch 3/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4523 - accuracy: 0.8401 - val_loss: 0.4729 - val_accuracy: 0.8391\n",
|
|
"Epoch 4/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.4084 - accuracy: 0.8488 - val_loss: 0.4537 - val_accuracy: 0.8391\n",
|
|
"Epoch 5/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.3751 - accuracy: 0.8547 - val_loss: 0.4435 - val_accuracy: 0.8391\n",
|
|
"Epoch 6/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.3506 - accuracy: 0.8605 - val_loss: 0.4383 - val_accuracy: 0.8391\n",
|
|
"Epoch 7/100\n",
|
|
"11/11 [==============================] - 0s 3ms/step - loss: 0.3295 - accuracy: 0.8779 - val_loss: 0.4319 - val_accuracy: 0.8046\n",
|
|
"Epoch 8/100\n",
|
|
" 1/11 [=>............................] - ETA: 0s - loss: 0.2080 - accuracy: 0.9062Restoring model weights from the end of the best epoch: 3.\n",
|
|
"11/11 [==============================] - 0s 4ms/step - loss: 0.3104 - accuracy: 0.8837 - val_loss: 0.4308 - val_accuracy: 0.8046\n",
|
|
"Epoch 8: 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": 120,
|
|
"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": 121,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"6/6 [==============================] - 0s 1ms/step\n",
|
|
"0.8225806451612904\n",
|
|
"0.9247311827956989\n",
|
|
"0.946236559139785\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": 122,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"6/6 [==============================] - 0s 798us/step\n",
|
|
"0.9193548387096774\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",
|
|
"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",
|
|
" 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": 123,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"' submission = pd.DataFrame()\\nprediction = model.predict(x_test)\\nsubmission.insert(0, \"Id\", id_number, False)\\nsubmission.insert(1, \"class_0\", [round(1-i[0],2) for i in prediction], True)\\nsubmission.insert(2, \"class_1\", [round(i[0],2) for i in prediction], True)\\nsubmission.to_csv(\"/kaggle/working/submission.csv\",index = False) '"
|
|
]
|
|
},
|
|
"execution_count": 123,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"\"\"\" submission = pd.DataFrame()\n",
|
|
"prediction = model.predict(x_test)\n",
|
|
"submission.insert(0, \"Id\", id_number, False)\n",
|
|
"submission.insert(1, \"class_0\", [round(1-i[0],2) for i in prediction], True)\n",
|
|
"submission.insert(2, \"class_1\", [round(i[0],2) for i in prediction], True)\n",
|
|
"submission.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
|
|
}
|