class: inverse, middle ## Introdução ao Aprendizado de Máquina - Aula 1 .large[#### Agatha Rodrigues ] --- class: middle, inverse <style type="text/css"> pre { max-height: 300px; overflow-y: auto; background-color: inherit; } </style> # Material --- class: middle ## Livro principal Livro **An Introduction to Statistical Learning - with Applications in R (ISLR)**, de Gareth James, Daniela Witten, Trevor Hastie e Robert Tibshirani. Acesso em [www.StatLearning.com](www.StatLearning.com) ## Outras referências - Livro **Introdução à Ciência de Dados Fundamentos e Aplicações**, de Pedro Morettin e Julio Singer. - Livro **Machine Learning sob a ótica estatÃstica: Uma abordagem estatÃstica**, com Rafael Izbicki e Tiago Mendonça. --- class: middle, inverse # O que é aprendizado de máquina? --- class: middle # Do livro ISLR O aprendizado de máquina se refere a um vasto conjunto de ferramentas para a compreensão de dados. <br> # Do livro de Morettin e Singer Consiste na utilização de modelos estatÃsticos acoplados a algoritmos computacionais desenvolvidos para extrair informação de conjuntos de dados contendo, em geral, muitas unidades amostrais e muitas variáveis. --- class: middle # Do livro de Izbicki e Mendonça O aprendizado de máquina (AM) nasceu na década de 60 como um campo da inteligência artificial que tinha o objetivo de aprender padrões com base em dados. A partir do final dos anos 90, a área expandiu seus horizontes e começou a ter muitas intersecções, com ideias desenvolvidas em diversas áreas, sendo a EstatÃstica uma delas. Aqui vamos introduzir ideias de AM sob uma ótima estatÃstica. Chamaremos de aprendizado estatÃstico (AE). --- class: middle # EstatÃstica <img src="img/dados_em_info.png" width="85%" style="display: block; margin: auto;" /> --- class: middle **"Não precisa de EstatÃstica para a Ciência de Dados"** <img src="img/CD_sem_Estat.jpg" width="55%" style="display: block; margin: auto;" /> Robert Tibshirani: Statistics is the key of Data Science. --- class: middle **"EstatÃstica só lida com pequenos volumes de dados (*small data*)"** <br> Morettin e Singer: Se uma das principais caracterÃsticas da Ciência de Dados é analisar grandes conjuntos de dados (megadados), há mais de 200 anos os estatÃsticos têm se preocupado com a análise de vastos conjuntos de dados provenientes de censos, coleta de informações meteorológicas, observação de séries de Ãndices financeiros etc., que tem essa caracterÃstica. Talvez seja o aspecto computacional necessário para lidar com megadados o que mascara os demais componentes daquilo que se entende por Ciência de Dados, pois em muitos casos, o interesse é dirigido apenas para o desenvolvimento de algoritmos cuja finalidade é aprender a partir dos dados, omitindo-se caracterÃsticas estatÃsticas. <!-- Blei e Smyth (2017) discutem Estatistica e CD sob tr^es perspectivas: estatistica, computacional e humana. Segundo os autores, CD é uma filha da estatistica e da ci^encia da computac~ao. A estatistica serviria a CD guiando a coleta e analise de dados complexos. A computac~ao, desenvolvendo algoritmos que distribuem conjuntos enormes de dados por multiplos processadores (proporcionando velocidade de calculo) e equipamentos com grande capacidade de memoria (permitindo seu armazenamento). Sob a perspectiva humana, a CD contempla modelos estatisticos e metodos computacionais para resolver problemas especificos de outras disciplinas, entender o dominio desses problemas, decidir quais dados obter, como processa-los, explora-los e visualiza-los, selecionar um modelo estatistico e metodos computacionais apropriados, alem de comunicar os resultados da analise de uma forma inteligvel para aqueles que propuseram os problemas.--> <!--Um dos aspectos tradicionalmente neglicenciados por estatÃsticos é aquele em que os dados têm natureza não ortodoxas como imagens, sons etc. Nesse caso, algoritmos computacionais são essenciais para seu tratamento que, por sua vez, n~ao pode prescindir do apoio de um estatÃstico.--> --- class: middle, inverse # Conceitos e notação --- class: middle #Wage dataset - Vamos avaliar uma série de fatores relacionados aos salários de um grupo de homens da região do atlântico dos Estados Unidos. - Em particular, queremos entender a associação entre o **salário** (*wage*) com as seguintes variáveis: - **idade** (*age*); - **escolaridade** (*education level*); - **ano** (*year*); - **estado civil** (*maritl*); - **etnia** (*race*); - **classificação do trabalho** (*jobclass*); - **indicador de saúde** (*health*); - **se tem seguro saúde** (*health_ins*). --- class: middle <img src="img/cap1_1.png" width="100%" style="display: block; margin: auto;" /> --- class: middle ##Notação O salário é a variável de saÃda (*output*), enquanto as demais variáveis são variáveis de entrada (*input*). ### Sobre as variáveis de entrada - **Sinônimos**: *input*, preditores, variáveis independentes, *features*, covariáveis, variável exógena. - **Notação**: tipicamente denotadas pelo sÃmbolo `\(X\)`, com um subscrito para distingui-las. - Na motivação **Wage**, `\(X_1\)` pode ser a idade, `\(X_2\)` escolaridade, `\(X_3\)` o ano, etc. ### Sobre variável de saÃda - **Sinônimos**: *output*, variável resposta, variável dependente, variáveis endógenas, *label*. - **Notação**: tipicamente denotadas pelo sÃmbolo `\(Y\)`. - Na motivação **Wage**, a variável salário é denotada por `\(Y\)`. --- class: middle ##Notação - `\(n\)` denotará o número de observações; - `\(p\)` para indicar o número de variáveis de entrada. **Por exemplo:** o conjunto de dados **Wage** consiste em 8 variáveis de entrada para 3000 observações. Portanto, temos `\(n = 3000\)` e `\(p = 8\)`. --- class: middle #Notação - O Ãndice `\(i\)` será usado para as observações (de `\(1\)` a `\(n\)`) e o Ãndice `\(j\)` será usado as variáveis (de `\(1\)` a `\(p\)`). - Seja `\(x_{ij}\)` o valor da `\(j\)`-ésima variável para a `\(i\)`-ésima observação, em que `\(i=1,2,\ldots,n\)` e `\(j=1,2,\ldots,p\)`. - Seja `\({\bf x}_i\)` um vetor de tamanho `\(p\)`, contendo as medidas das `\(p\)` variáveis para a `\(i\)`-ésima observação. Isso é, <img src="img/matrix_X_linha.png" width="20%" style="display: block; margin: auto;" /> <!-- Por padrão, vetores sao definidos como coluna--> - **Por exemplo:** na base de dados **Wage**, `\({\bf x}_i\)` é um vetor de tamanho `\(8\)`, consistindo nos valores das variáveis de entrada para o `\(i\)`-ésimo indivÃduo, com `\(i=1,\ldots,n\)`. --- class: middle #Notação - Seja `\(y_i\)` o valor da `\(i\)`-ésima observação da variável de saÃda, como o salário na base de dados **Wage**. <br> - Assim, os dados observados consistem em `\(\{({\bf x}_1, y_1), ({\bf x}_2, y_2),\ldots, ({\bf x}_n, y_n)\}\)`, onde cada `\({\bf x}_i\)` é um vetor de comprimento `\(p\)`. Se `\(p = 1\)`, então `\(x_i\)` é simplesmente um escalar. --- class: middle #Modelo - Suponha que observamos uma resposta quantitativa `\(Y\)` e `\(p\)` diferentes preditores `\(X_1, ~ X_2,\ldots, X_p\)`. <br> - Presumimos que haja alguma relação entre `\(Y\)` e `\(X = (X_1, X_2,\ldots, X_p)\)`, que pode ser escrita na forma geral $$ Y=f(x)+\epsilon. $$ `\(f\)` é alguma função fixa e desconhecida de `\(X_1, ~ X_2,\ldots, X_p\)`; `\(\epsilon\)` é um termo de erro aleatório e independente de `\(X\)`. <br> - `\(f\)` representa a informação que `\(X\)` fornece sobre `\(Y\)`. --- class: middle # Um exemplo simulado: renda versus educação <img src="img/cap2_2.jpg" width="80%" style="display: block; margin: auto;" /> <!--Como outro exemplo, considere o painel esquerdo da Figura 2.2, um gráfico de renda versus anos de educação para 30 indivÃduos no conjunto de dados Renda. O gráfico sugere que se pode prever a renda usando anos de educação. No entanto, a função f que conecta a variável de entrada à variável de saÃda é geralmente desconhecida. Nesta situação, deve-se estimar f com base nos pontos observados. FALAR QUE O F ESTIMADO EH F CHAPEU. Como Income é um conjunto de dados simulado, f é conhecido e é mostrado pela curva azul no painel direito da Figura 2.2. As linhas verticais representam os termos de erro. Notamos que algumas das 30 observações estão acima da curva azul e algumas abaixo dela; no geral, os erros têm aproximadamente zero médio. Em geral, a função f pode envolver mais de uma variável de entrada. Na Figura 2.3, representamos a renda em função dos anos de educação e antiguidade. Aqui f é uma superfÃcie bidimensional que deve ser estimada com base nos dados observados. Em essência, a aprendizagem estatÃstica se refere a um conjunto de abordagens para estimar `\(f\)`. --> --- class: middle - Em essência, o aprendizado estatÃstico se refere a um conjunto de abordagens para estimar (ou treinar, na linguagem de AM) `\(f\)`. <br> - Vamos discutir alguns conceitos: - Por que estimar f? -- - Como estimar f? -- - Sobreajuste e subajuste -- - Acurácia preditiva versus interpretabilidade do modelo. -- - Tipos de aprendizado estatÃstico. -- - Problema de regressão versus problema de classificação. -- - Como escolher o método em problemas de regressão? -- - Trade-off (balanço) entre viés e variância -- - Como escolher o método em problemas de classificação? -- - Tuning parameters (hiperparâmetros) -- - Data splitting e validação cruzada --- class: middle, inverse # Por que estimar f? --- class: middle # Por que estimar f? - Existem duas razões principais pelas quais podemos desejar estimar `\(f\)`: **predição** e **inferência**. <br> ##Predição Em muitas situações, um conjunto de entradas `\(X\)` está prontamente disponÃvel, mas a saÃda não pode ser obtida facilmente. <!--Nesta configuração, uma vez que a média do termo de erro é zero,--> Podemos prever `\(Y\)` usando $$ \widehat{Y}=\widehat{f}(x), $$ em que: - `\(\widehat{f}\)` representa nossa estimativa para `\(f\)`, chamada de **previsor**; - `\(\widehat{Y}\)` representa a predição resultante para `\(Y\)`. **Pergunta:** O que seria uma boa predição? --- class: middle ##Tipos de erros A acurácia de `\(\widehat{Y}\)` como predição de `\(Y\)` depende dos seguintes dois erros: <br> - **erro redutÃvel**: introduzido pelo previsor de `\(f\)`; assim chamado porque podemos melhorar a acurácia de `\(\widehat{f}\)` usando técnicas de AE mais apropriadas. No entanto, mesmo que fosse possÃvel formar uma estimativa perfeita para `\(f\)`, de forma que nossa resposta estimada assumisse a forma `\(\widehat{Y}=f(x)\)`, nossa predição ainda teria algum erro nela! Isso ocorre porque `\(Y\)` também é uma função de `\(\epsilon\)`, que não pode ser prevista usando `\(X\)`. Portanto, a variabilidade associada a `\(\epsilon\)` também afeta a acurácia de nossas predições. <br> - **erro irredutÃvel**: não importa o quão bem estimemos `\(f\)`, não podemos reduzir o erro introduzido por `\(\epsilon\)`. --- class: middle A acurácia do previsor `\(\widehat{f}\)` é definida como: $$ E(Y - \widehat{Y})^2 = E[f(x) + \epsilon - \widehat{f}(x)]^2 \\ = E[f(x) - \widehat{f}(x)]^2 + Var( \epsilon), $$ em que `\(E[f(x) - \widehat{f}(x)]^2\)` mede o efeito do erro redutÃvel e `\(Var(\epsilon)\)` mede o efeito do erro irredutÃvel. <br> - A predição domina a comunidade de aprendizado de máquina. Neste meio, o principal objetivo é a predição de novas observações. - Não se assume que o modelo utilizado para os dados é correto; o modelo é utilizado apenas para criar bons algoritmos para prever bem novas observações. --- class: middle ##Inferência - Desejamos estimar `\(f\)`, mas agora com o interesse é entender a maneira como `\(Y\)` é afetado com as mudanças em `\(X_1,\ldots,X_p\)`. - Podemos responder as seguintes questões: - Quais preditores estão associados à resposta? - Qual é a relação entre a resposta e cada preditor? - A relação entre `\(Y\)` e cada preditor pode ser resumida adequadamente usando uma equação linear ou a relação é mais complicada? - O principal objetivo está na interpretação dos parâmetros envolvidos no modelo - em particular há interesse em testes de hipóteses e estimação intervalar para esses parâmetros. - Sob essa abordagem, testar se as suposições do modelo (por exemplo, normalidade dos erros, linearidade, homoscedasticidade etc) são válidas é de fundamental importância. --- class: middle ##No exemplo Wage - Quais variáveis de entrada contribuem para o salário? - Quais geram o maior impulso nos salários? - Quanto aumento na idade, por exemplo, está associado a um determinado aumento no salário? --- class: middle, inverse # Como podemos estimar f? --- class: middle # Como podemos estimar f? - Considere um conjunto de `\(n\)` observações. - Essas observações são chamadas de **dados de treinamento** porque usaremos essas observações para treinar, ou ensinar, nosso método como estimar `\(f\)`. - Seja `\(x_{ij}\)` o valor do `\(j\)`-ésimo preditor para a observação `\(i\)`, em que `\(i = 1, 2,\ldots, n\)` e `\(j = 1, 2,\ldots , p\)`. Correspondentemente, seja `\(y_i\)` a variável de resposta para a `\(i\)`-ésima observação. - Os dados de treinamento consistem em `\(\{({\bf x}_1, y_1), ({\bf x}_2, y_2),\ldots , ({\bf x}_n, y_n)\}\)`, onde `\({\bf x}_i = (x_{i1}, x_{i2},\ldots, x_{ip})^\top\)`. - Nosso **objetivo** é aplicar um método de aprendizagem estatÃstica aos dados de treinamento para estimar a função desconhecida `\(f\)`. Em outras palavras, queremos encontrar uma função `\(\widehat{f}\)` tal que `\(Y \approx \widehat{f}(x)\)` para qualquer observação `\((x, Y)\)`. - Em termos gerais, a maioria dos métodos de aprendizagem estatÃstica para essa tarefa pode ser caracterizada como **paramétrica** ou **não paramétrica**. --- class: middle # Métodos paramétricos - Fazemos uma **suposição** sobre a forma funcional de `\(f\)`. - Por exemplo, uma suposição muito simples é que `\(f\)` é linear em `\(X\)`: $$ f(x)=\beta_0+\beta_1x_1+\beta_2x_2+\ldots+\beta_px_p $$ <!--Este é um modelo linear, que será discutido extensivamente no CapÃtulo 3. Uma vez que assumimos que f é linear, o problema de estimar f é bastante simplificado. --> Para estimar `\(f(x)\)`, basta estimar os `\((p+1)\)` coeficientes `\(\beta_0, ~\beta_1,\ldots,\beta_p\)`. <!--No caso de modelos de regress~ao, o metodo mais usado na estimacao e o de Minimos Quadrados (MQ) mas ha outros metodos disponiveis, como SVM (support vector machines).--> -- - A **desvantagem** potencial de uma abordagem paramétrica é que o modelo que escolhemos geralmente não corresponderá à verdadeira forma desconhecida de `\(f\)`. Se o modelo escolhido estiver muito longe de `\(f\)` verdadeiro, nossa estimativa será ruim. - **PossÃvel solução**: escolher modelos flexÃveis que possam ajustar muitas formas funcionais possÃveis para `\(f\)`. - Em geral, ajustar um modelo mais flexÃvel requer estimar um maior número de parâmetros. <!--Esses modelos mais complexos podem levar a um fenômeno conhecido como sobreajuste (*overfitting*) de dados, o que essencialmente significa que eles seguem os erros muito de perto.--> --- class: middle # Métodos não paramétricos - Nos métodos não paramétricos, não fazemos suposições sobre a forma funcional de `\(f\)`. Em vez disso, eles buscam uma estimativa de `\(f\)` que chegue o mais próximo possÃvel dos pontos de dados. - Essas abordagens podem ter uma grande vantagem sobre as abordagens paramétricas: ao evitar a suposição de uma forma funcional especÃfica para `\(f\)`<!--, elas têm o potencial de se ajustar com precisão a uma gama mais ampla de formas possÃveis para f.--> - As abordagens não paramétricas sofrem de uma grande desvantagem: uma vez que não reduzem o problema de estimar f a um pequeno número de parâmetros, um número muito grande de observações (muito mais do que normalmente é necessário para uma abordagem paramétrica) é necessário para obter estimadores acurados `\(f\)`. - Vários métodos podem ser usados com essa finalidade, dentre os quais destacamos aqueles que utilizam: - kernels; - polinômios locais (e.g., Lowess); - splines; - polinômios ortogonais (e.g., Chebyshev); - outras bases ortogonais (e.g., Fourier, ondaletas). --- class: middle, inverse # Sobreajuste e subajuste --- class: middle ### Sobreajuste e subajuste Veja o exemplo 1.1 do livro do Izbicki e Mendonça (2020). A figura abaixo (página 13 do livro de Izbicki e Mendonça) mostra o ajuste de três modelos distintos: $$ f(x)=\beta_0+\sum_{i=1}^{p} \beta_i x^i, ~ \mbox{para} ~ p\in\{1,4,50\}. $$ <img src="img/sobre_sub_ajuste.png" width="50%" style="display: block; margin: auto;" /> - O modelo de 1º grau é simplista demais para os dados. O modelo com p=50 é extremamente complexo e parece fornecer uma função que não produzirá boas predições para novas observações. - Dizemos que o modelo com p=1 sofre de **subajuste**, ou **underfitting** (não é suficiente para explicar os dados), enquanto o modelo com p=50 sofre de **sobreajuste**, ou **overfitting** (ele se ajusta demais a esta amostra especÃfica, mas possui baixo poder de generalização). <!-- - Objetivo: obter um modelo intermediário! --> --- class: middle Os sinais de **subajuste** incluem: 1. **Erro elevado no treinamento:** O modelo tem um desempenho ruim mesmo nos dados de treinamento. 2. **Desempenho similar em treinamento e teste:** A diferença entre o desempenho nos dados de treinamento e teste não é significativamente grande, indicando que o modelo não aprendeu os padrões do conjunto de dados. 3. **Baixa complexidade:** O modelo é muito simples e não consegue representar adequadamente a complexidade dos dados. <br> Os sinais de **sobreajuste** incluem: 1. **Baixo erro no treinamento:** O modelo tem um desempenho excelente nos dados de treinamento. 2. **Erro alto no teste:** No entanto, o desempenho nos dados de teste (ou dados não vistos anteriormente) é muito pior. 3. **Diferença significativa entre treinamento e teste:** A diferença entre o desempenho nos dados de treinamento e teste é grande, indicando que o modelo está "memorizando" os dados de treinamento em vez de generalizar. --- class: middle, inverse # Acurácia preditiva versus interpretabilidade --- class: middle # O *trade-off* entre acurácia na predição e interpretabilidade do modelo - Alguns métodos são menos flexÃveis, ou mais restritivos, no sentido de que podem produzir apenas uma gama relativamente pequena de formas para estimar `\(f\)`. <!--Por exemplo, a regressão linear é uma abordagem relativamente inflexÃvel, porque só pode gerar funções lineares, como as linhas mostradas na Figura 2.1 ou o plano mostrado na Figura 2.4. Outros métodos, como as estrias de placa fina mostradas nas Figuras 2.5 e 2.6, são consideravelmente mais flexÃveis porque podem gerar uma gama muito maior de formatos possÃveis para estimar f.--> <br> - **Por que escolherÃamos usar um método mais restritivo em vez de uma abordagem mais flexÃvel?** Há algumas razões. Se estamos interessados em inferência, os modelos restritivos são mais interpretáveis. - Modelo interpretável: modelo de regessão linear. - Abordagens muito flexÃveis, como os splines, podem levar a estimativas tão complicadas de `\(f\)` que é difÃcil entender como qualquer preditor individual está associado a a resposta. --- class: middle <img src="img/cap2_3.jpg" width="80%" style="display: block; margin: auto;" /> --- class: middle #Mais sobre o tema: Post: Interpretabilidade em modelos preditivos – discussões iniciais na área da saúde https://daslab-ufes.github.io/interpretability-in-predictive-model --- class: middle, inverse # Tipos de Aprendizado --- class: middle #Tipos de Aprendizado O AE pode ser **supervisionado** ou **não supervisionado**. -- ## Supervisionado - Envolve a construção de um modelo estatÃstico para prever ou estimar uma saÃda com base em uma ou mais entradas. - Para cada observação do(s) preditor(es) `\({\bf x}_i\)`, `\(i = 1,\ldots, n\)`, há uma medida de resposta associada `\(y_i\)`. - Queremos ajustar um modelo que relacione a resposta aos preditores, com o objetivo de predizer com a resposta para observações futuras (predição) ou melhor compreender a relação entre a resposta e os preditores (inferência). - Exemplo de supervisionado: **Wage** dataset. <!--Muitos métodos clássicos de aprendizagem estatÃstica, como regressão linear e regressão logÃstica (CapÃtulo 4), bem como abordagens logÃsticas e mais modernas, como GAM, boosting e suporte de regressão de máquinas para máquinas, operam no domÃnio de aprendizagem supervisionada. --> --- class: middle ## Não supervisionado - Para cada observação `\(i = 1,\ldots , n\)`, observamos um vetor de medidas `\({\bf x}_i\)`, mas nenhuma resposta associada `\(y_i\)`. <!--Não é possÃvel ajustar um modelo de regressão linear, uma vez que não há variável de resposta a prever. Nesse cenário, estamos de alguma forma trabalhando cegos; --> - A situação é chamada de não supervisionada porque não temos uma variável de resposta que possa supervisionar nossa análise. - Podemos ter interesse em entender a relação entre variáveis ou entre observações. --- class: middle **Exemplo de não supervisionado: segmentação de marketing** - Podemos observar múltiplas caracterÃsticas (variáveis) para **clientes em potencial**, como CEP, renda familiar e hábitos de compra. - Acreditamos que os clientes se enquadram em grupos diferentes, como grandes compradores versus pequenos compradores. - Se as informações sobre os padrões de gastos de cada cliente estivessem disponÃveis, uma análise supervisionada seria possÃvel. No entanto, essas informações não estão disponÃveis, ou seja, não sabemos se cada cliente potencial gasta muito ou não. - Neste cenário, podemos tentar agrupar os clientes com base nas variáveis medidas, de forma a identificar grupos distintos de potenciais clientes. Identificar esses grupos pode ser interessante porque pode ser que os grupos difiram em relação a alguma propriedade de interesse, como hábitos de consumo. **Métodos vistos em Multivariada II!** --- class: middle, inverse # Regressão versus classificação --- class: middle #Problemas de regressão versus de classificação - As variáveis podem ser caracterizadas como quantitativas ou qualitativas (também conhecidas como categóricas). - Exemplos: - **Quantitativas** - idade, altura ou renda de uma pessoa, o valor de uma casa, e o preço de uma ação. - **Qualitativas** - a marca do produto comprado (marca A, B ou C), se uma pessoa é inadimplente (sim ou não), ou um diagnóstico de câncer (Leucemia Mielóide Aguda, Aguda Leucemia linfoblástica ou sem leucemia). -- ##Em AE supervisionado - Problema de **regressão**: Quando `\(Y\)` é uma variável quantitativa; - Problema de **classificação**: Quando `\(Y\)` é uma variável qualitativa. <!-- EXPLICAR O TRUQUE DE REGRESSÃO LOGISTICA PODER SER USADO PARA UM PROBLEMA DE CLASSIFICACAO. Mas, uma vez que estima as probabilidades de classe, pode ser pensado como uma regressão METODOS SÓ PARA CLASSIFICACAO, METODOS PARA REGRESSAO E METODOS PARA AMBOS (COMO BOOSTING, K-NEIGBOR)--> --- class: middle, inverse # Como escolher o método em problemas de regressão? --- class: middle # Avaliação da precisão do modelo - **Pergunta interessante**: Por que precisamos estudar tantos métodos? Não há almoço grátis: nenhum método domina todos os outros sobre todos os conjuntos de dados possÃveis. <br> - **Objetivo**: Escolher qual método produz os melhores resultados dentre um conjunto de métodos candidatos. <!--Portanto, é uma tarefa importante decidir por qualquer conjunto de dados qual método produz os melhores resultados. Selecionar a melhor abordagem pode ser uma das partes mais desafiadoras do desempenho do aprendizado estatÃstico na prática. Discutimos alguns dos conceitos mais importantes que surgem na seleção de um procedimento de aprendizagem estatÃstica para um conjunto de dados especÃfico. À medida que o livro avança, explicaremos como os conceitos apresentados aqui podem ser aplicados na prática. --> <br> - Para avaliar o desempenho de um método de AE em um determinado conjunto de dados, precisamos de **alguma forma para medir** o quão bem suas predições realmente correspondem aos dados observados. <!--Ou seja, precisamos quantificar até que ponto o valor de resposta previsto para uma determinada observação está próximo do valor de resposta verdadeiro para essa observação.--> --- class: middle ##Erro quadrático médio (EQM) Em problemas de regressão, a medida mais comumente usada é o erro quadrático médio (sigla em inglês: MSE), dado por: $$ EQM=\frac{1}{n}\sum_{i=1}^n[y_i-\widehat{f}(x_i)]^2, $$ em que `\(\widehat{f}(x_i)\)` é a predição que `\(\widehat{f}\)` fornece para a `\(i\)`-ésima observação. - O EQM será pequeno se as respostas preditas forem muito próximas das respostas verdadeiras, e será grande se as respostas preditas e verdadeiras diferirem substancialmente. - Não queremos saber o quão bem o método funciona nos dados de treinamento. Em vez disso, estamos interessados na precisão das predições que obtemos quando aplicamos nosso método a dados de teste **nunca vistos antes**. <!--suponha que temos medições clÃnicas (por exemplo, peso, pressão arterial, altura, idade, história familiar de doença) para uma série de pacientes, bem como informações sobre se cada paciente tem diabetes. Podemos usar esses pacientes para treinar um método de aprendizagem estatÃstica para prever o risco de diabetes com base em medidas clÃnicas. Na prática, queremos que este método preveja com precisão o risco de diabetes para futuros pacientes com base em suas medições clÃnicas. Não estamos muito interessados em saber se o método prevê ou não com precisão o risco de diabetes para os pacientes usados para treinar o modelo, uma vez que já sabemos quais desses pacientes têm diabetes.--> --- class: middle ## Amostras treinamento e teste <br> - **Dados treinamento**: para o ajuste do método de AE Ajustamos nosso método de AE em nossas observações de treinamento `\(\{(x_1, y_1), (x_2, y_2),\ldots, (x_n, y_n)\}\)`, e obtemos a estimativa `\(\widehat{f}\)`. Podemos então calcular `\(\widehat{f}(x_1),\widehat{f}(x_2),\ldots,\widehat{f}(x_n)\)`. <br> - **Dados teste**: para a avaliação do ajuste Sejam `\((x_0,y_0)\)` obervações não consideradas para treinar o método de AE. - Queremos saber se `\(\widehat{f}(x_0)\)` é aproximadamente igual a `\(y_0\)`. --- class: middle ## Escolha do método <br> - Uma medida de avaliação do ajuste é o cálculo do EQM na amostra teste. Dentre um conjunto de métodos de AE, escolhemos aquele com o menor EQM da amostra teste. <br> - Mas daà surge uma pergunta: O método com menor EQM no treinamento também apresenta o menor EQM no teste? Não necessariamente! --- class: center <img src="img/cap2_4.jpg" width="80%" style="display: block; margin: auto;" /> À esquerda: Dados simulados de f, mostrados em preto. Três estimativas de f: a linha de regressão linear (curva laranja) e dois ajustes de spline (curvas azul e verde). À direita: EQM de treinamento (curva cinza) e EQM de teste (curva vermelha). Os quadrados representam os EQMs de treinamento e teste para os três ajustes mostrados no painel esquerdo. <!--A Figura 2.9 ilustra esse fenômeno em um exemplo simples. No painel esquerdo da Figura 2.9, geramos observações de (2.1) com o f verdadeiro dado pela curva preta. As curvas laranja, azul e verde ilustram três estimativas possÃveis para f obtidas usando métodos com nÃveis crescentes de flexibilidade. A linha laranja é o ajuste de regressão linear, que é relativamente inflexÃvel. As curvas azul e verde foram produzidas usando splines de suavização, discutidas no CapÃtulo 7, com diferentes nÃveis de suavidade. É claro que à medida que o nÃvel de flexibilidade aumenta, as curvas se ajustam mais de perto aos dados observados. A curva verde é a mais flexÃvel e combina muito bem com os dados; no entanto, observamos que ele se ajusta mal ao f verdadeiro (mostrado em preto) porque é muito ondulado. Ajustando o nÃvel de flexibilidade do suavizando o ajuste da spline, podemos produzir muitos ajustes diferentes para esses dados.--> --- class: middle, inverse # Trade-off (balanço) entre viés e variância --- class: middle ## Trade-off (balanço) entre viés e variância Para os dados do conjunto teste, `\(({\bf x}_0,Y_0)\)`, $$ E[Y_0-\widehat{f}({\bf x}_0)]^2 = Var[\widehat{f}({\bf x}_0)] + Vies[\widehat{f}({\bf x}_0)]^2 + Var(\epsilon_0), $$ em que `\(Vies[\widehat{f}({\bf x}_0)] = E[\widehat{f}({\bf x}_0) - f({\bf x}_0)]\)`. `\(Var(\epsilon_0)\)` não depende da escolha do previsor `\(\widehat{f}\)` e assim, para mininizar o EQM, precisamos de um modelo que simultaneamente produza **baixo viés e baixa variância**. --- class: middle ## Trade-off (balanço) entre viés e variância **Viés (Bias):** O viés refere-se à simplificação feita por um modelo para tornar as suposições sobre os dados mais simples e fáceis de aprender. Um modelo com alto viés pode não ser flexÃvel o suficiente para capturar a complexidade dos dados. Esse cenário está relacionado com o subajuste. **Variância:** A variância refere-se à sensibilidade do modelo à s flutuações nos dados de treinamento. Um modelo com alta variância é altamente sensÃvel a pequenas variações, o que pode resultar em ajustes excessivos aos dados de treinamento. Como resultado, esse modelo pode ter um desempenho excepcional nos dados de treinamento, mas um desempenho ruim em dados de teste não vistos anteriormente. Um modelo com alta variância é muito flexÃvel e tenta se ajustar a todas as peculiaridades dos dados de treinamento, mas isso muitas vezes leva a uma má generalização em novos dados. --- class: middle **Trade-off entre Viés e Variância:** É importante encontrar um equilÃbrio entre viés e variância. O trade-off entre esses dois fatores pode ser representado da seguinte forma: - Modelos com **alto viés e baixa variância** são simples e fazem suposições fortes sobre os dados. Eles podem não se ajustar bem aos dados de treinamento, resultando em subajuste. - Modelos com **baixo viés e alta variância** são mais complexos e se ajustam mais aos dados de treinamento. No entanto, eles podem se ajustar ao ruÃdo nos dados, levando a sobreajuste. Em resumo, o trade-off entre viés e variância é uma consideração importante ao desenvolver modelos de ML. Encontrar o equilÃbrio certo é essencial para garantir que o **modelo seja capaz de generalizar adequadamente para dados não vistos** durante o treinamento. --- class: middle, inverse # Como escolher o método em problemas de classificação? --- class: middle # Em cenários de classificação - Queremos estimar `\(f\)` com base nas observações de treinamento `\(\{(x_1, y_1),\ldots, (x_n, y_n)\}\)`, mas agora `\(y_1, \ldots, y_n\)` são observações qualitativas. - A **taxa de erro de treinamento** é dada por: $$ \frac{1}{n}{\sum_{i=1}^nI(y_i\neq \hat{y}_i)}, $$ em que `\(\hat{y}_i\)` é a classificação predita para `\(i\)`-ésima observação usando `\(\hat{f}\)` e `\(I(\cdot)\)` é uma variável indicadora que vale 1 se `\(y_i\neq \hat{y}_i\)` e 0, caso contrário. <br> - A **taxa de erro de teste** é calculada de maneira análoga, mas com a amostra teste `\(\{(x_0, y_0)\}\)`. --- class: middle, inverse # Tuning parameters (hiperparâmetros) --- class: middle # O que são parâmetros tuning? - No exemplo do slide "Sobreajuste e subajuste" (slide 31), a função do parâmetro `\(p\)` (grau do polinômio) é controlar o balanço entre viés e variância. O parâmetro `\(p\)` é chamado de tuning parameter (parâmetro de sintonização ou hiperparâmetro). - Vários dos métodos de regressão possuem um ou mais parâmetro tuning. Escolheremos o valor do parâmetro tuning via validação cruzada. --- class: middle, inverse # Data splitting e validação cruzada --- class: middle # Data splitting e validação cruzada - As métricas de desempenho calculadas a partir da amostra utilizada levam ao superajuste, uma vez que o método escolhido se ajustar bem aos dados em questão. - Uma maneira de solucionar este problema é dividir o conjunto de dados em duas partes: **treinamento** e **validação**. - **Treinamento** usado para treinar o modelo - `\(({\bf x}_1,Y_1), ({\bf x}_2,Y_2),\ldots,({\bf x}_n,Y_n)\)`. - **Conjunto de validação** usado para calcular as métricas de desempenho. O conjunto `\(({\bf x}_{n+1},Y_{n+1}), ({\bf x}_{n+2},Y_{n+2}),\ldots,({\bf x}_{n+m},Y_{n+m})\)`. Para uma função de perda `\(L\)` qualquer, o risco pode ser aproximado por: $$ \frac{1}{m}{\sum_{i=n+1}^{n+m}L(\widehat{f}({\bf x}_i),y_i)}. $$ --- class: middle # Data splitting e validação cruzada - O procedimento de dividir os dados em dois e utilizar uma parte para estimar o risco é chamado de data splitting (em alguns lugares chamam de Hold-Out). - Uma variação deste método é a **validação cruzada** que faz uso de toda a amostra. Falaremos aqui do Leave-One-Out (LOOCV) e do k-fold. **Leave-One-Out (LOOCV)**: O estimador usado é dado por: $$ \frac{1}{m+n}\sum_{i=1}^{n+m}L(\widehat{f}_{-i}({\bf x}_i), y_i) $$ em que `\(\widehat{f}_{-i}\)` é ajustado ao considerar todas as observações, com exceção da `\(i\)`-ésima delas. **Observações:** Este método possui um alto custo computacional. --- class: middle # Data splitting e validação cruzada **k-fold**: Os dados são aleatoriamente divididos em k-folds (lotes) disjuntos com aproximadamente o mesmo tamanho. Um subconjunto é utilizado para teste e os k−1 restantes são utilizados para treinamento do modelo. Esse processo é realizado k vezes, para que cada um dos k lotes seja a amostra teste uma vez. O estimador do risco é dado por: $$ \frac{1}{n+m}\sum_{j=1}^{k} \sum_{i \in F_J}L(\widehat{f}_{-j}({\bf x}_i), y_i), $$ em que `\(F_1,\ldots,F_k \subseteq \{1,\ldots,n\}\)` são os Ãndices associados a cada um dos lotes e `\(\widehat{f}_{-j}\)` é criado usando todas as observações da base de dados menos aquelas do lote `\(F_j\)`. Quando `\(k=n\)` temos o LOOCV. --- class: middle # Mas e a escolha dos tuning parameters? Uma sugestão: (i) escolher os tuning parameters usando data splitting dentro do treinamento (isto é, dividindo o treinamento em duas partes: treinamento e validação). (ii) comparar o desempenho da "melhor versão" de cada modelo/algoritmo no conjunto de teste.