Prévia do material em texto
<p>Support Vector Machine - SVM</p><p>O SVM é um modelo popular e versátil capaz de realizar</p><p>classificações, regressões e detecção de outliers. Esse modelo</p><p>funciona muito bem para classes linearmente separáveis.</p><p>Linearmente separáveis?</p><p>São classes que podem ser separadas facilmente com uma linha reta.</p><p>SVM</p><p>SVM</p><p>SVM</p><p>SVM</p><p>Seaborn é uma biblioteca de visualização de dados em Python que permite criar gráficos</p><p>estatísticos. Ela é baseada no Matplotlib, mas oferece uma interface mais avançada e estilizada</p><p>para a criação de gráficos.</p><p>O Seaborn é essencial para quem trabalha com análise de dados e visualização, pois permite criar</p><p>gráficos elegantes e informativos.</p><p>Pandas é uma biblioteca para Ciência de Dados de código aberto (open source), construída sobre</p><p>a linguagem Python, e que providencia uma abordagem rápida e flexível, com estruturas robustas</p><p>para se trabalhar com dados relacionais (ou rotulados), e tudo isso de maneira simples e intuitiva.</p><p>SVM</p><p>SVM</p><p>Calculo de Margem</p><p>O modelo SVM traça uma reta e</p><p>calcula as distancias dos pontos</p><p>de cada classe e vai buscar</p><p>maximizar as distancia, assim, o</p><p>modelo vai optar pela reta que</p><p>melhor se distancia de todas as</p><p>classes uniformemente.</p><p>SVM</p><p>Calculo de Margem</p><p>O modelo SVM traça uma reta e</p><p>calcula as distancias dos pontos</p><p>de cada classe e vai buscar</p><p>maximizar as distancia, assim, o</p><p>modelo vai optar pela reta que</p><p>melhor se distancia de todas as</p><p>classes ao mesmo tempo.</p><p>E se o conjunto de dados não for Linear?</p><p>Com truque Kernel</p><p>SVM</p><p>Linear</p><p>Polinomial</p><p>rbf</p><p>É necessário saber:</p><p>Característica dos dados;</p><p>Seu formato;</p><p>Se são linearmente separáveis;</p><p>Não sendo, utilizar o kernel.</p><p>O kernel tem processamento mais pesado, então precisa</p><p>usá-lo se realmente for necessário.</p><p>SVM</p><p>Passamos as</p><p>característica</p><p>s e o modelo</p><p>retorna a</p><p>classe</p><p>corresponden</p><p>te.</p><p>SVM</p><p>Verificando a</p><p>classe que</p><p>corresponde ao</p><p>conjunto de teste</p><p>que foi passado.É dessa forma que sabemos o</p><p>desempenho do modelo?</p><p>SVM</p><p>Medida de desempenho de um modelo?</p><p>SVM – Método Fit</p><p>O método fit é uma parte fundamental do processo de treinamento de modelos de machine</p><p>learning em bibliotecas como scikit-learn. Quando você vê algo como clf.fit(X_train, y_train),</p><p>isso significa que você está ajustando (ou treinando) um modelo chamado clf usando os</p><p>dados de entrada X_train e as respectivas saídas y_train.</p><p>clf: Este é o classificador ou modelo que você está utilizando (por exemplo, uma árvore de</p><p>decisão, uma regressão logística, etc.). O nome clf é uma convenção comum, onde "clf"</p><p>significa "classifier".</p><p>X_train: Este é o conjunto de dados de entrada (features) que você usará para treinar o</p><p>modelo. Geralmente, é uma matriz ou DataFrame onde cada linha representa uma amostra e</p><p>cada coluna representa uma característica.</p><p>y_train: Este é o vetor de saída (rótulos/label) que você deseja que o modelo aprenda a</p><p>prever. Cada entrada em y_train corresponde à saída correta para a amostra em X_train.</p><p>Métricas de Avaliação do Classificador</p><p>Acurácia</p><p>A acurácia é uma métrica que indica a performance de um modelo de Machine Learning</p><p>em uma tarefa de classificação. Ela é calculada dividindo o número de previsões corretas</p><p>pelo número total de previsões.</p><p>A acurácia é um conceito muito utilizado para avaliar a qualidade do desempenho de</p><p>algoritmos de Machine Learning.</p><p>Então a acurácia representa a fração de previsões corretas realizado no conjunto de</p><p>testes.</p><p>Acurácia = Número de previsões correta</p><p>__________________________ = 80/100 = 0,8 equivale 80%</p><p>Número total de previsões(entradas/amostras)</p><p>Por exemplo, se um modelo previu corretamente 80 casos de 100, a acurácia seria de 80%.</p><p>Métricas de Avaliação do Classificador</p><p>Métricas de Avaliação do Classificador</p><p>A acurácia desempenha um papel crucial na avaliação de modelos preditivos,</p><p>pois fornece uma visão clara de quão bem um modelo está se saindo em suas</p><p>previsões. Em aplicações práticas, como diagnósticos médicos, previsão de</p><p>vendas ou detecção de fraudes, uma alta acurácia é desejável, pois implica que</p><p>as decisões tomadas com base nas previsões do modelo são mais confiáveis.</p><p>Métricas de Avaliação do Classificador</p><p>Apesar de sua utilidade, a acurácia tem limitações significativas, especialmente em cenários</p><p>onde as classes estão desbalanceadas.</p><p>Por exemplo, em um conjunto de dados onde 95% das observações pertencem a uma classe</p><p>e apenas 5% a outra, um modelo que simplesmente prevê a classe majoritária terá uma</p><p>acurácia de 95%, mas não será útil para identificar a classe minoritária.</p><p>Portanto, é crucial considerar outras métricas que possam fornecer uma visão mais</p><p>equilibrada do desempenho do modelo, como a matriz de confusão, que detalha os</p><p>verdadeiros positivos, falsos positivos, verdadeiros negativos e falsos negativos.</p><p>Limitações da Acurácia</p><p>Dataset Iris está bem balanceado onde temos:</p><p>150 amostras</p><p>50 de cada tipo (Setosa, versicolor, virginica)</p><p>Métricas de Avaliação do Classificador</p><p>Matriz da Confusão</p><p>A matriz de confusão é uma ferramenta muito útil para visualizar o desempenho de um</p><p>modelo de machine learning.</p><p>Ela mostra o número de previsões corretas e incorretas que o modelo fez para cada</p><p>classe.</p><p>Cada linha representa uma classe real</p><p>Cada coluna uma classe prevista</p><p>Onde extrairemos dela mais 4 conceitos:</p><p>Verdadeiros positivos</p><p>Falsos positivos</p><p>Verdadeiros negativos</p><p>Falsos negativos</p><p>O email é ou não spam</p><p>Verdadeiro</p><p>Métricas de Avaliação do Classificador</p><p>Exemplificando</p><p>Imaginem a base de dados de email e queremos classificar se o email</p><p>é spam ou não spam.</p><p>O classificador vai responder positivo se for spam e negativo senão</p><p>for spam</p><p>Métricas de Avaliação do Classificador</p><p>Nesse caso um</p><p>verdadeiro positivo</p><p>vai ser quando o</p><p>classificador informar</p><p>que é positivo, ou</p><p>seja, é spam e de</p><p>fato é spam.</p><p>Métricas de Avaliação do Classificador</p><p>Nesse caso um</p><p>falso positivo vai</p><p>ser quando o</p><p>classificador</p><p>informar que é</p><p>positivo, ou seja,</p><p>é spam, mas na</p><p>verdade a</p><p>resposta seria</p><p>negativa, não é</p><p>spam.</p><p>Métricas de Avaliação do Classificador</p><p>Nesse caso um</p><p>verdadeiro</p><p>negativo vai ser</p><p>quando o</p><p>classificador</p><p>informar que é</p><p>negativo, ou seja,</p><p>não é spam e,</p><p>realmente, não é</p><p>spam.</p><p>Métricas de Avaliação do Classificador</p><p>Nesse caso um</p><p>falso negativo</p><p>vai ser quando o</p><p>classificador</p><p>informar que é</p><p>negativo, ou seja,</p><p>não é spam, mas</p><p>é spam.</p><p>Métricas de Avaliação do Classificador</p><p>A partir desses conceitos temos mais duas métricas: Precisão e Revocação.</p><p>Precisão é uma fração onde no numerador teremos os verdadeiros positivos.(Ou sela,</p><p>Onde o classificador entendeu como positivo e de fato são positivos.</p><p>E no denominador teremos todos os positivos previstos, ou seja, os positivos que o</p><p>algoritmo retornou.</p><p>Métricas de Avaliação do Classificador</p><p>Revocação é uma fração onde no numerador teremos os verdadeiros positivos.</p><p>E no denominador teremos todos os verdadeiros positivos e falsos negativos.</p><p>Métricas de Avaliação do Classificador</p><p>Esses dados são complementares nas análise de Machine Learning.</p><p>Exemplo:</p><p>Classificação de vídeos para criança é melhor que algoritmo erre ao</p><p>indicar que não é para criança, embora seja.</p><p>Do que classificar como sendo de criança e não é.</p><p>Nesse caso iremos analisar bem os dados de precisão, pois queremos</p><p>diminuir a quantidade de falsos positivos.</p><p>Métricas de Avaliação do Classificador</p><p>Esses dados são complementares nas análise de Machine Learning.</p><p>Exemplo:</p><p>Com base nas características de uma pessoa, o algoritmo tenta</p><p>classifica se essa pessoa tem propensão a determinada doença grave.</p><p>Então não queremos que o algoritmo apresente falsos negativos, por</p><p>exemplo, informar que a pessoa não ter a doença e na verdade ela tem,</p><p>o que pode retardar um possível tratamento.</p><p>Nesse caso diminuir a quantidade de falsos negativos.</p><p>Métricas de Avaliação do Classificador</p><p>As duas são importantes a depender do problema.</p><p>Para ter um equilíbrio entre elas:</p><p>Pontuação F1 – que é uma média harmônica</p><p>dessas duas medidas.</p><p>Métricas de Avaliação do Classificador</p><p>As duas são importantes a depender do problema.</p><p>Para ter um equilíbrio entre elas:</p><p>Pontuação F1 – que é uma média harmônica dessas duas medidas.</p><p>Métricas de Avaliação do Classificador</p><p>Métricas de Avaliação do Classificador</p><p>Gerando Relatório</p><p>Gerando Relatório</p><p>Número de amostra de cada espécie</p><p>Composição AV1</p><p>AV1 10 questões</p><p>Atividade Consumir Dataset 2pt – escolher um dataset no scikit</p><p>learn (distintos)</p><p>Fazer download</p><p>Criar um dataframe do dataset</p><p>Utilizar matplotlib para mostrar a distribuição dos valores do dataset.</p><p>Separação do dados de train e test.</p><p>Obs.: Código exemplo no primeiro slide.</p><p>sklearn.datasets — scikit-learn 1.5.2 documentation</p><p>https://scikit-learn.org/stable/api/sklearn.datasets.html</p><p>Vanessa Rodrigues| Professora de TI</p><p>Email: 011901035@prof.uninassau.edu.br</p><p>https://www.linkedin.com/in/vanessa-rodrigues-developer</p><p>https://www.linkedin.com/in/vanessa-rodrigues-developer</p>