From d68341dd6f657d4f0624ce7434fa8cb7ac9f1d42 Mon Sep 17 00:00:00 2001 From: "Leandro A. Medeiros" Date: Mon, 25 Nov 2024 10:08:11 -0300 Subject: [PATCH] Delete Rede_Neural_Avaliacao.ipynb --- Rede_Neural_Avaliacao.ipynb | 515 ------------------------------------ 1 file changed, 515 deletions(-) delete mode 100644 Rede_Neural_Avaliacao.ipynb diff --git a/Rede_Neural_Avaliacao.ipynb b/Rede_Neural_Avaliacao.ipynb deleted file mode 100644 index e9129a2..0000000 --- a/Rede_Neural_Avaliacao.ipynb +++ /dev/null @@ -1,515 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "view-in-github", - "colab_type": "text" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "id": "f151b7dd", - "metadata": { - "id": "f151b7dd" - }, - "source": [ - "# Avaliação de Redes Neurais\n", - "Este notebook implementa o desenvolvimento de uma Rede Neural de acordo com os critérios estabelecidos:\n", - "- Preparação dos dados\n", - "- Escolha da arquitetura\n", - "- Seleção de hiperparâmetros\n", - "- Divisão de dados\n", - "- Métricas de avaliação\n", - "- Análise crítica e conclusões\n", - "\n", - "O dataset utilizado é o Iris Dataset, um problema clássico de classificação multiclasse." - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "40696229", - "metadata": { - "id": "40696229" - }, - "outputs": [], - "source": [ - "\n", - "# Importando bibliotecas necessárias\n", - "\n", - "Comentários:\n", - "\n", - "#import keras: A biblioteca principal para construir redes neurais com Keras.\n", - "#from sklearn.model_selection import train_test_split: Utilizada para dividir os dados em conjuntos de treinamento e teste.\n", - "#import matplotlib.pyplot as plt: Para visualização das métricas de treinamento e teste.\n", - "#from keras.models import Sequential: O modelo usado é o Sequential, que é adequado para redes neurais simples.\n", - "#from keras.layers import Dense: Usada para adicionar camadas densas ao modelo, a principal camada da rede neural.\n", - "\n", - "import numpy as np\n", - "import pandas as pd\n", - "import matplotlib.pyplot as plt\n", - "import seaborn as sns\n", - "from sklearn.model_selection import train_test_split\n", - "from sklearn.preprocessing import StandardScaler\n", - "from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "73dd53b3", - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 1000 - }, - "id": "73dd53b3", - "outputId": "6c563cd7-5a3c-4d17-98f6-b8109ee9f552" - }, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Informações do dataset:\n", - "\n", - "RangeIndex: 150 entries, 0 to 149\n", - "Data columns (total 5 columns):\n", - " # Column Non-Null Count Dtype \n", - "--- ------ -------------- ----- \n", - " 0 sepal length (cm) 150 non-null float64\n", - " 1 sepal width (cm) 150 non-null float64\n", - " 2 petal length (cm) 150 non-null float64\n", - " 3 petal width (cm) 150 non-null float64\n", - " 4 target 150 non-null int64 \n", - "dtypes: float64(4), int64(1)\n", - "memory usage: 6.0 KB\n", - "None\n", - "\n", - "Primeiros registros:\n", - " sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) \\\n", - "0 5.1 3.5 1.4 0.2 \n", - "1 4.9 3.0 1.4 0.2 \n", - "2 4.7 3.2 1.3 0.2 \n", - "3 4.6 3.1 1.5 0.2 \n", - "4 5.0 3.6 1.4 0.2 \n", - "\n", - " target \n", - "0 0 \n", - "1 0 \n", - "2 0 \n", - "3 0 \n", - "4 0 \n", - "\n", - "Valores ausentes por coluna:\n", - "sepal length (cm) 0\n", - "sepal width (cm) 0\n", - "petal length (cm) 0\n", - "petal width (cm) 0\n", - "target 0\n", - "dtype: int64\n", - "\n", - "Estatísticas descritivas:\n", - " sepal length (cm) sepal width (cm) petal length (cm) \\\n", - "count 150.000000 150.000000 150.000000 \n", - "mean 5.843333 3.057333 3.758000 \n", - "std 0.828066 0.435866 1.765298 \n", - "min 4.300000 2.000000 1.000000 \n", - "25% 5.100000 2.800000 1.600000 \n", - "50% 5.800000 3.000000 4.350000 \n", - "75% 6.400000 3.300000 5.100000 \n", - "max 7.900000 4.400000 6.900000 \n", - "\n", - " petal width (cm) target \n", - "count 150.000000 150.000000 \n", - "mean 1.199333 1.000000 \n", - "std 0.762238 0.819232 \n", - "min 0.100000 0.000000 \n", - "25% 0.300000 0.000000 \n", - "50% 1.300000 1.000000 \n", - "75% 1.800000 2.000000 \n", - "max 2.500000 2.000000 \n" - ] - }, - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ], - "image/png": "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rbfesiRZ69evt68FBARYKSkptT7/119/bUmylixZUus+e/futZo0aWLNnDnTYf3bb7+13N3d7evnciygsfHWEnCB+Pr61vnppcDAQEnSBx98oKqqqno9h6enp5KTk895//vuu09+fn72+3feeadatmypf//73/V6/v92+PBhrV+/XiNHjlTr1q0dtv33W2r/feansrJSR48eVfv27RUYGOjwdsi///1v9ezZU3379rWv+fr6asyYMdq7d6++++67Wmc58/VMmDDBYT01NbXavuc6T2BgoLZv367du3fX+rw1effddxUTE1PjGaS6Po7/33OdOnVKR44cUe/evSWp2lwbNmxQQUFBjcc5c5Zk5cqVOnHiRI37vPfee6qqqtLQoUN15MgR+y0sLEwdOnTQ2rVrz/lYQGMjZIAL5Pjx4w7R8Ht33XWX+vTpo9GjRys0NFTDhg3TO++8c15R06pVq/O6sLdDhw4O9202m9q3b1/j9Snn64cffpAkdenSpc79Tp48qSlTpigyMlKenp5q3ry5QkJCVFxc7HCdxb59+xQdHV3t8VdccYV9e2327dsnNzc3tWvXzmG9puOd6zwzZsxQcXGxOnbsqK5du+rhhx/W1q1b6/xaJSkvL++s35Oa/Pzzz/rrX/+q0NBQeXt7KyQkRFFRUZLkMNdTTz2lbdu2KTIyUj179tS0adPs/y0kKSoqSmlpaXrllVfUvHlzJSYmKjMz0+EYu3fvlmVZ6tChg0JCQhxuO3bs0KFDh875WEBjI2SAC+DHH39USUmJ2rdvX+s+3t7eWr9+vT799FPde++92rp1q+666y7deOONOn369Dk9T0Nc1/J7tZ0lONeZzmb8+PGaOXOmhg4dqnfeeUerVq3S6tWrFRwcXO8zU40xT3x8vPLy8rRgwQJ16dJFr7zyinr06KFXXnnlgsw1dOhQvfzyy/rLX/6i9957T6tWrdKKFSskyWGuoUOH6ocfftBzzz2n8PBwPf3007ryyiv1ySef2Pd55plntHXrVj322GM6efKkJkyYoCuvvNJ+8XNVVZVsNptWrFih1atXV7u9+OKL53wsoLFxsS9wAbz++uuSpMTExDr3c3Nz0w033KAbbrhBzz77rP72t7/p8ccf19q1a5WQkNDgPwn492+LWJalPXv2OPy8m8suu0zFxcXVHrtv3z5dfvnltR77zLZt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2pCHBAAAqFW93lpKS0tzuG9Zlg4ePKiPP/5YI0aMaJDBAAAAzqZeIfP111873Hdzc1NISIieeeaZs36iCQAAoKHUK2TWrl3b0HMAAACct3qFzBmHDx/Wrl27JEnR0dEKCQlpkKEAAADORb0u9i0rK9PIkSPVsmVLxcfHKz4+XuHh4Ro1apROnDjR0DMCAADUqF4hk5aWpuzsbC1fvlzFxcUqLi7WBx98oOzsbP2///f/GnpGAACAGtXrraV3331XS5cuVb9+/exrN998s7y9vTV06FC98MILDTUfAABArep1RubEiRMKDQ2ttt6iRQveWgIAAI2mXiETFxenqVOn6tSpU/a1kydPavr06YqLi2uw4QAAAOpSr7eWZs+erT//+c+KiIhQTEyMJOmbb76Rp6enVq1a1aADAgAA1KZeIdO1a1ft3r1bb775pnbu3ClJGj58uO655x55e3s36IAAAAC1qVfIZGRkKDQ0VA888IDD+oIFC3T48GFNmjSpQYYDAACoS72ukXnxxRfVqVOnautXXnml5s+f/4eHAgAAOBf1CpnCwkK1bNmy2npISIgOHjz4h4cCAAA4F/UKmcjISH3++efV1j///HOFh4f/4aEAAADORb2ukXnggQeUmpqqyspK9e/fX5KUlZWlRx55hJ/sCwAAGk29Qubhhx/W0aNHNXbsWFVUVEiSvLy8NGnSJKWnpzfogAAAALWpV8jYbDb94x//0OTJk7Vjxw55e3urQ4cO8vT0bOj5AAAAalWvkDnD19dXV199dUPNAgAAcF7qdbEvAACAKyBkAACAsQgZAABgLEIGAAAYi5ABAADGImQAAICxCBkAAGAsQgYAABiLkAEAAMYiZAAAgLEIGQAAYCxCBgAAGIuQAQAAxiJkAACAsQgZAABgLEIGAAAYi5ABAADGImQAAICxnBoyGRkZuvrqq+Xn56cWLVpo0KBB2rVrl8M+p06dUkpKioKDg+Xr66ukpCQVFRU5aWIAAOBKnBoy2dnZSklJUW5urlavXq3KykrddNNNKisrs+8zceJELV++XEuWLFF2drYKCgo0ePBgJ04NAABchbszn3zFihUO9xctWqQWLVpo8+bNio+PV0lJiV599VUtXrxY/fv3lyQtXLhQV1xxhXJzc9W7d29njA0AAFyES10jU1JSIkkKCgqSJG3evFmVlZVKSEiw79Op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2S7ovBe70tJSRUZG6sCBA/L393f2OACvSbgcXpMNx7IsHTt2TOHh4XXu59Ih4+HhodjYWGVlZWnQoEGSfguTrKwsjRs3rsbHeHp6ytPT02EtMDDwAk96afH39+cvKFwKr0m4Gl6TDaOuMzFnuHTISFJaWppGjBihq666Sj179tTs2bNVVlam5ORkZ48GAACczOVD5q677tLhw4c1ZcoUFRYWqnv37lqxYkW1C4ABAMClx+VDRpLGjRtX61tJaDyenp6aOnVqtbfuAGfhNQlXw2uy8dmss32uCQAAwEW59A/EAwAAqAshAwAAjEXIAAAAYxEyAADAWIQMzklmZqbatm0rLy8v9erVS19++aWzR8IlbP369Ro4cKDCw8Nls9n0/vvvO3skXOIyMjJ09dVXy8/PTy1atNCgQYO0a9cuZ491SSBkcFb/+te/lJaWpqlTp+qrr75STEyMEhMTdejQIWePhktUWVmZYmJilJmZ6exRAElSdna2UlJSlJubq9WrV6uyslI33XSTysrKnD3aRY+PX+OsevXqpauvvlrPP/+8pN9+TURkZKTGjx+vRx991MnT4VJns9m0bNky+68xAVzB4cOH1aJFC2VnZys+Pt7Z41zUOCODOlVUVGjz5s1KSEiwr7m5uSkhIUE5OTlOnAwAXFdJSYkkKSgoyMmTXPwIGdTpyJEjOn36dLVfCREaGqrCwkInTQUArquqqkqpqanq06ePunTp4uxxLnpG/IoCAABMkZKSom3btumzzz5z9iiXBEIGdWrevLmaNGmioqIih/WioiKFhYU5aSoAcE3jxo3TRx99pPXr1ysiIsLZ41wSeGsJdfLw8FBsbKyysrLsa1VVVcrKylJcXJwTJwMA12FZlsaNG6dly5ZpzZo1ioqKcvZIlwzOyOCs0tLSNGLECF111VXq2bOnZs+erbKyMiUnJzt7NFyijh8/rj179tjv5+fna8uWLQoKClLr1q2dOBkuVSkpKVq8eLE++OAD+fn52a8hDAgIkLe3t5Onu7jx8Wuck+eff15PP/20CgsL1b17d82dO1e9evVy9li4RK1bt07XX399tfURI0Zo0aJFjT8QLnk2m63G9YULF+r+++9v3GEuMYQMAAAwFtfIAAAAYxEyAADAWIQMAAAwFiEDAACMRcgAAABjETIAAMBYhAwAADAWIQMAAIxFyABoVP369VNqaqqzx7BztXkAnB9CBoBxKioqnD0CABdByABoNPfff7+ys7M1Z84c2Ww22Ww25eXladSoUYqKipK3t7eio6M1Z86cao8bNGiQZs6cqfDwcEVHR0uSvvjiC3Xv3l1eXl666qqr9P7778tms2nLli32x27btk0DBgyQr6+vQkNDde+99+rIkSO1zrN3797G+nYAaAD89msAjWbOnDn6/vvv1aVLF82YMUOSdNlllykiIkJLlixRcHCwvvjiC40ZM0YtW7bU0KFD7Y/NysqSv7+/Vq9eLUkqLS3VwIEDdfPNN2vx4sXat29ftbeIiouL1b9/f40ePVqzZs3SyZMnNWnSJA0dOlRr1qypcZ6QkJDG+WYAaBCEDIBGExAQIA8PDzVr1kxhYWH29enTp9v/HBUVpZycHL3zzjsOIePj46NXXnlFHh4ekqT58+fLZrPp5ZdflpeXlzp37qyffvpJDzzwgP0xzz//vP70pz/pb3/7m31twYIFioyM1Pfff6+OHTvWOA8AcxAyAJwuMzNTCxYs0P79+3Xy5ElVVFSoe/fuDvt07drVHjGStGvXLnXr1k1eXl72tZ49ezo85ptvvtHatWvl6+tb7Tnz8vLUsWPHhv1CADQ6QgaAU7399tt66KGH9MwzzyguLk5+fn56+umntWHDBof9fHx8zvvYx48f18CBA/WPf/yj2raWLVvWe2YAroOQAdCoPDw8dPr0afv9zz//XNdcc43Gjh1rX8vLyzvrcaKjo/XGG2+ovLxcnp6ekqSNGzc67NOjRw+9++67atu2rdzda/6fu9/PA8AsfGoJQKNq27atNmzYoL179+rIkSPq0KGDNm3apJUrV+r777/X5MmTqwVJTe6++25VVVVpzJgx2rFjh1auXKn/+7//kyTZbDZJUkpKin7++WcNHz5cGzduVF5enlauXKnk5GR7vPx+nqqqqgv3xQNocIQMgEb10EMPqUmTJurcubNCQkKUmJiowYMH66677lKvXr109OhRh7MztfH399fy5cu1ZcsWde/eXY8//rimTJkiSfbrZsLDw/X555/r9OnTuummm9S1a1elpqYqMDBQbm5uNc6zf//+C/fFA2hwNsuyLGcPAQAN4c0331RycrJKSkrk7e3t7HEANAKukQFgrNdee02XX365WrVqpW+++cb+M2KIGODSQcgAMFZhYaGmTJmiwsJCtWzZUkOGDNHMmTOdPRaARsRbSwAAwFhc7AsAAIxFyAAAAGMRMgAAwFiEDAAAMBYhAwAAjEXIAAAAYxEyAADAWIQMAAAwFiEDAACM9f8BRlHvfrywZBcAAAAASUVORK5CYII=\n" - }, - "metadata": {} - } - ], - "source": [ - "\n", - "# Carregando o dataset Iris\n", - "from sklearn.datasets import load_iris\n", - "iris = load_iris()\n", - "data = pd.DataFrame(data=iris.data, columns=iris.feature_names)\n", - "data['target'] = iris.target\n", - "\n", - "# Exibindo informações básicas sobre o dataset\n", - "print(\"Informações do dataset:\")\n", - "print(data.info())\n", - "print(\"\\nPrimeiros registros:\")\n", - "print(data.head())\n", - "\n", - "# Verificando valores ausentes e estatísticas descritivas\n", - "print(\"\\nValores ausentes por coluna:\")\n", - "print(data.isnull().sum())\n", - "print(\"\\nEstatísticas descritivas:\")\n", - "print(data.describe())\n", - "\n", - "# Explorando a distribuição das classes\n", - "sns.countplot(x='target', data=data)\n", - "plt.title(\"Distribuição das classes\")\n", - "plt.show()\n" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "b53b2759", - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "b53b2759", - "outputId": "b2d22772-dc61-4d08-d5c4-c91bc9f234b7" - }, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Tamanhos dos conjuntos:\n", - "Treino: (105, 4), Validação: (22, 4), Teste: (23, 4)\n" - ] - } - ], - "source": [ - "#O código assume que os dados foram carregados e que as variáveis X (entradas) e y (saídas) já estão definidas.\n", - "#X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2): A divisão dos dados é feita corretamente para separar 80% para treino e 20% para teste, o que é uma prática comum.\n", - "#Melhoria: Caso os dados sejam balanceados, é interessante passar o argumento stratify=y para garantir que a divisão respeite a distribuição das classes. Isso ajuda a evitar que uma classe seja mais representada que a outra no conjunto de treinamento/teste.\n", - "\n", - "# Normalizando os dados\n", - "scaler = StandardScaler()\n", - "X = scaler.fit_transform(data.iloc[:, :-1])\n", - "y = data['target']\n", - "\n", - "# Dividindo os dados em treino, validação e teste (70%, 15%, 15%)\n", - "X_train, X_temp, y_train, y_temp = train_test_split(X, y, test_size=0.3, random_state=42)\n", - "X_val, X_test, y_val, y_test = train_test_split(X_temp, y_temp, test_size=0.5, random_state=42)\n", - "\n", - "print(\"Tamanhos dos conjuntos:\")\n", - "print(f\"Treino: {X_train.shape}, Validação: {X_val.shape}, Teste: {X_test.shape}\")\n" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "0eb895b2", - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "0eb895b2", - "outputId": "530b4d86-146c-4243-a29c-6c632381ee7b" - }, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Epoch 1/50\n" - ] - }, - { - "output_type": "stream", - "name": "stderr", - "text": [ - "/usr/local/lib/python3.10/dist-packages/keras/src/layers/core/dense.py:87: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.\n", - " super().__init__(activity_regularizer=activity_regularizer, **kwargs)\n" - ] - }, - { - "output_type": "stream", - "name": "stdout", - "text": [ - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 38ms/step - accuracy: 0.0850 - loss: 1.2526 - val_accuracy: 0.0455 - val_loss: 1.1607\n", - "Epoch 2/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 9ms/step - accuracy: 0.2259 - loss: 1.1364 - val_accuracy: 0.1364 - val_loss: 1.0552\n", - "Epoch 3/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 6ms/step - accuracy: 0.3376 - loss: 1.0735 - val_accuracy: 0.8636 - val_loss: 0.9539\n", - "Epoch 4/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 6ms/step - accuracy: 0.5981 - loss: 0.9972 - val_accuracy: 0.9091 - val_loss: 0.8665\n", - "Epoch 5/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 6ms/step - accuracy: 0.7052 - loss: 0.9166 - val_accuracy: 0.9091 - val_loss: 0.7816\n", - "Epoch 6/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.7085 - loss: 0.8701 - val_accuracy: 0.9091 - val_loss: 0.7098\n", - "Epoch 7/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 10ms/step - accuracy: 0.6823 - loss: 0.8356 - val_accuracy: 0.9091 - val_loss: 0.6414\n", - "Epoch 8/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 6ms/step - accuracy: 0.7817 - loss: 0.7458 - val_accuracy: 0.9091 - val_loss: 0.5766\n", - "Epoch 9/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 6ms/step - accuracy: 0.8050 - loss: 0.7182 - val_accuracy: 0.9091 - val_loss: 0.5215\n", - "Epoch 10/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 8ms/step - accuracy: 0.8147 - loss: 0.6547 - val_accuracy: 0.9091 - val_loss: 0.4743\n", - "Epoch 11/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 6ms/step - accuracy: 0.8018 - loss: 0.6109 - val_accuracy: 0.9091 - val_loss: 0.4298\n", - "Epoch 12/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 6ms/step - accuracy: 0.8206 - loss: 0.5722 - val_accuracy: 0.9091 - val_loss: 0.3923\n", - "Epoch 13/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 6ms/step - accuracy: 0.8458 - loss: 0.5095 - val_accuracy: 0.9091 - val_loss: 0.3575\n", - "Epoch 14/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 9ms/step - accuracy: 0.8149 - loss: 0.4903 - val_accuracy: 0.9091 - val_loss: 0.3285\n", - "Epoch 15/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 6ms/step - accuracy: 0.8054 - loss: 0.4932 - val_accuracy: 0.9091 - val_loss: 0.3056\n", - "Epoch 16/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 9ms/step - accuracy: 0.8439 - loss: 0.4400 - val_accuracy: 0.9091 - val_loss: 0.2859\n", - "Epoch 17/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 9ms/step - accuracy: 0.7912 - loss: 0.4473 - val_accuracy: 0.9091 - val_loss: 0.2692\n", - "Epoch 18/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 9ms/step - accuracy: 0.8454 - loss: 0.4027 - val_accuracy: 0.9091 - val_loss: 0.2542\n", - "Epoch 19/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 10ms/step - accuracy: 0.8168 - loss: 0.4163 - val_accuracy: 0.9545 - val_loss: 0.2415\n", - "Epoch 20/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 6ms/step - accuracy: 0.8435 - loss: 0.3749 - val_accuracy: 0.9545 - val_loss: 0.2304\n", - "Epoch 21/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 6ms/step - accuracy: 0.8214 - loss: 0.4124 - val_accuracy: 0.9545 - val_loss: 0.2199\n", - "Epoch 22/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 9ms/step - accuracy: 0.8301 - loss: 0.3936 - val_accuracy: 0.9545 - val_loss: 0.2096\n", - "Epoch 23/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 9ms/step - accuracy: 0.8365 - loss: 0.3829 - val_accuracy: 0.9545 - val_loss: 0.2010\n", - "Epoch 24/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 9ms/step - accuracy: 0.8552 - loss: 0.3279 - val_accuracy: 0.9545 - val_loss: 0.1939\n", - "Epoch 25/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.8462 - loss: 0.3103 - val_accuracy: 0.9545 - val_loss: 0.1867\n", - "Epoch 26/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.8215 - loss: 0.3705 - val_accuracy: 0.9545 - val_loss: 0.1794\n", - "Epoch 27/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 6ms/step - accuracy: 0.8626 - loss: 0.3020 - val_accuracy: 0.9545 - val_loss: 0.1737\n", - "Epoch 28/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 9ms/step - accuracy: 0.8372 - loss: 0.3238 - val_accuracy: 0.9545 - val_loss: 0.1673\n", - "Epoch 29/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 14ms/step - accuracy: 0.8206 - loss: 0.3093 - val_accuracy: 0.9545 - val_loss: 0.1616\n", - "Epoch 30/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 12ms/step - accuracy: 0.9010 - loss: 0.2388 - val_accuracy: 0.9545 - val_loss: 0.1558\n", - "Epoch 31/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 12ms/step - accuracy: 0.8957 - loss: 0.2484 - val_accuracy: 0.9545 - val_loss: 0.1510\n", - "Epoch 32/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 12ms/step - accuracy: 0.8912 - loss: 0.2714 - val_accuracy: 0.9545 - val_loss: 0.1461\n", - "Epoch 33/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.8842 - loss: 0.2965 - val_accuracy: 0.9545 - val_loss: 0.1414\n", - "Epoch 34/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 12ms/step - accuracy: 0.8746 - loss: 0.3113 - val_accuracy: 0.9545 - val_loss: 0.1369\n", - "Epoch 35/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 12ms/step - accuracy: 0.9278 - loss: 0.2347 - val_accuracy: 0.9545 - val_loss: 0.1313\n", - "Epoch 36/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 15ms/step - accuracy: 0.9162 - loss: 0.2592 - val_accuracy: 0.9545 - val_loss: 0.1262\n", - "Epoch 37/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.9382 - loss: 0.2197 - val_accuracy: 0.9545 - val_loss: 0.1212\n", - "Epoch 38/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.9171 - loss: 0.2379 - val_accuracy: 0.9545 - val_loss: 0.1168\n", - "Epoch 39/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 8ms/step - accuracy: 0.9047 - loss: 0.2433 - val_accuracy: 0.9545 - val_loss: 0.1124\n", - "Epoch 40/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 12ms/step - accuracy: 0.9442 - loss: 0.1866 - val_accuracy: 0.9545 - val_loss: 0.1085\n", - "Epoch 41/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 12ms/step - accuracy: 0.9012 - loss: 0.2438 - val_accuracy: 1.0000 - val_loss: 0.1045\n", - "Epoch 42/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 10ms/step - accuracy: 0.9511 - loss: 0.1699 - val_accuracy: 1.0000 - val_loss: 0.1010\n", - "Epoch 43/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 12ms/step - accuracy: 0.9380 - loss: 0.1876 - val_accuracy: 1.0000 - val_loss: 0.0965\n", - "Epoch 44/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - accuracy: 0.9245 - loss: 0.1935 - val_accuracy: 1.0000 - val_loss: 0.0928\n", - "Epoch 45/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 10ms/step - accuracy: 0.9328 - loss: 0.1909 - val_accuracy: 1.0000 - val_loss: 0.0883\n", - "Epoch 46/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 12ms/step - accuracy: 0.9620 - loss: 0.1566 - val_accuracy: 1.0000 - val_loss: 0.0848\n", - "Epoch 47/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.9562 - loss: 0.1865 - val_accuracy: 1.0000 - val_loss: 0.0815\n", - "Epoch 48/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.9347 - loss: 0.2038 - val_accuracy: 1.0000 - val_loss: 0.0778\n", - "Epoch 49/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 12ms/step - accuracy: 0.9401 - loss: 0.1681 - val_accuracy: 1.0000 - val_loss: 0.0747\n", - "Epoch 50/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 12ms/step - accuracy: 0.9349 - loss: 0.1789 - val_accuracy: 1.0000 - val_loss: 0.0719\n" - ] - } - ], - "source": [ - "#O modelo é construído com três camadas densas, sendo a primeira camada com 32 neurônios, a segunda com 16 e a última com uma única saída (para problemas de classificação binária).\n", - "#model = Sequential(): Criação de um modelo sequencial, o que é adequado para redes neurais simples.\n", - "#model.add(Dense(32, activation='relu', input_dim=X_train.shape[1])): A primeira camada densa com 32 unidades e a função de ativação ReLU. É importante observar que o código usa input_dim=X_train.shape[1] para definir o número de entradas da rede, o que está correto. No entanto, se fosse utilizada a camada Input, o parâmetro input_dim não seria necessário.\n", - "#Melhoria: Considerar o uso de Input(shape=(n_features,)) para maior clareza e evitar a redundância do input_dim.\n", - "#model.add(Dense(16, activation='relu')): A segunda camada densa tem 16 unidades. A escolha dessa quantidade de unidades é razoável, mas pode ser ajustada dependendo do desempenho desejado.\n", - "#model.add(Dense(1, activation='sigmoid')): A camada final com 1 unidade e a ativação sigmoid é adequada para problemas de classificação binária.\n", - "\n", - "# Definindo e compilando o modelo MLP\n", - "model = Sequential([\n", - " Dense(32, activation='relu', input_dim=X_train.shape[1]),\n", - " Dense(16, activation='relu'),\n", - " Dense(3, activation='softmax')\n", - "])\n", - "\n", - "model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])\n", - "\n", - "# Treinando o modelo\n", - "history = model.fit(X_train, y_train, validation_data=(X_val, y_val), epochs=50, batch_size=16, verbose=1)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "49f31d25", - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "49f31d25", - "outputId": "81df1ffc-5ceb-430c-e18f-c917766514a3" - }, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 48ms/step\n", - "Resultados no conjunto de teste:\n", - "Acurácia: 0.9565\n", - "Precisão: 0.9620\n", - "Recall: 0.9565\n", - "F1-Score: 0.9568\n" - ] - } - ], - "source": [ - "#O modelo é compilado com um otimizador adam e a função de perda binary_crossentropy, o que é adequado para problemas de classificação binária.\n", - "#model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']): A escolha do otimizador adam e da função de perda binary_crossentropy são padrão para problemas de classificação binária. A métrica de avaliação é accuracy, o que é apropriado.\n", - "#Melhoria: Embora a acurácia seja uma métrica relevante, é interessante também monitorar o precision, recall e f1-score, especialmente em conjuntos de dados desbalanceados.\n", - "\n", - "# Avaliando o modelo no conjunto de teste\n", - "y_pred = np.argmax(model.predict(X_test), axis=1)\n", - "accuracy = accuracy_score(y_test, y_pred)\n", - "precision = precision_score(y_test, y_pred, average='weighted')\n", - "recall = recall_score(y_test, y_pred, average='weighted')\n", - "f1 = f1_score(y_test, y_pred, average='weighted')\n", - "\n", - "print(\"Resultados no conjunto de teste:\")\n", - "print(f\"Acurácia: {accuracy:.4f}\")\n", - "print(f\"Precisão: {precision:.4f}\")\n", - "print(f\"Recall: {recall:.4f}\")\n", - "print(f\"F1-Score: {f1:.4f}\")\n" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "9aba9e97", - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 507 - }, - "id": "9aba9e97", - "outputId": "b7ce4f06-828d-41bd-8de1-1c26aa4d82dc" - }, - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ], - "image/png": "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ULlyZQBef/11Xn75ZQYMGMBDDz3E6dOnmTp1KjfeeCNbt26lQoUKjmPPnj1Ljx49uPvuu7n//vvx9/fHMAz+7//+jzVr1vDoo4/SoEEDvv/+ewYPHpzl2suXL+fw4cMMHTqUgIAAdu3axaeffsquXbv4888/c/105+LFi9x8881ERETw5JNPEhQUxFdffcXvv/9+zc/Jq6++iqurK88++yzJycm4urqye/duFi1axJ133kmNGjWIiYnhk08+oVOnTuzevZugoKBM53jjjTewWq08++yzxMXF8Z///If77ruPDRs2APDSSy8RFxdHZGQk7733HgBeXl4A2Gw2evfuzZo1a3j44Ydp0KABO3fu5L333mP//v0sWrQo1/hnzZrF0KFDadWqFZMnTyYmJob333+ftWvXZvkdXunGG2/kySef5IMPPuDFF1+kQYMGAI7vAPv27eOee+7hkUceYdiwYdSrV4+kpCQ6derEiRMneOSRR6hatSrr1q1jzJgxREVF5ak0fcCAAdSoUYPJkyezZcsWPvvsM/z8/HjzzTcd+3z88cc0bNiQ3r174+zszI8//sjjjz+OzWZj+PDhmc538OBB7r33Xh555BHuv/9+3n77bXr16sX06dN58cUXefzxxwGYPHkyAwYMYN++fY5msrt27aJ9+/YEBwczevRoPD09mTdvHnfccQcLFiygT58+ma71xBNPULFiRcaPH8/Ro0eZMmUKI0aMYO7cuQBMmTKFJ554Ai8vL1566SUA/P39AYiJiaFdu3YkJSXx5JNPUrlyZb744gt69+7N/Pnzs1xLREQKx+zZs+nbty+urq7cc889fPzxx/z111+OP2oBEhIS6NixI3v27OGBBx6gRYsWnDlzhsWLFxMZGUmVKlXyfd3sxk5gf+/29PRk1KhReHp6smLFCsaNG0d8fDxvvfWW4/jly5dz++23ExgYyFNPPUVAQAB79uzhp59+4qmnnsrxuvl5D/23X3/9lX79+hEWFsbkyZM5e/YsQ4cOJSQkJN+P/0ppaWl0796dDh068Pbbb+Ph4QHYEwdJSUk89thjVK5cmY0bNzJ16lQiIyP57rvvMp0jPT2d7t2706ZNG95++21+++033nnnHWrVqsVjjz2Gr68vH3/8MY899hh9+vShb9++ADRp0gTI/3v+lQzDoHfv3qxcuZIHH3yQZs2a8csvv/Dcc89x4sQJx/guO7mNAzNkNx79/fff6dGjB+Hh4YwfPx6r1epIOP7xxx+0bt061+f84MGD9O/fnwcffJDBgwczc+ZMhgwZQnh4OA0bNgTsH5blZ8w7efJkypUrx+jRozl48CBTp07FxcUFq9XKuXPneOWVV/jzzz+ZNWsWNWrUYNy4cY5j8/N3x7lz57j11lvp27cvAwYMYP78+bzwwgs0btyYHj160KBBAyZOnMi4ceN4+OGH6dixIwDt2rUDCj4+FsmRISL58vnnnxuA8dtvvxmnT582jh8/bsyZM8eoXLmyUa5cOSMyMtI4evSo4eTkZLz++uuZjt25c6fh7OycaXunTp0MwJg+fXqmfRctWmQAxn/+8x/HtrS0NKNjx44GYHz++eeO7UlJSVni/Pbbbw3AWL16da6PZ8qUKQZgzJs3z7EtMTHRqF27tgEYK1eudGyvVq2aMXjw4Czn6NSpk9GpUyfHzytXrjQAo2bNmlliu3TpkpGenp5p25EjRww3Nzdj4sSJWc7RoEEDIzk52bH9/fffNwBj586djm09e/Y0qlWrliWur776yrBarcYff/yRafv06dMNwFi7dm22z4lhGEZKSorh5+dnNGrUyLh48aJj+08//WQAxrhx43I81jAM47vvvsvy/GWoVq2aARjLli3LtP3VV181PD09jf3792faPnr0aMPJycmIiIhwbAOM8ePHO34eP368ARgPPPBApmP79OljVK5cOdO27P69dO/e3ahZs2a2ca5bt86x7ZdffjEAo1y5csaxY8cc2z/55JMsj/fmm282GjdubFy6dMmxzWazGe3atTPq1Knj2Jbxmurataths9kc20eOHGk4OTkZ58+fd2xr2LBhpn9rGZ5++mkDyPS7vnDhglGjRg2jevXqWf7NiYjItdu0aZMBGMuXLzcMw/5/fEhIiPHUU09l2m/cuHEGYCxcuDDLOTL+3894Lzhy5Eim+zPGA1e+v+Q0djIMw0hISMiy7aGHHjI8PDwc70dpaWlGjRo1jGrVqhnnzp3LNh7D+Oe99Up5fQ/NTrNmzYzAwMBM72u//vqrAWQax2T3mA3DPl769xhw8ODBBmCMHj06y/Wyi3Xy5MmGxWLJ9B6ecY4rx2GGYRjNmzc3wsPDHT+fPn06y/gjQ17f87OTMeZ97bXXMm3v37+/YbFYjIMHD+Z6fE7jwJzGozabzahTp47RvXv3TL/vpKQko0aNGka3bt0c27L7d5kxPrpyjH3q1CnDzc3NeOaZZxzb8jvmbdSokZGSkuLYfs899xgWi8Xo0aNHpnO0bds20+MtyN8dX375pWNbcnKyERAQYPTr18+x7a+//sryb80wrn18LJIdTd8TKaCuXbvi6+tLaGgod999N15eXnz//fcEBwezcOFCbDYbAwYM4MyZM46vgIAA6tSpw8qVKzOdy83NjaFDh2batnTpUpydnXnssccc25ycnHjiiSeyxFKuXDnH7UuXLnHmzBluuOEGALZs2ZLr41i6dCmBgYH079/fsc3Dw4OHH344709GDgYPHpwpNrA/1oxKmvT0dM6ePYuXlxf16tXLNtahQ4fi6urq+Dnj05rDhw9f9frfffcdDRo0oH79+pl+DxlTLf/9e7jSpk2bOHXqFI8//nimfhI9e/akfv361zwtrEaNGnTv3j1LvB07dqRixYqZ4u3atSvp6emsXr36qud99NFHM/3csWNHzp496yhVh8z/XuLi4jhz5gydOnXi8OHDxMXFZTo+LCyMtm3bOn7OWFmpS5cuVK1aNcv2jN9LbGwsv//+OwMGDODChQuOx3L27Fm6d+/OgQMHspR5P/zww5mq+jp27Eh6ejrHjh276uNeunQprVu3pkOHDo5tXl5ePPzwwxw9epTdu3df9RwiIpI/s2fPxt/fn5tuugmwTy2/6667mDNnTqbpcgsWLKBp06bZVssUtFdPdmMnAE9PT8ft9PR0Ll26xK233kpSUhJ79+4FYOvWrRw5coSnn346S1XH1eLJz3volaKioti2bRuDBw/Gx8fHsb1bt26EhYXles28uHK8mF2siYmJnDlzhnbt2mEYRrZT7rMbQ+RlvFWQ9/wrLV26FCcnJ5588slM25955hkMw+Dnn3++agy5+fd4dNu2bRw4cIB7772Xs2fPOuJNTEzk5ptvZvXq1VftOxUWFuYYkwL4+vpSr169TM9Xfse8gwYNwsXFxfFzmzZtMAyDBx54INN+bdq04fjx46SlpQHk++8OLy8v7r//fsfPrq6utG7dOk+/66IeH8v1SdP3RApo2rRp1K1bF2dnZ/z9/alXr57jjefAgQMYhkGdOnWyPfbKNxyA4ODgTIkXgGPHjhEYGJilBLlevXpZzhcbG8uECROYM2cOp06dynRfbgOkjOvUrl07yyAsu+vkV40aNbJss9lsvP/++3z00UccOXIk06A1Y+rjla5MfABUrFgRsJceX82BAwfYs2ePowfCv/37ubpSRiIku+ehfv36rFmz5qrXz012z82BAwfYsWNHgeLNkNvz5e3tDcDatWsZP34869evz9JvKi4uLtNg+d/ny7gvNDQ02+0Zv5eDBw9iGAYvv/wyL7/8co6PJzg4OE+xX82xY8eyXYo8Y8rksWPHaNSo0VXPIyIieZOens6cOXO46aabMvXTbNOmDe+88w4rVqzglltuAewtDvr161eo189u7ASwf/9+JkyYwMqVK4mJicmUXMgYE2W0XCjI+0J+3kOvlDGuyG5smFOSIq+cnZ2znQIYERHBuHHjWLx4cZb30n+PD93d3bOMPypWrJin9+CCvOdf6dixYwQFBVG+fPlM2698D78W/x5zHThwACDblhgZ4uLiHOOQ7Px7zAJZn69rHfPmNuay2WzExcVRuXLlfP/dERISkmXcX7FiRXbs2JHt8Vcq6vGxXJ+UlBIpoNatW9OyZcts77PZbFgsFn7++WecnJyy3P/vRNO/q4nya8CAAaxbt47nnnuOZs2a4eXlhc1m49Zbby3UFe9y+vQwPT0928eZ3eOaNGkSL7/8Mg888ACvvvoqlSpVwmq18vTTT2cba3bnBa7a+BLsv4fGjRvz7rvvZnv/v9/ki1N2z43NZqNbt248//zz2R5Tt27dq573as/XoUOHuPnmm6lfvz7vvvsuoaGhuLq6snTpUt57770sv4Oczne162Sc59lnn81SEZahdu3a+TqniIiUHL///jtRUVHMmTOHOXPmZLl/9uzZjqRUXuQ2xshOdu+j8fHxdOzYER8fHyZOnEjt2rVxd3dn48aNPPXUU9c8Jsrve2hB5fe5uLIi58p9u3XrRmxsLC+88AL169fH09OTEydOMGTIkDy/3+dFQd7zi9O//61kxPvWW2/RrFmzbI/591j93/IyZimsMW9exlz5+btD4y0paZSUEikCtWrVwjAMatSokadEQnaqVavGihUrSEhIyPRmsm/fvkz7nTt3jhUrVjBhwoRMDQ8zPgXKy3X+/vtvDMPINAj693XA/ilKdqv/HTt2jJo1a+bpevPnz+emm27iv//9b6bt58+fL1CjU8h58FarVi22b9/OzTffnO/pAdWqVQPsz0PGdL8M+/btc9yf35hyU6tWLRISEujatWu+j82rH3/8keTkZBYvXpzpE7ncpjIWRMa/BxcXl0J9PDk9r9WqVcv232zGVI2r/b5ERCR/Zs+ejZ+fH9OmTcty38KFC/n++++ZPn065cqVo1atWvz999+5ni+jKuXf44z8VMmsXLmSU6dOsXDhQtq3b+/Y/u8KkFq1agHw999/5+s96lreQzPeh7Ibn/37/aswnoudO3eyf/9+vvjiCwYNGuTYvnz58jyf499yeg++1vf8atWq8dtvv3HhwoVM1VJ5fQ/P75gr4/fv7e1dpGOuohjzZqcw/u74t9zGW1Dw8bFIdtRTSqQI9O3bFycnJyZMmJDlUwfDMDh79uxVz3HbbbeRlpaWaZnh9PR0pk6dmmm/jE87/n2dvKzUlnGdkydPMn/+fMe2pKQkPv300yz71qpViz///JOUlBTHtp9++inLcrO5cXJyyhLrd999d03LyHp6emY7TXHAgAGcOHGCGTNmZLnv4sWLJCYm5njOli1b4ufnx/Tp0zMtu/vzzz+zZ88eevbsedWYIOuAMjcDBgxg/fr1/PLLL1nuO3/+vKN3wLXI7t9LXFwcn3/++TWf+0p+fn507tyZTz75hKioqCz3nz59ukDn9fT0zPY5ve2229i4cSPr1693bEtMTOTTTz+levXqhdKvQ0RE7C5evMjChQu5/fbb6d+/f5avESNGcOHCBRYvXgxAv3792L59O99//32Wc2W8H2UkCq7sn5ienp7teCQnGX9Ip6amOrYlJyfz4YcfZtqvRYsW1KhRgylTpmR5T8mtWuRa3kMDAwNp1qwZX3zxRaYxy/Lly7P0PaxWrRpOTk5Zekl+9NFHV71ObrEahsH777+f53P8W8aqfv9+zq71Pf+2224jPT09y+/pvffew2Kx0KNHj1yPz2kcmJPw8HBq1arF22+/TUJCQr7jzauiGPNmpzD+7vi3nMax1zo+FsmOKqVEikCtWrV47bXXGDNmDEePHuWOO+6gfPnyHDlyhO+//56HH36YZ599Ntdz9OrVi/bt2zN69GiOHj1KWFgYCxcuzPKm6+3tzY033sh//vMfUlNTCQ4O5tdff83U3yE3w4YN48MPP2TQoEFs3ryZwMBAvvrqK8fA40oPPfQQ8+fP59Zbb2XAgAEcOnSIr7/+2jGQzIvbb7+diRMnMnToUNq1a8fOnTuZPXt2niutshMeHs7cuXMZNWoUrVq1wsvLi169ejFw4EDmzZvHo48+ysqVK2nfvj3p6ens3buXefPm8csvv+Q4BdPFxYU333yToUOH0qlTJ+655x7HkrfVq1dn5MiRucbUrFkznJycePPNN4mLi8PNzY0uXbrg5+eX4zHPPfccixcv5vbbb3csK5yYmMjOnTuZP38+R48eveZP1m655RZcXV3p1asXjzzyCAkJCcyYMQM/P79sB5LXYtq0aXTo0IHGjRszbNgwatasSUxMDOvXrycyMpLt27fn+5zh4eF8/PHHvPbaa9SuXRs/Pz+6dOnC6NGj+fbbb+nRowdPPvkklSpV4osvvuDIkSMsWLAgy7QGEREpuMWLF3PhwgV69+6d7f033HADvr6+zJ49m7vuuovnnnuO+fPnc+edd/LAAw8QHh5ObGwsixcvZvr06TRt2pSGDRtyww03MGbMGGJjY6lUqRJz5szJ1wcy7dq1o0KFCgwZMoQnn3wSi8XCl19+ibNz5j95rFYrH3/8Mb169aJZs2YMHTqUwMBA9u7dy65du7L9cAiu/T108uTJ9OzZkw4dOvDAAw8QGxvL1KlTadiwYabkiI+PD3feeSdTp07FYrFQq1Ytfvrppzz1lsxQv359atWqxbPPPsuJEyfw9vZmwYIFeeoRlZNy5coRFhbG3LlzqVu3LpUqVaJRo0Y0atTomt7ze/XqxU033cRLL73E0aNHadq0Kb/++is//PADTz/99FXHmTmNA3NitVr57LPP6NGjBw0bNmTo0KEEBwdz4sQJVq5cibe3Nz/++GOBn6cMRTHmzU5h/N2R3TkrVKjA9OnTKV++PJ6enrRp04YaNWpc0/hYJFvFscSfSFmSsTTsX3/9ddV9FyxYYHTo0MHw9PQ0PD09jfr16xvDhw839u3b59inU6dORsOGDbM9/uzZs8bAgQMNb29vw8fHxxg4cKCxdevWLEu0RkZGGn369DEqVKhg+Pj4GHfeeadx8uTJHJft/bdjx44ZvXv3Njw8PIwqVaoYTz31lLFs2bJslyN+5513jODgYMPNzc1o3769sWnTJqNTp05Gp06dHPtkLG373XffZbnWpUuXjGeeecYIDAw0ypUrZ7Rv395Yv359ns+R3XLICQkJxr333mtUqFAhy7LKKSkpxptvvmk0bNjQcHNzMypWrGiEh4cbEyZMMOLi4q763MydO9do3ry54ebmZlSqVMm47777jMjIyKseZxiGMWPGDKNmzZqGk5NTpueyWrVqRs+ePbM95sKFC8aYMWOM2rVrG66urkaVKlWMdu3aGW+//XamZYL//bvNWLb69OnTmc6X3VLGixcvNpo0aWK4u7sb1atXN958801j5syZ2S55nF2cgDF8+PBM2zJ+L2+99Vam7YcOHTIGDRpkBAQEGC4uLkZwcLBx++23G/Pnz88S479fU9ktiR0dHW307NnTKF++vAFk+jdz6NAho3///kaFChUMd3d3o3Xr1sZPP/2UJX4REbk2vXr1Mtzd3Y3ExMQc9xkyZIjh4uJinDlzxjAM+5hmxIgRRnBwsOHq6mqEhIQYgwcPdtxvGPb/x7t27Wq4ubkZ/v7+xosvvmgsX748y3tBbmOnP/74w2jTpo1Rrlw5Izg42HjxxReNX3/9NdsxzZo1a4xu3boZ5cuXNzw9PY0mTZoYU6dOddyf8d56pby+h+ZkwYIFRoMGDQw3NzcjLCzMWLhwoTF48OBMYxfDMIzTp08b/fr1Mzw8PIyKFSsajzzyiPH3339nGQMNHjzY8PT0zPZau3fvNrp27Wp4eXkZVapUMYYNG2Zs3749z+fI7vGvW7fOCA8PN1xdXbOMRfLynp+TCxcuGCNHjjSCgoIMFxcXo06dOsZbb71l2Gy2qx6b0zgwt/GoYRjG1q1bjb59+xqVK1c23NzcjGrVqhkDBgwwVqxY4dgnu3FUTuOjf49lr3XMm9P4KKcx37X83ZHdv8EffvjBCAsLM5ydnbP8m7mW8bHIv1kMQx3NRERERERERESkeGk+g4iIiIiIiIiIFDslpUREREREREREpNgpKSUiIiIiIiIiIsVOSSkRERERERERESl2SkqJiIiIiIiIiEixU1JKRERERERERESKnbPZARQ3m83GyZMnKV++PBaLxexwREREpIQzDAMAb2/v63rsoDGUiIiI5JVhGFy4cIGgoCCs1pzroa67pNTJkycJDQ01OwwREREpZeLi4vD29jY7DNNoDCUiIiL5dfz4cUJCQnK8/7pLSpUvXx6wPzHX88BSRERE8iY+Pl7JGDSGEhERkbzLGD9ljB9yct0lpTLKzb29vTWgEhEREckjjaFEREQkv6425V+NzkVEREREREREpNgpKSUiIiIiIiIiIsVOSSkRERERERERESl2111PKRERkcJis9lISUkxOwy5Ri4uLjg5OZkdRpmRnp5Oamqq2WHINdBrQkREiouSUiIiIgWQkpLCkSNHsNlsZocihaBChQoEBARctRmn5MwwDKKjozl//rzZoUgh0GtCRESKg5JSIiIi+WQYBlFRUTg5OREaGorVqtnwpZVhGCQlJXHq1CkAAgMDTY6o9MpISPn5+eHh4aFkRiml14SIiBQnJaVERETyKS0tjaSkJIKCgvDw8DA7HLlG5cqVA+DUqVP4+flp2lIBpKenOxJSlStXNjscuUZ6TYiISHHRR7siIiL5lJ6eDoCrq6vJkUhhyUguqhdSwWQ8b0rSlh16TYiISHFQUkpERKSAND2p7NDvsnDoeSw79LsUEZHioKSUiIiIiIiIiIgUOyWlREREpEBWrVqFxWLRamsil+k1ISIikj9KSomIiFwHLBZLrl+vvPJKvs/Zrl07oqKi8PHxKfyAJVerV6+mV69eBAUFYbFYWLRo0VWPWbVqFS1atMDNzY3atWsza9asIo+zJNNrQkRExHxafU9EROQ6EBUV5bg9d+5cxo0bx759+xzbvLy8HLcNwyA9PR1n59yHCa6urgQEBBR+sHJViYmJNG3alAceeIC+fftedf8jR47Qs2dPHn30UWbPns2KFSt46KGHCAwMpHv37sUQccmj14SIiIj5VCklIiJyHQgICHB8+fj4YLFYHD/v3buX8uXL8/PPPxMeHo6bmxtr1qzBZrMxefJkatSoQbly5WjatCnz5893nPPfU5VmzZpFhQoV+OWXX2jQoAFeXl7ceuutmf74t9lsTJw4kZCQENzc3GjWrBnLli0r7qej1OvRowevvfYaffr0ydP+06dPp0aNGrzzzjs0aNCAESNG0L9/f957770ijrTk0mtCRETEfKqUKkQ2m8FfR2P5bU8Mo3s0wMmqVUtERK4HhmFwMTXdlGuXc3EqtFWyRo8ezdtvv03NmjWpWLEikydP5uuvv2b69OnUqVOH1atXc//99+Pr60unTp2yPUdSUhJvv/02X331FVarlfvvv59nn32W2bNnA/D+++/zzjvv8Mknn9C8eXNmzpxJ79692bVrF3Xq1CmUxyFZrV+/nq5du2ba1r17d55++ukiuZ5eE//Qa0JEpIBiD8PBFWZHUfY1vRvcypt2eSWlClGazeDhrzYT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7kyHqHTzNjwB7PZ+/oAiHodWmbfqJyUiIjIoKJQSERHxZwGBni17GcBptju1NZkrq04cguqDnpVWh8379eU92wJP18cKPFsD08yQKirVM9J631dwJX2htRGOrjfvj1A/KRERkcFAoZSIiMhAFhQKSePM8VktdWZI5Truabx+/KRm7MehvsyzNfCoOc7EHgSRKT1BVXSGZ9VVRs/9kKj++oQyUBxbDx0t5j8v8aOsrkZERES8QKGUiIjIYOWIPPO2QICONqgr67lSoLsY3CUn3ZaYz3e2mVsGXYWf87ucPQFVdIa5wioy2RwRntsQpxqyD2Zd/aRGzNE/ByIiIoOEQikRERE5vYCgk7YGnkFHm7kNsCuschV7mrAXeYKq49BUY/a1KndB+Z4zv1dgiCeoSoGIJM9tonk/Iqnnfng82AP6/vOKtQ6qn5SIiMhgo1BKREREvrqAILMhujP9zMe01JnhVFdQVVtkNmevKzNHfRk0u6C9+Yu3CgLY7GaD9pODqqyZcN4/9+UnE2+qOQrVB8AWAEMvsroaERER8RKFUiIiItK/HJGQONYcZ9LaaK646gqp6srM4Kq+0ny8vsK8bagEoxMaKsxR7nm9za5Qyp91rZLKyDW3cYqIiMigoFBKRERErBccBrFDzfF5Otqhsbp3UFVfDomnaeQu/mP4bPjav5u9xkRERGTQUCglIiIi/iMgECKTzCEDR+wwmHmX1VWIiIiIl9mtLkBERERERERERAYfhVIiIiIiIiIiIuJ1CqVERERERERERMTrFEqJiIiIiIiIiIjXKZQSERERERERERGvUyglIiIiIiIiIiJep1BKRERERERERES8TqGUiIiIiIiIiIh4nUIpERERERERERHxOoVSIiIiIiIiIiLidQqlRERERPzQ8uXLycrKIiQkhNzcXDZv3vy5x7/yyiuMGTOGkJAQJk6cyJtvvumlSkVEREROT6GUiIiIiJ95+eWXWbJkCUuXLmX79u1kZ2czd+5cKioqTnv8hg0buPHGG/nOd77DJ598wrx585g3bx579uzxcuUiIiIiPWyGYRhWF+FNbrcbp9OJy+UiKirK6nJERETEx/ni3CE3N5fzzz+fp556CoDOzk4yMjJYvHgx99133ynHz58/n4aGBt54443uxy644AImT57MihUrzup3+uL3ICIiIr7pbOcNWiklIiIi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g4uicRHxK9/+9rex2WynjMsvv9zq0kRERER8luZQIuKLAq0uQETky7r88st5/vnnez3mcDgsqkZERETEP2gOJSK+RiulRMTvOBwOkpOTe42YmBgAbDYbTz/9NFdccQWhoaEMGzaMP//5z71ev3v3bi699FJCQ0OJi4vj9ttvp76+vtcxzz33HOPHj8fhcJCSksKiRYu6n3vssceYOHEi4eHhZGRk8P3vf7/X648dO8bVV19NTEwM4eHhjB8/njfffLMfvxERERGRL6Y5lIj4GoVSIjLg/OxnP+O6665j586d3HTTTXzrW99i3759ADQ0NDB37lxiYmLYsmULr7zyCu+//36vCdPTTz/NwoULuf3229m9ezevv/46I0aM6H7ebrfzxBNPkJ+fz+9//3s++OADfvzjH3c/v3DhQlpaWvjwww/ZvXs3jzzyCBEREd77AkRERES+As2hRMTrDBERP7JgwQIjICDACA8P7zV+/vOfG4ZhGIBxxx139HpNbm6uceeddxqGYRjPPPOMERMTY9TX13c//49//MOw2+1GWVmZYRiGkZqaavz0pz8965peeeUVIy4urvvniRMnGg8++OBX/owiIiIifU1zKBHxReopJSJ+Z/bs2Tz99NO9HouNje2+P3369F7PTZ8+nR07dgCwb98+srOzCQ8P735+5syZdHZ2UlBQgM1mo6SkhDlz5pzx97///vssW7aM/fv343a7aW9vp7m5mcbGRsLCwvjBD37AnXfeybvvvkteXh7XXXcdkyZN6oNPLiIiIvLVaQ4lIr5G2/dExO+Eh4czYsSIXuPkCdW5CA0N/dznjx49yte//nUmTZrEX/7yF7Zt28by5csBaG1tBeC73/0uhw8f5uabb2b37t1MnTqVJ598sk/qExEREfmqNIcSEV+jUEpEBpxNmzad8vPYsWMBGDt2LDt37qShoaH7+fXr12O32xk9ejSRkZFkZWWxatWq0773tm3b6Ozs5Ne//jUXXHABo0aNoqSk5JTjMjIyuOOOO/jrX//KPffcw7PPPtuHn1BERESk72kOJSLepu17IuJ3WlpaKCsr6/VYYGAg8fHxALzyyitMnTqVCy+8kBdffJHNmzfzu9/9DoCbbrqJpUuXsmDBAh588EEqKytZvHgxN998M0lJSQA8+OCD3HHHHSQmJnLFFVdQV1fH+vXrWbx4MSNGjKCtrY0nn3ySq6++mvXr17NixYpetdx9991cccUVjBo1ipqaGlavXt09oRMRERGxiuZQIuJzrG5qJSLyZSxYsMAAThmjR482DMNs0rl8+XLja1/7muFwOIysrCzj5Zdf7vUeu3btMmbPnm2EhIQYsbGxxve+9z2jrq6u1zErVqwwRo8ebQQFBRkpKSnG4sWLu5977LHHjJSUFCM0NNSYO3eu8Yc//MEAjJqaGsMwDGPRokXG8OHDDYfDYSQkJBg333yzUVVV1b9fjIiIiMjn0BxKRHyRzTAMw4owTESkP9hsNl599VXmzZtndSkiIiIifkNzKBGxgnpKiYiIiIiIiIiI1ymUEhERERERERERr9P2PRERERERERER8TqtlBIREREREREREa9TKCUiIiIiIiIiIl6nUEpERERERERERLxOoZSIiIiIiIiIiHidQikREREREREREfE6hVIiIiIiIiIiIuJ1CqVERERERERERMTrFEqJiIiIiIiIiIjXKZQSERERERERERGv+/9wU1fRj/il/wAAAABJRU5ErkJggg==\n" - }, - "metadata": {} - } - ], - "source": [ - "#O modelo é treinado por 50 épocas com um batch_size de 32. O uso de validation_split permite monitorar o desempenho do modelo durante o treinamento.\n", - "#history = model.fit(X_train, y_train, epochs=50, batch_size=32, validation_split=0.2): O modelo é treinado por 50 épocas com validação. Essa configuração é padrão e bastante eficaz para evitar overfitting.\n", - "#Melhoria: Embora a divisão para validação (validation_split) seja útil, ao trabalhar com dados em que a validação cruzada é necessária, pode ser interessante usar KFold ou StratifiedKFold do scikit-learn.\n", - "\n", - "# Perdas e acurácia durante o treinamento\n", - "training_loss = history.history['loss']\n", - "validation_loss = history.history['val_loss']\n", - "training_accuracy = history.history['accuracy']\n", - "validation_accuracy = history.history['val_accuracy']\n", - "\n", - "#O código gera gráficos de perda e acurácia durante o treinamento.\n", - "#plt.subplot(1, 2, 1), plt.subplot(1, 2, 2): A utilização de subgráficos permite que as duas métricas (perda e acurácia) sejam visualizadas lado a lado, o que facilita a comparação e a análise.\n", - "#Melhoria: Seria interessante adicionar títulos mais específicos, como \"Perda de Treinamento e Validação\" ou \"Acurácia de Treinamento e Validação\", para tornar os gráficos ainda mais informativos.\n", - "\n", - "# Gráficos\n", - "plt.figure(figsize=(12, 5))\n", - "plt.subplot(1, 2, 1)\n", - "plt.plot(training_loss, label='Treino')\n", - "plt.plot(validation_loss, label='Validação')\n", - "plt.title('Perda durante o treinamento')\n", - "plt.xlabel('Épocas')\n", - "plt.ylabel('Perda')\n", - "plt.legend()\n", - "\n", - "plt.subplot(1, 2, 2)\n", - "plt.plot(training_accuracy, label='Treino')\n", - "plt.plot(validation_accuracy, label='Validação')\n", - "plt.title('Acurácia durante o treinamento')\n", - "plt.xlabel('Épocas')\n", - "plt.ylabel('Acurácia')\n", - "plt.legend()\n", - "\n", - "plt.tight_layout()\n", - "plt.show()\n", - "\n", - "#Após o treinamento, o modelo é avaliado no conjunto de teste, e as métricas de desempenho são calculadas.\n", - "#loss, accuracy = model.evaluate(X_test, y_test): O modelo é avaliado com base na perda e acurácia. Embora a acurácia seja importante, é bom observar que, dependendo da distribuição das classes, outras métricas também são essenciais para uma avaliação completa.\n", - "#Melhoria: Seria interessante calcular o precision, recall e f1-score no conjunto de teste para uma análise mais robusta.\n", - "#O modelo gera as métricas de precisão, recall, e F1-Score no conjunto de teste, refletindo o desempenho em termos de classes positivas e negativas.\n", - "#As métricas apresentadas no conjunto de teste indicam um ótimo desempenho, com F1-Score muito próximo da acurácia, o que sugere que o modelo está equilibrado em relação a precisão e recall.\n", - "#Melhoria: A análise das métricas de desempenho pode ser acompanhada de uma matriz de confusão para uma visualização mais clara dos falsos positivos e falsos negativos." - ] - }, - { - "cell_type": "markdown", - "id": "5e7b87be", - "metadata": { - "id": "5e7b87be" - }, - "source": [ - "\n", - "## Análise Crítica e Conclusão\n", - "\n", - "O modelo MLP apresentou boa performance no problema de classificação multiclasse, com métricas elevadas no conjunto de teste. Algumas melhorias que pensei em fazer para melhorá-lo:\n", - "- Realizar um ajuste fino dos hiperparâmetros usando técnicas como busca em grade.\n", - "- Testar arquiteturas alternativas, como redes mais profundas ou com regularização.\n", - "- Explorar técnicas de aumento de dados para evitar overfitting.\n", - "\n", - "\n" - ] - } - ], - "metadata": { - "colab": { - "provenance": [], - "include_colab_link": true - }, - "language_info": { - "name": "python" - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} \ No newline at end of file