{"id":428,"date":"2023-12-27T02:15:08","date_gmt":"2023-12-27T02:15:08","guid":{"rendered":"https:\/\/wordpress.ft.unicamp.br\/revisa\/?page_id=428"},"modified":"2025-10-29T18:04:18","modified_gmt":"2025-10-29T18:04:18","slug":"classificacao","status":"publish","type":"page","link":"https:\/\/wordpress.ft.unicamp.br\/revisa\/classificacao\/","title":{"rendered":"Classifica\u00e7\u00e3o"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"428\" class=\"elementor elementor-428\">\n\t\t\t\t<div class=\"elementor-element elementor-element-948a6dd e-flex e-con-boxed e-con e-parent\" data-id=\"948a6dd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-5a19eca e-flex e-con-boxed e-con e-child\" data-id=\"5a19eca\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d1f5642 elementor-widget elementor-widget-text-editor\" data-id=\"d1f5642\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\n<p class=\"has-medium-font-size\"><strong>O que \u00e9 uma \u00c1rvore de Decis\u00e3o? Qual a sua diferen\u00e7a em rela\u00e7\u00e3o \u00e0 Naive Bayes?<\/strong><\/p>\n\n<p style=\"font-size: 17px\">Se voc\u00ea j\u00e1 se aventurou no vasto campo da an\u00e1lise de dados e aprendizado de m\u00e1quina, provavelmente se deparou com o dilema crucial de escolher o melhor algoritmo para o seu projeto. Dois contendores frequentes nessa batalha s\u00e3o as \u00c1rvores de Decis\u00e3o e os Classificadores Naive Bayes. Ambos t\u00eam m\u00e9ritos distintos, mas discernir qual \u00e9 mais adequado para sua aplica\u00e7\u00e3o espec\u00edfica pode ser desafiador. Neste post, mergulharemos nas caracter\u00edsticas \u00fanicas de cada um, destacando suas vantagens, desvantagens e cen\u00e1rios ideais de uso. Vamos desvendar o mist\u00e9rio por tr\u00e1s da escolha entre \u00c1rvore de Decis\u00e3o e Naive Bayes, guiando-o pelo caminho da decis\u00e3o informada no mundo fascinante da an\u00e1lise preditiva.<\/p>\n\n<pre class=\"wp-block-code has-small-font-size\"><code># Importar bibliotecas\nimport pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\nfrom sklearn.datasets import load_iris\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.tree import DecisionTreeClassifier, plot_tree\nfrom sklearn.metrics import accuracy_score\n\n# Passo 1: Carregar e selecionar os dados\niris = load_iris()\ndata = pd.DataFrame(data= np.c_[iris['data'], iris['target']], columns= iris['feature_names'] + ['target'])\n\n# Passo 2: Dividir os dados em recursos (X) e r\u00f3tulos (y)\nX = data.drop('target', axis=1)\ny = data['target']\n\n# Passo 3: Dividir os dados em conjuntos de treinamento e teste\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n\n# Passo 4: Criar e treinar o modelo de \u00e1rvore de decis\u00e3o\nmodel = DecisionTreeClassifier(random_state=42)\nmodel.fit(X_train, y_train)\n\n# Passo 5: Plotar a \u00e1rvore de decis\u00e3o\nplt.figure(figsize=(12, 8))\nplot_tree(model, feature_names=iris.feature_names, class_names=iris.target_names, filled=True, rounded=True)\nplt.show()<\/code><\/pre>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img fetchpriority=\"high\" decoding=\"async\" width=\"950\" height=\"636\" class=\"wp-image-355\" style=\"width: 776px;height: auto\" src=\"https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/1.png\" alt=\"\" srcset=\"https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/1.png 950w, https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/1-300x201.png 300w, https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/1-768x514.png 768w\" sizes=\"(max-width: 950px) 100vw, 950px\" \/><\/figure>\n<\/div>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-9\" src=\"http:\/\/localhost\/wordpress\/wp-content\/uploads\/2023\/11\/image-1.png\" alt=\"\" \/><\/figure>\n\n<pre class=\"wp-block-code has-small-font-size\"><code># Passo 6: Fazer previs\u00f5es no conjunto de teste\ny_pred = model.predict(X_test)\n\n# Passo 7: Calcular a acur\u00e1cia do modelo\naccuracy = accuracy_score(y_test, y_pred)\nprint(f'Acur\u00e1cia: {accuracy:.2f}')\n\n# Passo 8: Plotar gr\u00e1fico com os tipos de flor com base nos crit\u00e9rios\nplt.figure(figsize=(10, 6))\nfor i, feature in enumerate(iris.feature_names):\n    plt.subplot(2, 2, i+1)\n    for target in iris.target_names:\n        subset = data[data['target'] == iris.target_names.tolist().index(target)]\n        plt.hist(subset[feature], bins=10, label=target, alpha=0.7)\n    plt.xlabel(feature)\n    plt.legend()\nplt.tight_layout()\nplt.show()<\/code><\/pre>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" width=\"989\" height=\"589\" class=\"wp-image-356\" style=\"width: 756px;height: auto\" src=\"https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/2.png\" alt=\"\" srcset=\"https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/2.png 989w, https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/2-300x179.png 300w, https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/2-768x457.png 768w\" sizes=\"(max-width: 989px) 100vw, 989px\" \/><\/figure>\n<\/div>\n<p style=\"font-size: 17px\">O gr\u00e1fico gerado pelo c\u00f3digo mostra quatro subgr\u00e1ficos, cada um representando a distribui\u00e7\u00e3o de uma caracter\u00edstica (Comprimento da s\u00e9pala, Largura da s\u00e9pala, Comprimento da p\u00e9tala, Largura da p\u00e9tala) para cada uma das tr\u00eas classes de flores no conjunto de dados Iris (Setosa, Versicolor, Virginica).<br \/>Comprimento da S\u00e9pala (Subgr\u00e1fico Superior Esquerdo):<br \/><br \/>O eixo x representa os valores de comprimento da s\u00e9pala. Cada classe (Setosa, Versicolor, Virginica) tem sua pr\u00f3pria distribui\u00e7\u00e3o, mostrada por diferentes cores ou padr\u00f5es no histograma. A sobreposi\u00e7\u00e3o entre as distribui\u00e7\u00f5es indica como as classes podem se sobrepor nessa caracter\u00edstica. Largura da S\u00e9pala (Subgr\u00e1fico Superior Direito):<br \/>Semelhante ao primeiro subgr\u00e1fico, mas para a largura da s\u00e9pala. Comprimento da P\u00e9tala (Subgr\u00e1fico Inferior Esquerdo):<br \/>Exibe as distribui\u00e7\u00f5es para o comprimento da p\u00e9tala. Largura da P\u00e9tala (Subgr\u00e1fico Inferior Direito):<br \/>Mostra as distribui\u00e7\u00f5es para a largura da p\u00e9tala.<br \/><br \/>Interpreta\u00e7\u00e3o Geral:<br \/>A sobreposi\u00e7\u00e3o ou separa\u00e7\u00e3o clara entre as classes em cada subgr\u00e1fico indica qu\u00e3o bem uma caracter\u00edstica espec\u00edfica pode discriminar entre as diferentes classes. Se as distribui\u00e7\u00f5es para uma caracter\u00edstica e classe espec\u00edfica s\u00e3o distintas, essa caracter\u00edstica \u00e9 potencialmente \u00fatil para classifica\u00e7\u00e3o. Se houver sobreposi\u00e7\u00e3o significativa, pode indicar que essa caracter\u00edstica pode n\u00e3o ser t\u00e3o discriminativa para aquela classe espec\u00edfica. Exemplo:<br \/>Se, por exemplo, no subgr\u00e1fico de Comprimento da S\u00e9pala, a distribui\u00e7\u00e3o da classe Setosa estiver claramente separada das distribui\u00e7\u00f5es das outras classes, isso sugere que o comprimento da s\u00e9pala \u00e9 uma caracter\u00edstica forte para distinguir a classe Setosa. Em resumo, a interpreta\u00e7\u00e3o desses gr\u00e1ficos ajuda a entender como as diferentes classes se comportam em rela\u00e7\u00e3o a cada caracter\u00edstica, fornecendo insights valiosos sobre a relev\u00e2ncia discriminativa de cada caracter\u00edstica no processo de classifica\u00e7\u00e3o.<\/p>\n\n<pre class=\"wp-block-code has-small-font-size\"><code># Criar uma lista para armazenar as acur\u00e1cias\naccuracies = []\n\n# Testar diferentes n\u00fameros de \u00e1rvores de decis\u00e3o\nfor n_trees in range(1, 21):\n    # Criar e treinar o modelo de \u00e1rvore de decis\u00e3o\n    model = DecisionTreeClassifier(random_state=42, max_depth=n_trees)\n    model.fit(X_train, y_train)\n\n    # Fazer previs\u00f5es no conjunto de teste\n    y_pred = model.predict(X_test)\n\n    # Calcular a acur\u00e1cia do modelo\n    accuracy = accuracy_score(y_test, y_pred)\n    accuracies.append(accuracy)\n\n# Plotar o gr\u00e1fico de acur\u00e1cia em rela\u00e7\u00e3o ao n\u00famero de \u00e1rvores de decis\u00e3o\nplt.figure(figsize=(10, 6))\nplt.plot(range(1, 21), accuracies, marker='o', linestyle='-', color='b')\nplt.title('Acur\u00e1cia do Modelo em Rela\u00e7\u00e3o ao N\u00famero de \u00c1rvores de Decis\u00e3o')\nplt.xlabel('N\u00famero de \u00c1rvores de Decis\u00e3o')\nplt.ylabel('Acur\u00e1cia')\nplt.grid(True)\nplt.show()<\/code><\/pre>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" width=\"855\" height=\"550\" class=\"wp-image-359\" style=\"width: 576px;height: auto\" src=\"https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/3.png\" alt=\"\" srcset=\"https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/3.png 855w, https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/3-300x193.png 300w, https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/3-768x494.png 768w\" sizes=\"(max-width: 855px) 100vw, 855px\" \/><\/figure>\n<\/div>\n<p style=\"font-size: 17px\">Pensando em uma \u00e1rvore de forma literal, ela \u00e9 composta por galhos e folhas. Se tratando de algoritmos, cada galho \u00e9 uma pergunta e cada folha \u00e9 uma resposta. Nesse contexto, a \u00e1rvore de decis\u00e3o divide os dados em diferentes grupos com base em caracter\u00edsticas espec\u00edficas. Essa ramifica\u00e7\u00e3o \u00e9 realizada por meio de uma s\u00e9rie de perguntas sequenciais, as quais filtram os dados progressivamente at\u00e9 alcan\u00e7ar uma conclus\u00e3o. O processo de tomada de decis\u00e3o se desenrola de forma hier\u00e1rquica, onde cada pergunta subsequente visa refinar e direcionar os dados para segmentos mais espec\u00edficos.<\/p>\n\n<p style=\"font-size: 17px\">Por outro lado, o algoritmo Naive Bayes \u00e9 fundamentado em um princ\u00edpio estat\u00edstico. Sua abordagem se baseia na avalia\u00e7\u00e3o de probabilidades para prever a ocorr\u00eancia de eventos futuros, utilizando como base as probabilidades de eventos anteriores. Este algoritmo opera sob a suposi\u00e7\u00e3o de independ\u00eancia entre os eventos, ou seja, considera que cada evento \u00e9 independente dos demais, dado o resultado a ser previsto.<\/p>\n\n<p style=\"font-size: 17px\">Partindo para a pr\u00e1tica, \u00e9 poss\u00edvel compreender que, ao treinar sua floresta de \u00e1rvores de decis\u00e3o com um n\u00famero relativamente baixo, como 2,5 \u00e1rvores, a acur\u00e1cia do modelo pode atingir 1. Isso sugere que o modelo est\u00e1 se ajustando excessivamente aos dados de treinamento, memorizando padr\u00f5es espec\u00edficos em vez de generalizar para novos dados. \u00c9 fundamental avaliar o desempenho do modelo em conjuntos de teste independentes para garantir uma boa generaliza\u00e7\u00e3o e evitar overfitting.<\/p>\n\n<pre class=\"wp-block-code has-small-font-size\"><code>from sklearn.naive_bayes import GaussianNB\nfrom sklearn.tree import DecisionTreeClassifier\nfrom sklearn.metrics import accuracy_score\nimport matplotlib.pyplot as plt\n\n\nnb_model = GaussianNB()\ndt_model = DecisionTreeClassifier(random_state=42)\n\n# Treinar os modelos\nnb_model.fit(X_train, y_train)\ndt_model.fit(X_train, y_train)\n\n# Fazer previs\u00f5es nos conjuntos de teste\ny_pred_nb = nb_model.predict(X_test)\ny_pred_dt = dt_model.predict(X_test)\n\n# Calcular acur\u00e1cias\naccuracy_nb = accuracy_score(y_test, y_pred_nb)\naccuracy_dt = accuracy_score(y_test, y_pred_dt)\n\n# Plotar o gr\u00e1fico comparativo de acur\u00e1cia\nlabels = ['Naive Bayes', 'Decision Tree']\naccuracies = [accuracy_nb, accuracy_dt]\n\nplt.bar(labels, accuracies, color=['blue', 'green'])\nplt.ylim(0.0, 1.0)  # Ajuste o limite do eixo y de 0 a 1 para representar a porcentagem\nplt.ylabel('Acur\u00e1cia')\nplt.title('Compara\u00e7\u00e3o de Acur\u00e1cia entre Naive Bayes e \u00c1rvore de Decis\u00e3o')\nplt.show()\n<\/code><\/pre>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"588\" height=\"438\" class=\"wp-image-360\" style=\"width: 543px;height: auto\" src=\"https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/4-1.png\" alt=\"\" srcset=\"https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/4-1.png 588w, https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/4-1-300x223.png 300w\" sizes=\"(max-width: 588px) 100vw, 588px\" \/><\/figure>\n<\/div>\n<p style=\"font-size: 17px\">No \u00e2mbito desta an\u00e1lise comparativa entre os modelos de classifica\u00e7\u00e3o Naive Bayes e \u00c1rvore de Decis\u00e3o, os resultados obtidos sugerem uma equival\u00eancia not\u00e1vel em termos de acur\u00e1cia. A acur\u00e1cia, embora uma m\u00e9trica comum, pode n\u00e3o ser suficiente para uma avalia\u00e7\u00e3o abrangente do desempenho, especialmente em casos de desbalanceamento de classes.<\/p>\n\n<pre class=\"wp-block-code\" style=\"font-size: 13px\"><code>from sklearn.model_selection import cross_val_score\n\n# Criar uma lista para armazenar as acur\u00e1cias\naccuracies = []\n\n# Testar diferentes n\u00fameros de \u00e1rvores de decis\u00e3o\nfor n_trees in range(1, 21):\n    # Criar e treinar o modelo de \u00e1rvore de decis\u00e3o\n    model = DecisionTreeClassifier(random_state=42, max_depth=n_trees)\n\n    # Realizar valida\u00e7\u00e3o cruzada\n    cv_scores = cross_val_score(model, X_train, y_train, cv=5)  # 5-fold cross-validation\n    mean_accuracy = np.mean(cv_scores)\n    accuracies.append(mean_accuracy)\n\n# Plotar o gr\u00e1fico de acur\u00e1cia em rela\u00e7\u00e3o ao n\u00famero de \u00e1rvores de decis\u00e3o\nplt.figure(figsize=(10, 6))\nplt.errorbar(range(1, 21), accuracies, marker='o', linestyle='-', color='b', yerr=np.std(cv_scores), label='Acur\u00e1cia m\u00e9dia \u00b1 Desvio Padr\u00e3o')\nplt.title('Acur\u00e1cia M\u00e9dia do Modelo com Valida\u00e7\u00e3o Cruzada em Rela\u00e7\u00e3o ao N\u00famero de \u00c1rvores de Decis\u00e3o')\nplt.xlabel('N\u00famero de \u00c1rvores de Decis\u00e3o')\nplt.ylabel('Acur\u00e1cia M\u00e9dia')\nplt.legend()\nplt.grid(True)\nplt.show(<\/code><\/pre>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"871\" height=\"550\" class=\"wp-image-364\" style=\"width: 662px;height: auto\" src=\"https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/5-1.png\" alt=\"\" srcset=\"https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/5-1.png 871w, https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/5-1-300x189.png 300w, https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/5-1-768x485.png 768w\" sizes=\"(max-width: 871px) 100vw, 871px\" \/><\/figure>\n<\/div>\n<p style=\"font-size: 17px\">A valida\u00e7\u00e3o cruzada, que consiste em dividir o conjunto de treinamento em subconjuntos para treinamento e teste em v\u00e1rias itera\u00e7\u00f5es, proporcionou uma vis\u00e3o mais abrangente do desempenho do modelo de \u00c1rvore de Decis\u00e3o. A acur\u00e1cia m\u00e9dia, exibida graficamente em rela\u00e7\u00e3o ao n\u00famero de \u00e1rvores, atingiu seu ponto m\u00e1ximo em aproximadamente 0.95 a partir de 6 \u00e1rvores. Esse comportamento sugere que, ao adicionar mais \u00e1rvores, o modelo inicialmente melhora, mas atinge um ponto de satura\u00e7\u00e3o onde a complexidade adicional n\u00e3o resulta em ganhos significativos de desempenho.<\/p>\n\n<pre class=\"wp-block-code\"><code>from sklearn.metrics import precision_score\n\n# Calcular a precis\u00e3o para Naive Bayes\nprecision_nb = precision_score(y_test, y_pred_nb, average='weighted')\n\n# Calcular a precis\u00e3o para \u00c1rvore de Decis\u00e3o\nprecision_dt = precision_score(y_test, y_pred_dt, average='weighted')\n\n# Exibir os resultados\nprint(f'Precis\u00e3o (Naive Bayes): {precision_nb:.4f}')\nprint(f'Precis\u00e3o (\u00c1rvore de Decis\u00e3o): {precision_dt:.4f}')\n\nPrecis\u00e3o (Naive Bayes): 1.0000\nPrecis\u00e3o (\u00c1rvore de Decis\u00e3o): 1.0000<\/code><\/pre>\n\n<pre class=\"wp-block-code\"><code>from sklearn.metrics import recall_score\n\n# Calcular a revoca\u00e7\u00e3o para Naive Bayes\nrecall_nb = recall_score(y_test, y_pred_nb, average='weighted')\n\n# Calcular a revoca\u00e7\u00e3o para \u00c1rvore de Decis\u00e3o\nrecall_dt = recall_score(y_test, y_pred_dt, average='weighted')\n\n# Exibir os resultados\nprint(f'Revoca\u00e7\u00e3o (Naive Bayes): {recall_nb:.4f}')\nprint(f'Revoca\u00e7\u00e3o (\u00c1rvore de Decis\u00e3o): {recall_dt:.4f}')<\/code><\/pre>\n\n<p style=\"font-size: 17px\">Neste contexto, outras m\u00e9tricas foram consideradas para enriquecer a an\u00e1lise. A precis\u00e3o e a revoca\u00e7\u00e3o foram calculadas para cada modelo, proporcionando uma vis\u00e3o mais aprofundada das capacidades de discrimina\u00e7\u00e3o e identifica\u00e7\u00e3o de inst\u00e2ncias positivas. A precis\u00e3o destaca a propor\u00e7\u00e3o de verdadeiros positivos em rela\u00e7\u00e3o a todos os exemplos classificados como positivos, enquanto a revoca\u00e7\u00e3o representa a propor\u00e7\u00e3o de verdadeiros positivos em rela\u00e7\u00e3o a todos os exemplos verdadeiramente positivos.<\/p>\n\n<p style=\"font-size: 17px\">Ao analisar os resultados obtidos atrav\u00e9s dos diferentes m\u00e9todos de avalia\u00e7\u00e3o, observamos que a acur\u00e1cia para ambos os modelos, Naive Bayes e \u00c1rvore de Decis\u00e3o, atingiu o valor m\u00e1ximo de 1.0 nos conjuntos de teste. Essa elevada precis\u00e3o inicial pode levantar suspeitas de overfitting, especialmente ao considerar a complexidade dos modelos e a possibilidade de memoriza\u00e7\u00e3o dos dados de treinamento.<\/p>\n\n<p style=\"font-size: 17px\">A avalia\u00e7\u00e3o da precis\u00e3o, uma m\u00e9trica que leva em conta tanto os verdadeiros positivos quanto os falsos positivos e negativos, tamb\u00e9m revelou valores perfeitos de 1.0 para ambas as abordagens. Embora esses resultados possam inicialmente sugerir um desempenho excepcional, \u00e9 crucial interpret\u00e1-los com cautela, especialmente quando se trata de generaliza\u00e7\u00e3o para dados n\u00e3o vistos.<\/p>\n\n<p style=\"font-size: 17px\">Portanto, diante desses resultados, \u00e9 recomend\u00e1vel considerar uma an\u00e1lise mais aprofundada, explorando poss\u00edveis ajustes nos par\u00e2metros dos modelos ou considerando outras m\u00e9tricas de avalia\u00e7\u00e3o, al\u00e9m de verificar a capacidade de generaliza\u00e7\u00e3o em conjuntos de teste independentes. Este processo visa garantir robustez e confiabilidade na aplica\u00e7\u00e3o dos modelos em cen\u00e1rios do mundo real.<\/p>\n\n<pre class=\"wp-block-code\"><code>import matplotlib.pyplot as plt\nimport time\nfrom sklearn.datasets import load_iris\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.naive_bayes import GaussianNB\nfrom sklearn.tree import DecisionTreeClassifier\n\n# Carregar conjunto de dados Iris\niris = load_iris()\nX = iris.data\ny = iris.target\n\n# Dividir os dados em conjunto de treinamento e teste\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n\n# Inicializar os modelos\nnb_model = GaussianNB()\ndt_model = DecisionTreeClassifier(random_state=42)\n\n# Medir o tempo de processamento para o Naive Bayes\nstart_time_nb = time.time()\nnb_model.fit(X_train, y_train)\nend_time_nb = time.time()\ntime_nb = end_time_nb - start_time_nb\n\n# Medir o tempo de processamento para a \u00e1rvore de decis\u00e3o\nstart_time_dt = time.time()\ndt_model.fit(X_train, y_train)\nend_time_dt = time.time()\ntime_dt = end_time_dt - start_time_dt\n\n# Plotar o gr\u00e1fico comparativo de tempo de processamento\nlabels = ['Naive Bayes', 'Decision Tree']\ntimes = [time_nb, time_dt]\n\nplt.bar(labels, times, color=['blue', 'green'])\nplt.ylabel('Tempo de Processamento (s)')\nplt.title('Compara\u00e7\u00e3o de Tempo de Processamento entre Naive Bayes e \u00c1rvore de Decis\u00e3o')\nplt.show()<\/code><\/pre>\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-42\" src=\"http:\/\/localhost\/wordpress\/wp-content\/uploads\/2023\/11\/image-10.png\" alt=\"\" \/><\/figure>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"699\" height=\"438\" class=\"wp-image-363\" style=\"width: 547px;height: auto\" src=\"https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/6-2.png\" alt=\"\" srcset=\"https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/6-2.png 699w, https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/6-2-300x188.png 300w\" sizes=\"(max-width: 699px) 100vw, 699px\" \/><\/figure>\n<\/div>\n<p style=\"font-size: 17px\">A an\u00e1lise comparativa do tempo de processamento entre o modelo Naive Bayes e a \u00c1rvore de Decis\u00e3o revela resultados interessantes. Ao examinar o gr\u00e1fico, observamos que o tempo de processamento para a \u00c1rvore de Decis\u00e3o \u00e9 ligeiramente superior ao do Naive Bayes, embora ambos estejam na ordem de magnitude de 0.00175 segundos.<\/p>\n\n<p style=\"font-size: 17px\">Este pequeno diferencial pode ser atribu\u00eddo \u00e0s caracter\u00edsticas intr\u00ednsecas dos algoritmos. O Naive Bayes \u00e9 conhecido por sua efici\u00eancia computacional, especialmente em conjuntos de dados menores, devido \u00e0 sua abordagem probabil\u00edstica simples. Por outro lado, a \u00c1rvore de Decis\u00e3o, ao envolver a constru\u00e7\u00e3o de uma estrutura hier\u00e1rquica de decis\u00f5es, pode demandar um pouco mais de tempo computacional.<\/p>\n\n<p style=\"font-size: 17px\">\u00c9 essencial notar que, apesar da diferen\u00e7a observada, ambos os tempos de processamento s\u00e3o extremamente baixos, indicando que tanto o Naive Bayes quanto a \u00c1rvore de Decis\u00e3o s\u00e3o algoritmos eficientes para o conjunto de dados Iris utilizado. A escolha entre esses modelos pode depender n\u00e3o apenas do tempo de processamento, mas tamb\u00e9m de outros fatores, como interpretabilidade do modelo, desempenho em diferentes tipos de dados e a natureza espec\u00edfica do problema em quest\u00e3o.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>O que \u00e9 uma \u00c1rvore de Decis\u00e3o? Qual a sua diferen\u00e7a em rela\u00e7\u00e3o \u00e0 Naive Bayes? Se voc\u00ea j\u00e1 se aventurou no vasto campo da [&hellip;]<\/p>\n","protected":false},"author":112,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-428","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Classifica\u00e7\u00e3o - REVISA<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wordpress.ft.unicamp.br\/revisa\/classificacao\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Classifica\u00e7\u00e3o - REVISA\" \/>\n<meta property=\"og:description\" content=\"O que \u00e9 uma \u00c1rvore de Decis\u00e3o? Qual a sua diferen\u00e7a em rela\u00e7\u00e3o \u00e0 Naive Bayes? Se voc\u00ea j\u00e1 se aventurou no vasto campo da [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wordpress.ft.unicamp.br\/revisa\/classificacao\/\" \/>\n<meta property=\"og:site_name\" content=\"REVISA\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-29T18:04:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"950\" \/>\n\t<meta property=\"og:image:height\" content=\"636\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data1\" content=\"9 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/revisa\\\/classificacao\\\/\",\"url\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/revisa\\\/classificacao\\\/\",\"name\":\"Classifica\u00e7\u00e3o - REVISA\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/revisa\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/revisa\\\/classificacao\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/revisa\\\/classificacao\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/revisa\\\/wp-content\\\/uploads\\\/sites\\\/86\\\/2023\\\/12\\\/1.png\",\"datePublished\":\"2023-12-27T02:15:08+00:00\",\"dateModified\":\"2025-10-29T18:04:18+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/revisa\\\/classificacao\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/revisa\\\/classificacao\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/revisa\\\/classificacao\\\/#primaryimage\",\"url\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/revisa\\\/wp-content\\\/uploads\\\/sites\\\/86\\\/2023\\\/12\\\/1.png\",\"contentUrl\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/revisa\\\/wp-content\\\/uploads\\\/sites\\\/86\\\/2023\\\/12\\\/1.png\",\"width\":950,\"height\":636},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/revisa\\\/classificacao\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/revisa\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Classifica\u00e7\u00e3o\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/revisa\\\/#website\",\"url\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/revisa\\\/\",\"name\":\"REVISA\",\"description\":\"A REvista VIrtual de Sistemas de Apoio a decis\u00e3o \u00e9 escrita por alunos de Sistemas de Apoio \u00e0 Decis\u00e3o da FT\\\/UNICAMP e estende a excel\u00eancia da gradua\u00e7\u00e3o para toda comunidade.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/revisa\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Classifica\u00e7\u00e3o - REVISA","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wordpress.ft.unicamp.br\/revisa\/classificacao\/","og_locale":"pt_BR","og_type":"article","og_title":"Classifica\u00e7\u00e3o - REVISA","og_description":"O que \u00e9 uma \u00c1rvore de Decis\u00e3o? Qual a sua diferen\u00e7a em rela\u00e7\u00e3o \u00e0 Naive Bayes? Se voc\u00ea j\u00e1 se aventurou no vasto campo da [&hellip;]","og_url":"https:\/\/wordpress.ft.unicamp.br\/revisa\/classificacao\/","og_site_name":"REVISA","article_modified_time":"2025-10-29T18:04:18+00:00","og_image":[{"width":950,"height":636,"url":"https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/1.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. tempo de leitura":"9 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/wordpress.ft.unicamp.br\/revisa\/classificacao\/","url":"https:\/\/wordpress.ft.unicamp.br\/revisa\/classificacao\/","name":"Classifica\u00e7\u00e3o - REVISA","isPartOf":{"@id":"https:\/\/wordpress.ft.unicamp.br\/revisa\/#website"},"primaryImageOfPage":{"@id":"https:\/\/wordpress.ft.unicamp.br\/revisa\/classificacao\/#primaryimage"},"image":{"@id":"https:\/\/wordpress.ft.unicamp.br\/revisa\/classificacao\/#primaryimage"},"thumbnailUrl":"https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/1.png","datePublished":"2023-12-27T02:15:08+00:00","dateModified":"2025-10-29T18:04:18+00:00","breadcrumb":{"@id":"https:\/\/wordpress.ft.unicamp.br\/revisa\/classificacao\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wordpress.ft.unicamp.br\/revisa\/classificacao\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/wordpress.ft.unicamp.br\/revisa\/classificacao\/#primaryimage","url":"https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/1.png","contentUrl":"https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-content\/uploads\/sites\/86\/2023\/12\/1.png","width":950,"height":636},{"@type":"BreadcrumbList","@id":"https:\/\/wordpress.ft.unicamp.br\/revisa\/classificacao\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wordpress.ft.unicamp.br\/revisa\/"},{"@type":"ListItem","position":2,"name":"Classifica\u00e7\u00e3o"}]},{"@type":"WebSite","@id":"https:\/\/wordpress.ft.unicamp.br\/revisa\/#website","url":"https:\/\/wordpress.ft.unicamp.br\/revisa\/","name":"REVISA","description":"A REvista VIrtual de Sistemas de Apoio a decis\u00e3o \u00e9 escrita por alunos de Sistemas de Apoio \u00e0 Decis\u00e3o da FT\/UNICAMP e estende a excel\u00eancia da gradua\u00e7\u00e3o para toda comunidade.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wordpress.ft.unicamp.br\/revisa\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"}]}},"_links":{"self":[{"href":"https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-json\/wp\/v2\/pages\/428","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-json\/wp\/v2\/users\/112"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-json\/wp\/v2\/comments?post=428"}],"version-history":[{"count":11,"href":"https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-json\/wp\/v2\/pages\/428\/revisions"}],"predecessor-version":[{"id":703,"href":"https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-json\/wp\/v2\/pages\/428\/revisions\/703"}],"wp:attachment":[{"href":"https:\/\/wordpress.ft.unicamp.br\/revisa\/wp-json\/wp\/v2\/media?parent=428"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}