From 56c00dd3f3d004b8cdf01c71be9aa3d8f6585c93 Mon Sep 17 00:00:00 2001 From: "Leandro A. Medeiros" Date: Tue, 26 Nov 2024 12:54:04 -0300 Subject: [PATCH] Delete Rede_Neural_Avaliacao.ipynb --- Rede_Neural_Avaliacao.ipynb | 525 ------------------------------------ 1 file changed, 525 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 74dc2fc..0000000 --- a/Rede_Neural_Avaliacao.ipynb +++ /dev/null @@ -1,525 +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": 54, - "id": "40696229", - "metadata": { - "id": "40696229" - }, - "outputs": [], - "source": [ - "#O classificador sobre flores é carregado diretamente da biblioteca sklearn. Ele é um conjunto de dados clássico em aprendizado de máquina que contém informações\n", - "#sobre três classes de flores (Iris-setosa, Iris-versicolor, Iris-virginica) com características como comprimento e largura das sépalas e pétalas.\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", - "# Importando bibliotecas necessárias\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" - ] - }, - { - "cell_type": "code", - "execution_count": 55, - "id": "73dd53b3", - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 1000 - }, - "id": "73dd53b3", - "outputId": "ebba37ec-52dd-4feb-d4b6-f0d8f1d6984a" - }, - "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": 56, - "id": "b53b2759", - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "b53b2759", - "outputId": "091ba38f-9bc0-4171-da93-b26c00c569d9" - }, - "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", - "\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", - "# Divisão dos Dados em Treinamento, Validação e Teste\n", - "#Após a normalização, os dados são divididos em três partes: treinamento, validação e teste.\n", - "#Primeira divisão (70% para Treinamento, 30% para Temporário):\n", - "#Aqui, 30% dos dados são reservados para os conjuntos temporários X_temp e y_temp (que incluirão os dados de validação e teste).\n", - "#70% dos dados são usados para o conjunto de treinamento (X_train, y_train), que será usado para treinar o modelo.\n", - "#Segunda divisão (50% dos dados temporários para Validação e 50% para Teste):\n", - "#X_temp e y_temp representam os dados restantes (30% do total).\n", - "#A divisão posterior separa esse conjunto em 50% para validação e 50% para teste, ou seja, 15% do total dos dados originais para validação e 15% para teste.\n", - "#X_val e y_val são usados para validação, enquanto X_test e y_test são usados para testar o modelo depois do treinamento.\n", - "#Divisão dos Dados: Após a normalização, os dados são divididos em três conjuntos:\n", - "#70% para treino: Usado para treinar o modelo.\n", - "#15% para validação: Usado para ajustar os parâmetros do modelo e monitorar o overfitting.\n", - "#15% para teste: Usado para avaliar a performance final do modelo em dados não vistos.\n", - "#Escolhi esse processo pois foi o mais satisfatório em termos de resultados visando garantir que o modelo seja bem treinado, validado e testado de maneira eficiente, sem usar os dados de teste durante o treinamento ou ajuste.\n", - "\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": 57, - "id": "0eb895b2", - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "0eb895b2", - "outputId": "cfc6e413-4caf-4abc-fc7b-814f485cc3e9" - }, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Epoch 1/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 39ms/step - accuracy: 0.2766 - loss: 1.1313 - val_accuracy: 0.2273 - val_loss: 1.1071\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.4300 - loss: 1.0671 - val_accuracy: 0.5455 - val_loss: 1.0304\n", - "Epoch 3/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.5151 - loss: 1.0118 - val_accuracy: 0.7273 - val_loss: 0.9627\n", - "Epoch 4/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 10ms/step - accuracy: 0.6453 - loss: 0.9549 - val_accuracy: 0.7727 - val_loss: 0.9003\n", - "Epoch 5/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 10ms/step - accuracy: 0.7397 - loss: 0.9182 - val_accuracy: 0.8182 - val_loss: 0.8412\n", - "Epoch 6/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.8178 - loss: 0.8526 - val_accuracy: 0.9091 - val_loss: 0.7823\n", - "Epoch 7/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.8318 - loss: 0.8015 - val_accuracy: 0.9091 - val_loss: 0.7207\n", - "Epoch 8/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.8392 - loss: 0.7571 - val_accuracy: 0.9091 - val_loss: 0.6587\n", - "Epoch 9/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 8ms/step - accuracy: 0.8166 - loss: 0.7175 - val_accuracy: 0.9091 - val_loss: 0.5987\n", - "Epoch 10/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 14ms/step - accuracy: 0.8472 - loss: 0.6566 - val_accuracy: 0.9091 - val_loss: 0.5396\n", - "Epoch 11/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 9ms/step - accuracy: 0.8731 - loss: 0.6026 - val_accuracy: 0.9091 - val_loss: 0.4835\n", - "Epoch 12/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 8ms/step - accuracy: 0.8542 - loss: 0.5546 - val_accuracy: 0.9545 - val_loss: 0.4318\n", - "Epoch 13/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 8ms/step - accuracy: 0.8305 - loss: 0.5495 - val_accuracy: 0.9545 - val_loss: 0.3877\n", - "Epoch 14/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 10ms/step - accuracy: 0.8314 - loss: 0.5168 - val_accuracy: 0.9545 - val_loss: 0.3499\n", - "Epoch 15/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.8344 - loss: 0.4726 - val_accuracy: 0.9545 - val_loss: 0.3169\n", - "Epoch 16/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 10ms/step - accuracy: 0.8593 - loss: 0.4371 - val_accuracy: 0.9545 - val_loss: 0.2890\n", - "Epoch 17/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step - accuracy: 0.8510 - loss: 0.4183 - val_accuracy: 0.9545 - val_loss: 0.2657\n", - "Epoch 18/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 10ms/step - accuracy: 0.8577 - loss: 0.4095 - val_accuracy: 0.9545 - val_loss: 0.2469\n", - "Epoch 19/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 8ms/step - accuracy: 0.8705 - loss: 0.4031 - val_accuracy: 0.9545 - val_loss: 0.2313\n", - "Epoch 20/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.8790 - loss: 0.3488 - val_accuracy: 0.9545 - val_loss: 0.2185\n", - "Epoch 21/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.8783 - loss: 0.3660 - val_accuracy: 0.9545 - val_loss: 0.2080\n", - "Epoch 22/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.9220 - loss: 0.3159 - val_accuracy: 0.9545 - val_loss: 0.1975\n", - "Epoch 23/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 12ms/step - accuracy: 0.8890 - loss: 0.3287 - val_accuracy: 0.9545 - val_loss: 0.1890\n", - "Epoch 24/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 15ms/step - accuracy: 0.9098 - loss: 0.3164 - val_accuracy: 0.9545 - val_loss: 0.1810\n", - "Epoch 25/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 8ms/step - accuracy: 0.8879 - loss: 0.3159 - val_accuracy: 0.9545 - val_loss: 0.1734\n", - "Epoch 26/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.8891 - loss: 0.2737 - val_accuracy: 0.9545 - val_loss: 0.1664\n", - "Epoch 27/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 8ms/step - accuracy: 0.8689 - loss: 0.3202 - val_accuracy: 0.9545 - val_loss: 0.1593\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.8848 - loss: 0.2891 - val_accuracy: 0.9545 - val_loss: 0.1528\n", - "Epoch 29/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 10ms/step - accuracy: 0.9035 - loss: 0.2786 - val_accuracy: 0.9545 - val_loss: 0.1468\n", - "Epoch 30/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 9ms/step - accuracy: 0.9509 - loss: 0.2158 - val_accuracy: 0.9545 - val_loss: 0.1412\n", - "Epoch 31/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 10ms/step - accuracy: 0.9068 - loss: 0.2769 - val_accuracy: 0.9545 - val_loss: 0.1357\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.9017 - loss: 0.2645 - val_accuracy: 0.9545 - val_loss: 0.1308\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.9188 - loss: 0.2577 - val_accuracy: 0.9545 - val_loss: 0.1259\n", - "Epoch 34/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9185 - loss: 0.2595 - val_accuracy: 0.9545 - val_loss: 0.1212\n", - "Epoch 35/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 8ms/step - accuracy: 0.9202 - loss: 0.2555 - val_accuracy: 0.9545 - val_loss: 0.1167\n", - "Epoch 36/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 8ms/step - accuracy: 0.9245 - loss: 0.2480 - val_accuracy: 0.9545 - val_loss: 0.1119\n", - "Epoch 37/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9177 - loss: 0.2568 - val_accuracy: 0.9545 - val_loss: 0.1074\n", - "Epoch 38/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9342 - loss: 0.2259 - val_accuracy: 0.9545 - val_loss: 0.1032\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.9288 - loss: 0.2303 - val_accuracy: 1.0000 - val_loss: 0.0991\n", - "Epoch 40/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 10ms/step - accuracy: 0.9525 - loss: 0.2153 - val_accuracy: 1.0000 - val_loss: 0.0953\n", - "Epoch 41/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 8ms/step - accuracy: 0.9427 - loss: 0.1916 - val_accuracy: 1.0000 - val_loss: 0.0916\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.9728 - loss: 0.1727 - val_accuracy: 1.0000 - val_loss: 0.0880\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.9558 - loss: 0.1790 - val_accuracy: 1.0000 - val_loss: 0.0848\n", - "Epoch 44/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 8ms/step - accuracy: 0.9437 - loss: 0.1760 - val_accuracy: 1.0000 - val_loss: 0.0819\n", - "Epoch 45/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 7ms/step - accuracy: 0.9502 - loss: 0.1785 - val_accuracy: 1.0000 - val_loss: 0.0789\n", - "Epoch 46/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 11ms/step - accuracy: 0.9161 - loss: 0.2040 - val_accuracy: 1.0000 - val_loss: 0.0764\n", - "Epoch 47/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 9ms/step - accuracy: 0.9650 - loss: 0.1712 - val_accuracy: 1.0000 - val_loss: 0.0736\n", - "Epoch 48/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 8ms/step - accuracy: 0.9280 - loss: 0.1859 - val_accuracy: 1.0000 - val_loss: 0.0707\n", - "Epoch 49/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 9ms/step - accuracy: 0.9556 - loss: 0.1380 - val_accuracy: 1.0000 - val_loss: 0.0682\n", - "Epoch 50/50\n", - "\u001b[1m7/7\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 10ms/step - accuracy: 0.9332 - loss: 0.1761 - val_accuracy: 1.0000 - val_loss: 0.0659\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", - "# Uso dos Hiperparâmetros\n", - "#Taxa de Aprendizado (learning_rate=0.001): Definindo o quanto a rede deve ajustar os pesos a cada iteração.\n", - "#Funções de Ativação (ReLU e Softmax): Garantem que a rede aprenda padrões complexos e forneça uma saída probabilística para classificação.\n", - "#Número de Épocas (epochs=50): Determina o número de vezes que o modelo passa por todo o conjunto de treinamento, controlando o risco de overfitting e underfitting.\n", - "#Tamanho do Lote (batch_size=16): Controla a quantidade de exemplos usados para cada atualização dos pesos, afetando a eficiência e a estabilidade do treinamento.\n", - "\n", - "# Definindo e compilando o modelo MLP\n", - "model = Sequential([\n", - " Input(shape=(X_train.shape[1],)), # Define a forma da entrada\n", - " Dense(32, activation='relu'),\n", - " Dense(16, activation='relu'),\n", - " Dense(3, activation='softmax') # Saída com 3 classes\n", - "])\n", - "optimizer = Adam(learning_rate=0.0001)\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": 58, - "id": "49f31d25", - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "49f31d25", - "outputId": "d26e4918-8359-429b-852a-00997f52e599" - }, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 68ms/step\n", - "Resultados no conjunto de teste:\n", - "Acurácia: 1.0000\n", - "Precisão: 1.0000\n", - "Recall: 1.0000\n", - "F1-Score: 1.0000\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", - "#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", - "#As métricas utilizadas para comparar o desempenho do modelo no conjunto de teste foram:\n", - "#Acurácia (Accuracy): Mede a proporção de previsões corretas no total de amostras. A acurácia obtida foi 1.0000, o que significa que o modelo acertou todas as previsões.\n", - "#Precisão (Precision): Mede a proporção de predições positivas corretas entre todas as predições positivas feitas pelo modelo. A precisão foi 1.0000, indicando que todas as previsões positivas feitas pelo modelo estavam corretas.\n", - "#Revocação (Recall): Mede a proporção de predições positivas corretas entre todas as amostras reais positivas. A revocação foi 1.0000, indicando que o modelo identificou corretamente todas as instâncias positivas.\n", - "#F1-Score: A média harmônica entre precisão e revocação, que oferece um equilíbrio entre essas duas métricas. O F1-Score foi 1.0000, indicando um equilíbrio perfeito entre precisão e revocação.\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": 59, - "id": "9aba9e97", - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 507 - }, - "id": "9aba9e97", - "outputId": "f64559a3-a4d0-4098-f4d5-fb233402a813" - }, - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ], - "image/png": "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v6mpiaioKJ566immTZt2Utfsit+DiIiIdE0n22/QSCkRERGRbqShoYH169eTmZnZus1ut5OZmcnq1atP6j1qampobGwkOjr6hMfU19fj8XjaNREREZGOpKSUiIiISDdSUlJCU1MTCQkJ7bYnJCRQUFBwUu/xq1/9iuTk5HaJra+bP38+bre7taWmpp5S3CIiIiJfp6SUiIiISA/ywAMPsHjxYt544w2CgoJOeNycOXOoqKhobbm5uT6MUkRERHqCAKsDEBEREZGTFxsbi8PhoLCwsN32wsJCEhMTv/HcRx55hAceeIDly5czatSobzzW5XLhcrlOOV4RERGRE9FIKREREZFuxOl0MnbsWLKyslq3eb1esrKymDhx4gnPe+ihh/j973/P0qVLGTdunC9CFREREflGGiklIiIi0s3Mnj2b6dOnM27cOCZMmMBjjz1GdXU1M2bMAGDatGmkpKQwf/58AB588EHmzp3LK6+8QlpaWmvtqbCwMMLCwiz7HCIiItKz9biklGEYAHqCjIiIiJyUrthnmDp1KsXFxcydO5eCggJGjx7N0qVLW4ufHzhwALu9bUD8008/TUNDAz/84Q/bvc+8efO49957T+qa6kOJiIjIyWrpL7T0H07EZnzbEX7m4MGDenqMiIiIfGcVFRVERERYHYZl1IcSERGR7yo3N5devXqdcH+PS0p5vV4OHTpEeHg4Nputw9/f4/GQmppKbm5uj+64Wk33wXq6B12D7kPXoPtgvVO5By1dpYiIiE7pO3QX6kP5P92DrkH3oWvQfbCe7kHX8H3vg2EYVFZWkpyc3G709tf1uOl7drv9G7N0HSUiIkL/cLoA3Qfr6R50DboPXYPug/V0D74/9aF6Dt2DrkH3oWvQfbCe7kHX8H3ug9vt/tZj9PQ9ERERERERERHxOSWlRERERERERETE55SU6mAul4t58+bhcrmsDqVH032wnu5B16D70DXoPlhP96Dr0z2ynu5B16D70DXoPlhP96Br6Oz70OMKnYuIiIiIiIiIiPU0UkpERERERERERHxOSSkREREREREREfE5JaVERERERERERMTnlJTqYAsWLCAtLY2goCAyMjJYu3at1SH5tY8//pjLL7+c5ORkbDYb//73v9vtNwyDuXPnkpSURHBwMJmZmezcudOaYP3U/PnzGT9+POHh4cTHxzNlyhRy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KSklIt3Wz372M2655Ra8Xq/VoYiIiIh0G+pDiUhXoaSUiHRLubm5DB48mGeeeQa7Xf8rExERETkZ6kOJSFdiMwzDsDoIERERERERERHpWZQaF5Fu5Sc/+Qk2m+2YdvHFF1sdmoiIiEiXpT6UiHRFAVYHICLyXV188cX89a9/bbfN5XJZFI2IiIhI96A+lIh0NRopJSLdjsvlIjExsV2LiooCwGaz8fTTT3PJJZcQHBxMv379+Oc//9nu/M2bN3P++ecTHBxMTEwMt9xyC1VVVe2Oef755xk+fDgul4ukpCRmzZrVuu/RRx9l5MiRhIaGkpqayu23397u/P3793P55ZcTFRVFaGgow4cP57333uvEb0RERETk26kPJSJdjZJSIuJ3fve733HNNdewceNGrr/+eq699lq2b98OQHV1NZMnTyYqKop169bx2muvsXz58nYdpqeffpqZM2dyyy23sHnzZt566y0GDBjQut9ut/PEE0+wdetWXnzxRT788EN++ctftu6fOXMm9fX1fPzxx2zevJkHH3yQsLAw330BIiIiIt+D+lAi4nOGiEg3Mn36dMPhcBihoaHt2h/+8AfDMAwDMG699dZ252RkZBi33XabYRiG8eyzzxpRUVFGVVVV6/53333XsNvtRkFBgWEYhpGcnGz85je/OemYXnvtNSMmJqb19ciRI4177733e39GERERkY6mPpSIdEWqKSUi3c6kSZN4+umn222Ljo5uXZ84cWK7fRMnTiQ7OxuA7du3k56eTmhoaOv+M888E6/XS05ODjabjUOHDnHBBRec8PrLly9n/vz57NixA4/Hw5EjR6irq6OmpoaQkBD+53/+h9tuu40PPviAzMxMrrnmGkaNGtUBn1xERETk+1MfSkS6Gk3fE5FuJzQ0lAEDBrRrR3eoTkVwcPA37t+3bx8/+MEPGDVqFP/6179Yv349CxYsAKChoQGAm266iT179nDDDTewefNmxo0bx5NPPtkh8YmIiIh8X+pDiUhXo6SUiPidNWvWHPN66NChAAwdOpSNGzdSXV3duv/TTz/FbrczePBgwsPDSUtLIysr67jvvX79erxeL3/60584/fTTGTRoEIcOHTrmuNTUVG699VZef/117rrrLhYtWtSBn1BERESk46kPJSK+pul7ItLt1NfXU1BQ0G5bQEAAsbGxALz22muMGzeOs846i7///e+sXbuW5557DoDrr7+eefPmMX36dO69916Ki4u54447uOGGG0hISADg3nvv5dZbbyU+Pp5LLrmEyspKPv30U+644w4GDBhAY2MjTz75JJdffjmffvopCxcubBfLnXfeySWXXMKgQYMoKyvjo48+au3QiYiIiFhFfSgR6XKsLmolIvJdTJ8+3QCOaYMHDzYMwyzSuWDBAuPCCy80XC6XkZaWZixZsqTde2zatMmYNGmSERQUZERHRxs333yzUVlZ2e6YhQsXGoMHDzYCAwONpKQk44477mjd9+ijjxpJSUlGcHCwMXnyZOOll14yAKOsrMwwDMOYNWuW0b9/f8PlchlxcXHGDTfcYJSUlHTuFyMiIiLyDdSHEpGuyGYYhmFFMkxEpDPYbDbeeOMNpkyZYnUoIiIiIt2G+lAiYgXVlBIREREREREREZ9TUkpERERERERERHxO0/dERERERERERMTnNFJKRERERERERER8TkkpERERERERERHxOSWlRERERERERETE55SUEhERERERERERn1NSSkREREREREREfE5JKRERERERERER8TklpURERERERERExOeUlBIREREREREREZ9TUkpERERERERERHzu/wMm9HSqHJWVyQAAAABJRU5ErkJggg==\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", - "#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", - "\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", - "#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", - "#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