{"id":1167,"date":"2023-07-27T10:29:04","date_gmt":"2023-07-27T10:29:04","guid":{"rendered":"https:\/\/statorials.org\/pt\/analise-discriminante-quadratica-em-python\/"},"modified":"2023-07-27T10:29:04","modified_gmt":"2023-07-27T10:29:04","slug":"analise-discriminante-quadratica-em-python","status":"publish","type":"post","link":"https:\/\/statorials.org\/pt\/analise-discriminante-quadratica-em-python\/","title":{"rendered":"An\u00e1lise discriminante quadr\u00e1tica em python (passo a passo)"},"content":{"rendered":"<p><\/p>\n<hr>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/statorials.org\/pt\/analise-discriminante-quadratica\/\" target=\"_blank\" rel=\"noopener noreferrer\">A an\u00e1lise discriminante quadr\u00e1tica<\/a> \u00e9 um m\u00e9todo que voc\u00ea pode usar quando possui um conjunto de vari\u00e1veis preditoras e deseja classificar uma <a href=\"https:\/\/statorials.org\/pt\/respostas-explicativas-das-variaveis\/\" target=\"_blank\" rel=\"noopener noreferrer\">vari\u00e1vel de resposta<\/a> em duas ou mais classes.<\/span><\/p>\n<p> <span style=\"color: #000000;\">\u00c9 considerado o equivalente n\u00e3o linear da <a href=\"https:\/\/statorials.org\/pt\/analise-discriminante-linear-em-python\/\" target=\"_blank\" rel=\"noopener noreferrer\">an\u00e1lise discriminante linear<\/a> .<\/span><\/p>\n<p> <span style=\"color: #000000;\">Este tutorial fornece um exemplo passo a passo de como realizar an\u00e1lise discriminante quadr\u00e1tica em Python.<\/span><\/p>\n<h3> <span style=\"color: #000000;\"><strong>Etapa 1: carregue as bibliotecas necess\u00e1rias<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Primeiro, carregaremos as fun\u00e7\u00f5es e bibliotecas necess\u00e1rias para este exemplo:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <span style=\"color: #000000;\"><b><span style=\"color: #008000;\">from<\/span> sklearn. <span style=\"color: #3366ff;\">model_selection<\/span> <span style=\"color: #008000;\">import<\/span> train_test_split\n<span style=\"color: #008000;\">from<\/span> sklearn. <span style=\"color: #3366ff;\">model_selection<\/span> <span style=\"color: #008000;\">import<\/span> RepeatedStratifiedKFold\n<span style=\"color: #008000;\">from<\/span> sklearn. <span style=\"color: #3366ff;\">model_selection<\/span> <span style=\"color: #008000;\">import<\/span> cross_val_score\n<span style=\"color: #008000;\">from<\/span> sklearn. <span style=\"color: #3366ff;\">discriminant_analysis<\/span> <span style=\"color: #008000;\">import<\/span> QuadraticDiscriminantAnalysis \n<span style=\"color: #008000;\">from<\/span> sklearn <span style=\"color: #008000;\">import<\/span> datasets\n<span style=\"color: #008000;\">import<\/span> matplotlib. <span style=\"color: #3366ff;\">pyplot<\/span> <span style=\"color: #008000;\">as<\/span> plt\n<span style=\"color: #008000;\">import<\/span> pandas <span style=\"color: #008000;\">as<\/span> pd\n<span style=\"color: #008000;\">import<\/span> numpy <span style=\"color: #008000;\">as<\/span> np<\/b><\/span><\/pre>\n<h3> <span style=\"color: #000000;\"><strong>Etapa 2: carregar dados<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Para este exemplo, usaremos o conjunto de dados <strong>iris<\/strong> da biblioteca sklearn. O c\u00f3digo a seguir mostra como carregar este conjunto de dados e convert\u00ea-lo em um DataFrame do pandas para facilitar o uso:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #008080;\">#load <em>iris<\/em> dataset<\/span>\niris = datasets. <span style=\"color: #3366ff;\">load_iris<\/span> ()\n\n<span style=\"color: #008080;\">#convert dataset to pandas DataFrame\n<\/span>df = pd.DataFrame(data = np.c_[iris[' <span style=\"color: #008000;\">data<\/span> '], iris[' <span style=\"color: #008000;\">target<\/span> ']],\n                 columns = iris[' <span style=\"color: #008000;\">feature_names<\/span> '] + [' <span style=\"color: #008000;\">target<\/span> '])\ndf[' <span style=\"color: #008000;\">species<\/span> '] = pd. <span style=\"color: #3366ff;\">Categorical<\/span> . <span style=\"color: #3366ff;\">from_codes<\/span> (iris.target, iris.target_names)\ndf.columns = [' <span style=\"color: #008000;\">s_length<\/span> ', ' <span style=\"color: #008000;\">s_width<\/span> ', ' <span style=\"color: #008000;\">p_length<\/span> ', ' <span style=\"color: #008000;\">p_width<\/span> ', ' <span style=\"color: #008000;\">target<\/span> ', ' <span style=\"color: #008000;\">species<\/span> ']\n\n<span style=\"color: #008080;\">#view first six rows of DataFrame\n<\/span>df. <span style=\"color: #3366ff;\">head<\/span> ()\n\n   s_length s_width p_length p_width target species\n0 5.1 3.5 1.4 0.2 0.0 setosa\n1 4.9 3.0 1.4 0.2 0.0 setosa\n2 4.7 3.2 1.3 0.2 0.0 setosa\n3 4.6 3.1 1.5 0.2 0.0 setosa\n4 5.0 3.6 1.4 0.2 0.0 setosa\n\n<span style=\"color: #3366ff;\"><span style=\"color: #008080;\">#find how many total observations are in dataset<\/span>\n<span style=\"color: #000000;\">len(df.index)\n\n150<\/span><\/span><\/strong><\/pre>\n<p> <span style=\"color: #000000;\">Podemos ver que o conjunto de dados cont\u00e9m 150 observa\u00e7\u00f5es no total.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Para este exemplo, construiremos um modelo de an\u00e1lise discriminante quadr\u00e1tica para classificar as esp\u00e9cies \u00e0s quais pertence uma determinada flor.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Usaremos as seguintes vari\u00e1veis preditoras no modelo:<\/span><\/p>\n<ul>\n<li> <span style=\"color: #000000;\">Comprimento da s\u00e9pala<\/span><\/li>\n<li> <span style=\"color: #000000;\">Largura da s\u00e9pala<\/span><\/li>\n<li> <span style=\"color: #000000;\">Comprimento da p\u00e9tala<\/span><\/li>\n<li> <span style=\"color: #000000;\">Largura da p\u00e9tala<\/span><\/li>\n<\/ul>\n<p> <span style=\"color: #000000;\">E vamos us\u00e1-los para prever a vari\u00e1vel de resposta <em>Species<\/em> , que suporta as tr\u00eas classes potenciais a seguir:<\/span><\/p>\n<ul>\n<li> <span style=\"color: #000000;\">setosa<\/span><\/li>\n<li> <span style=\"color: #000000;\">versicolor<\/span><\/li>\n<li> <span style=\"color: #000000;\">Virg\u00ednia<\/span><\/li>\n<\/ul>\n<h3> <span style=\"color: #000000;\"><strong>Etapa 3: ajuste o modelo QDA<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">A seguir, ajustaremos o modelo QDA aos nossos dados usando a fun\u00e7\u00e3o <a href=\"https:\/\/scikit-learn.org\/stable\/modules\/generated\/sklearn.discriminant_analysis.QuadraticDiscriminantAnalysis.html\" target=\"_blank\" rel=\"noopener noreferrer\">QuadraticDiscriminantAnalsys<\/a> do sklearn:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #008080;\">#define predictor and response variables\n<\/span>X = df[[' <span style=\"color: #008000;\">s_length<\/span> ',' <span style=\"color: #008000;\">s_width<\/span> ',' <span style=\"color: #008000;\">p_length<\/span> ',' <span style=\"color: #008000;\">p_width<\/span> ']]\ny = df[' <span style=\"color: #008000;\">species<\/span> ']\n\n<span style=\"color: #008080;\">#Fit the QDA model\n<\/span>model = QuadraticDiscriminantAnalysis()\nmodel. <span style=\"color: #3366ff;\">fit<\/span> (x,y)\n<\/strong><\/pre>\n<h3> <span style=\"color: #000000;\"><strong>Etapa 4: use o modelo para fazer previs\u00f5es<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Depois de ajustar o modelo usando nossos dados, podemos avaliar o desempenho do modelo usando valida\u00e7\u00e3o cruzada estratificada repetida de k-folds.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Para este exemplo usaremos 10 dobras e 3 repeti\u00e7\u00f5es:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #008080;\">#Define method to evaluate model\n<span style=\"color: #000000;\">cv = RepeatedStratifiedKFold(n_splits= <span style=\"color: #008000;\">10<\/span> , n_repeats= <span style=\"color: #008000;\">3<\/span> , random_state= <span style=\"color: #008000;\">1<\/span> )\n<\/span>\n#evaluate model\n<span style=\"color: #000000;\">scores = cross_val_score(model, X, y, scoring=' <span style=\"color: #008000;\">accuracy<\/span> ', cv=cv, n_jobs=-1)\nprint( <span style=\"color: #3366ff;\">np.mean<\/span> (scores))<\/span>  \n\n<span style=\"color: #000000;\">0.97333333333334<\/span><\/span><\/strong><\/pre>\n<p> <span style=\"color: #000000;\">Podemos observar que o modelo alcan\u00e7ou uma precis\u00e3o m\u00e9dia de <strong>97,33%<\/strong> .<\/span><\/p>\n<p> <span style=\"color: #000000;\">Tamb\u00e9m podemos usar o modelo para prever a qual classe pertence uma nova flor, com base nos valores de entrada:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #008080;\">#define new observation\n<\/span>new = [5, 3, 1, .4]\n\n<span style=\"color: #008080;\">#predict which class the new observation belongs to\n<\/span>model. <span style=\"color: #3366ff;\">predict<\/span> ([new])\n\narray(['setosa'], dtype='&lt;U10')\n<\/strong><\/pre>\n<p> <span style=\"color: #000000;\">Vemos que o modelo prev\u00ea que esta nova observa\u00e7\u00e3o pertence \u00e0 esp\u00e9cie chamada <em>setosa<\/em> .<\/span><\/p>\n<p> <span style=\"color: #000000;\">Voc\u00ea pode encontrar o c\u00f3digo Python completo usado neste tutorial <a href=\"https:\/\/github.com\/Statorials\/Python-Guides\/blob\/main\/quadratic_discriminant_analysis.py\" target=\"_blank\" rel=\"noopener noreferrer\">aqui<\/a> .<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A an\u00e1lise discriminante quadr\u00e1tica \u00e9 um m\u00e9todo que voc\u00ea pode usar quando possui um conjunto de vari\u00e1veis preditoras e deseja classificar uma vari\u00e1vel de resposta em duas ou mais classes. \u00c9 considerado o equivalente n\u00e3o linear da an\u00e1lise discriminante linear . Este tutorial fornece um exemplo passo a passo de como realizar an\u00e1lise discriminante quadr\u00e1tica [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[],"class_list":["post-1167","post","type-post","status-publish","format-standard","hentry","category-guia"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>An\u00e1lise discriminante quadr\u00e1tica em Python (passo a passo)<\/title>\n<meta name=\"description\" content=\"Este tutorial explica como realizar an\u00e1lise discriminante quadr\u00e1tica em Python, incluindo um exemplo passo a passo.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/statorials.org\/pt\/analise-discriminante-quadratica-em-python\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"An\u00e1lise discriminante quadr\u00e1tica em Python (passo a passo)\" \/>\n<meta property=\"og:description\" content=\"Este tutorial explica como realizar an\u00e1lise discriminante quadr\u00e1tica em Python, incluindo um exemplo passo a passo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/statorials.org\/pt\/analise-discriminante-quadratica-em-python\/\" \/>\n<meta property=\"og:site_name\" content=\"Statorials\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-27T10:29:04+00:00\" \/>\n<meta name=\"author\" content=\"Dr. benjamim anderson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dr. benjamim anderson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/statorials.org\/pt\/analise-discriminante-quadratica-em-python\/\",\"url\":\"https:\/\/statorials.org\/pt\/analise-discriminante-quadratica-em-python\/\",\"name\":\"An\u00e1lise discriminante quadr\u00e1tica em Python (passo a passo)\",\"isPartOf\":{\"@id\":\"https:\/\/statorials.org\/pt\/#website\"},\"datePublished\":\"2023-07-27T10:29:04+00:00\",\"dateModified\":\"2023-07-27T10:29:04+00:00\",\"author\":{\"@id\":\"https:\/\/statorials.org\/pt\/#\/schema\/person\/e08f98e8db95e0aa9c310e1b27c9c666\"},\"description\":\"Este tutorial explica como realizar an\u00e1lise discriminante quadr\u00e1tica em Python, incluindo um exemplo passo a passo.\",\"breadcrumb\":{\"@id\":\"https:\/\/statorials.org\/pt\/analise-discriminante-quadratica-em-python\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/statorials.org\/pt\/analise-discriminante-quadratica-em-python\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/statorials.org\/pt\/analise-discriminante-quadratica-em-python\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Lar\",\"item\":\"https:\/\/statorials.org\/pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"An\u00e1lise discriminante quadr\u00e1tica em python (passo a passo)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/statorials.org\/pt\/#website\",\"url\":\"https:\/\/statorials.org\/pt\/\",\"name\":\"Statorials\",\"description\":\"O seu guia para a literacia estat\u00edstica!\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/statorials.org\/pt\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/statorials.org\/pt\/#\/schema\/person\/e08f98e8db95e0aa9c310e1b27c9c666\",\"name\":\"Dr. benjamim anderson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/statorials.org\/pt\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/statorials.org\/pt\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg\",\"contentUrl\":\"https:\/\/statorials.org\/pt\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg\",\"caption\":\"Dr. benjamim anderson\"},\"description\":\"Ol\u00e1, sou Benjamin, um professor aposentado de estat\u00edstica que se tornou professor dedicado na Statorials. Com vasta experi\u00eancia e conhecimento na \u00e1rea de estat\u00edstica, estou empenhado em compartilhar meu conhecimento para capacitar os alunos por meio de Statorials. Saber mais\",\"sameAs\":[\"https:\/\/statorials.org\/pt\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"An\u00e1lise discriminante quadr\u00e1tica em Python (passo a passo)","description":"Este tutorial explica como realizar an\u00e1lise discriminante quadr\u00e1tica em Python, incluindo um exemplo passo a passo.","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:\/\/statorials.org\/pt\/analise-discriminante-quadratica-em-python\/","og_locale":"pt_PT","og_type":"article","og_title":"An\u00e1lise discriminante quadr\u00e1tica em Python (passo a passo)","og_description":"Este tutorial explica como realizar an\u00e1lise discriminante quadr\u00e1tica em Python, incluindo um exemplo passo a passo.","og_url":"https:\/\/statorials.org\/pt\/analise-discriminante-quadratica-em-python\/","og_site_name":"Statorials","article_published_time":"2023-07-27T10:29:04+00:00","author":"Dr. benjamim anderson","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Dr. benjamim anderson","Tempo estimado de leitura":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/statorials.org\/pt\/analise-discriminante-quadratica-em-python\/","url":"https:\/\/statorials.org\/pt\/analise-discriminante-quadratica-em-python\/","name":"An\u00e1lise discriminante quadr\u00e1tica em Python (passo a passo)","isPartOf":{"@id":"https:\/\/statorials.org\/pt\/#website"},"datePublished":"2023-07-27T10:29:04+00:00","dateModified":"2023-07-27T10:29:04+00:00","author":{"@id":"https:\/\/statorials.org\/pt\/#\/schema\/person\/e08f98e8db95e0aa9c310e1b27c9c666"},"description":"Este tutorial explica como realizar an\u00e1lise discriminante quadr\u00e1tica em Python, incluindo um exemplo passo a passo.","breadcrumb":{"@id":"https:\/\/statorials.org\/pt\/analise-discriminante-quadratica-em-python\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/statorials.org\/pt\/analise-discriminante-quadratica-em-python\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/statorials.org\/pt\/analise-discriminante-quadratica-em-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Lar","item":"https:\/\/statorials.org\/pt\/"},{"@type":"ListItem","position":2,"name":"An\u00e1lise discriminante quadr\u00e1tica em python (passo a passo)"}]},{"@type":"WebSite","@id":"https:\/\/statorials.org\/pt\/#website","url":"https:\/\/statorials.org\/pt\/","name":"Statorials","description":"O seu guia para a literacia estat\u00edstica!","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/statorials.org\/pt\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-PT"},{"@type":"Person","@id":"https:\/\/statorials.org\/pt\/#\/schema\/person\/e08f98e8db95e0aa9c310e1b27c9c666","name":"Dr. benjamim anderson","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/statorials.org\/pt\/#\/schema\/person\/image\/","url":"https:\/\/statorials.org\/pt\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg","contentUrl":"https:\/\/statorials.org\/pt\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg","caption":"Dr. benjamim anderson"},"description":"Ol\u00e1, sou Benjamin, um professor aposentado de estat\u00edstica que se tornou professor dedicado na Statorials. Com vasta experi\u00eancia e conhecimento na \u00e1rea de estat\u00edstica, estou empenhado em compartilhar meu conhecimento para capacitar os alunos por meio de Statorials. Saber mais","sameAs":["https:\/\/statorials.org\/pt"]}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"_links":{"self":[{"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/posts\/1167","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/comments?post=1167"}],"version-history":[{"count":0,"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/posts\/1167\/revisions"}],"wp:attachment":[{"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/media?parent=1167"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/categories?post=1167"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/statorials.org\/pt\/wp-json\/wp\/v2\/tags?post=1167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}