Máquinas de Vetores Suporte. Prof. Dr. Geraldo Braz Junior

Documentos relacionados
2. Redes Neurais Artificiais

INF 1771 Inteligência Artificial

SUPPORT VECTOR MACHINE - SVM

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

Thiago Zavaschi Orientador: Alessandro Koerich Programa de Pós-Graduação em Informática (PPGIa) Pontifícia Universidade

INF 1771 Inteligência Artificial

Inteligência Artificial

Teorema do Limite Central

Classificadores Lineares

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

Redes Neurais (Inteligência Artificial)

Adriana da Costa F. Chaves. Máquina de Vetor Suporte (SVM) para Classificação Binária 2

Exame de Aprendizagem Automática

Máquinas de suporte vetorial e sua aplicação na detecção de spam

Aprendizado de Máquinas. Classificadores Lineares

Mo#vação. Objec#vo. Estudar uma abordagem de desenvolvimento de so9ware orientada pelos objectos. Linguagens usadas: UML (Unified Modeling Language)

Uma Introdução a SVM Support Vector Machines. Obs: Baseada nos slides de Martin Law

Máquinas de Vetores de Suporte Aplicadas à Classificação de Defeitos em Couro Bovino

4 Construção dos Classificadores

Descoberta de Conhecimento em Bancos de Dados - KDD

Aprendizagem de Máquina

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

Máquinas de Vetores de Suporte - Support Vector Machines (SVM) Germano Vasconcelos

SEMINÁRIO DOS ARTIGOS:

Refere-se a um conjunto de problemas encontrados no desenvolvimento de software:

Support Vector Machines

Análise comparativa dos sistemas de gerenciamento de águas subterrâneas do Brasil e dos Estados Unidos

Classificação Linear. André Tavares da Silva.

Teoria do aprendizado

Mineração de Dados - II

2284-ELE/5, 3316-IE/3

Máquinas de Vetores de Suporte

Máquinas de Vetores de Suporte

Boas Maneiras em Aprendizado de Máquinas

Exame de Aprendizagem Automática

Mineração de Dados em Biologia Molecular

MINERAÇÃO DE DADOS. Thiago Marzagão 1 MÁQUINAS DE SUPORTE VETORIAL. 1 Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1 / 27

Redes Neurais e Sistemas Fuzzy

Lucas Ribeiro Reis de Sousa

Aprendizado de Máquina

Kevin Martins Araújo UTILIZAÇÃO DO ALGORITMO DE MÁQUINA DE VETORES DE SUPORTE (SVM) PARA PREDIÇÃO DE DADOS CLIMÁTICOS

PREVISÃO DA DEMANDA BIOQUÍMICA DE OXIGÊNIO POR MEIO DE VARIÁVEIS LIMNOLÓGICAS UTILIZANDO MODELOS DE APRENDIZADO DE MÁQUINA EM PYTHON

Fundamentos de Mineração de Dados

1 o Teste de Aprendizagem Automática

O uso de Máquina de Suporte Vetorial para Regressão (SVR) na Estimação da Estrutura a Termo da Taxa de Juros do Brasil 12

Máquina de Vetores Suporte

ALGORITMO SUBIDA DA ENCOSTA PARA OTIMIZAÇÃO DE PARÂMETROS DE MÁQUINAS DE VETORES SUPORTES

Implementação de Kernel Customizado Aplicado à Análise de Sentimentos em Resenhas de Filmes

Rede RBF (Radial Basis Function)

Modelagem da Rede Neural. Modelagem da Rede Neural. Back Propagation. Modelagem da Rede Neural. Modelagem da Rede Neural. Seleção de Variáveis:

Aula 1: k-nearest Neighbors

Aprendizado de Máquina (Machine Learning)

Windows Server Licenciamento e Preço Todas as Edições

A FALHA NÃO É UMA OPÇÃO

novembro de 2014 Fundação Perseu Abramo - Partido dos Trabalhadores DESEMPENHO ELEITORAL E CONDIÇÕES SOCIOECONÔMICAS DOS MUNICÍPIOS BRASILEIROS

Descoberta de conhecimento em redes sociais e bases de dados públicas

Valoração econômica do lodo de esgoto gerado nas ETE s do Rio de Janeiro

scikit-learn: Aprendizado de máquina 101 com Python

Metodologias integradas de gestão da qualidade ecológica. Métodos de evidência ponderada

Classificação e Predição de Dados - Profits Consulting - Consultoria Empresarial - Serviços SAP- CRM Si

Laboratório Como usar algoritmos de aprendizado de máquina de regressão em Weka

Redes Neurais Artificial. Prática. Inteligência Artificial

Um Tutorial em processamento de sinais para EEG

Categorização de Textos Usando Máquinas de Suporte Vetorial

Uma terra boa para viver trabalhar e investir

Redes Neurais. A Rede RBF. Redes RBF: Função de Base Radial. Prof. Paulo Martins Engel. Regressão não paramétrica. Redes RBF: Radial-Basis Functions

IMPLEMENTAÇÃO DO FREx_SVM: MÁQUINAS DE VETOR SUPORTE PARA CLASSIFICAÇÃO EM MÚLTIPLAS CLASSES

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação

Classificação de Padrões. Abordagem prática com Redes Neurais Artificiais

AÇÕES EM EDUCAÇÃO AMBIENTAL. da Assessoria de Gestão Ambiental da CEDAE

Câmara Virtual Simples

Color Eyes Detector. Duarte Petiz. DCC/FCUP

CEFET/RJ. Aprendizado de Máquina - Trabalho 01

Objetivos. 1. O método desenvolvido usa características de pares de pixeis para fazer estatísticas e formar

Tópicos Especiais em Reconhecimento de Padrões [2COP329] Mestrado em Ciência da. Sylvio Barbon Jr

POLVO-IIDS: Um Sistema de Detecção de Intrusão Inteligente Baseado em Anomalias p. 1/16

Aprendizado de Máquinas. Introdução à Aprendizado Não- Supervisionado

Perfil. 60% Solteiro 20% Casado 10% Outros. 70% Prancha 70% Viagens 30% Roupas de Neoprene. 75% Superior 25% Médio. 65% 1 Vez 35% 2 Vezes ou mais

Mapeamento robótico. Mapeamento semântico. Metodologia. Maquinas de vetores de suporte. Maquinas de vetores de suporte. Modelos ocultos de Markov

Considerações de Desempenho

MODELOS DE APOIO À DECISÃO. Carlos A. Bana e Costa

Laboratório Preprocessamento com WEKA Explorer

Introdução às Máquinas de Vetores Suporte (Support Vector Machines)

Descritores de Imagens

Back Propagation. Dicas para o BP

Fundamentos de Inteligência Artificial [5COP099]

Redes Neurais no WEKA

Árvores de Pesquisa (Parte II)

Reconhecimento de Padrões

Laboratório Classificação com o WEKA Explorer

Introdução à Redes Neurais. Prof. Matheus Giovanni Pires EXA 868 Inteligência Artificial Não-Simbólica B Universidade Estadual de Feira de Santana

3 Máquinas de Suporte Vetorial para regressão

Conceitos de Aprendizagem de Máquina e Experimentos. Visão Computacional

Aprendizagem de Máquina

Agregação de Algoritmos de Aprendizado de Máquina (AM) Professor: Eduardo R. Hruschka Estagiário PAE: Luiz F. S. Coletta

Introdução ao Reconhecimento. Prof. Dr. Geraldo Braz Junior

Mineração de Dados em Biologia Molecular

Mineração de Dados em Biologia Molecular

Transcrição:

Máquinas de Vetores Suporte Prof. Dr. Geraldo Braz Junior

Introdução Máquinas de Vetores de Suporte (MVS) Criada por (VAPNIK, 1998) é um método de aprendizagem supervisionado usado para estimar uma função que classifique dados de entrada em duas classes (normalmente, mas é multiclasses) O objetivo do treinamento através de MVS é a obtenção de hiperplanos que dividam as amostras de tal maneira que sejam otimizados os limites de generalização. 2

Introdução Os algoritmos de treinamento das MVS possuem forte influência da teoria de otimização e de aprendizagem estatística Resultados normalmente melhores comparado a redes neurais Bons exemplos de aplicações em processamento de imagens, bioinformática, categorização de textos, análise se solo... 3

Representação AM 4

Teoria de Aprendizado Estatístico Seja f um classificador e F o conjunto de todos os classificadores que um determinado algoritmo de AM pode gerar. Esse algoritmo, durante o processo de aprendizado, utiliza um conjunto de treinamento T, composto de n pares (xi, yi), para gerar um classificador particular f ϵ F. 5

Teoria de Aprendizado Estatístico Funções representadas pelas curvas de decisão Conjunto de treinamento binário 6

Qual classificador f escolher? Sendo todos dados do domínio gerados de forma independente e identicamente distribuídos (i.i.d) O risco empírico de um classificador f pode ser calculado como: Principio de Minimização de Risco Empírico Nem sempre leva a um bom classificador 7

Limite do Risco Esperado Relaciona o Risco Empírico com o Risco Esperado Garantido com probabilidade 1 teta onde teta ϵ [0,1] h denota a dimensão Vapnik-Chervonenkis (VC) n qtd exemplos no treinamento 8

Dimensão VC Vapnik-Chervonenkis A dimensão VC h mede a capacidade do conjunto de funções F. Quanto maior o seu valor, mais complexas são as funções de classificação que podem ser induzidas a partir de F. Dado um problema de classificação binário, essa dimensão é definida como o número máximo de exemplos que podem ser particionados em duas classes pelas funções contidas em F, para todas as possíveis combinações binárias desses dados. 9

Contribuição Risco Esperado Importância de se controlar a capacidade do conjunto de funções F do qual o classificador é extraído Bom classificador minimiza o Risco Empírico e que possua a uma classe de funções F com baixa dimensão VC h Minimização de Risco Estrutural 10

Como escolher Divide-se inicialmente F em subconjuntos de funções com dimensão VC crescente Principio da Minimização do Risco Estrutural Introduzir uma estrutura (função de classificação) em F Minimiza-se então o limite sobre as estruturas introduzidas. Quanto maior a capacidade menor o risco empírico pela complexidade das funções 11

Principio de Minimização de Risco Estrutural 12

Na prática Útil na definição do procedimento de minimização de risco estrutural Mas... Computar a dimensão VC de uma classe de funções geralmente não é uma tarefa trivial. Soma-se a isso o fato de que o valor de h poder ser desconhecido ou infinito 13

Para funções Lineares Relacionamento do risco esperado com a margem (distância da fronteira de decisão induzida) 14

Erro Marginal Assim o erro marginal pode ser calculador por: Onde I(q) = 1 se q é verdadeiro e I(q) = 0 se q é falso. Um p elevado implica uma menor termo de capacidade 15

Hiperplano Ótimo Como conclusão tem-se que: deve-se buscar um hiperplano que tenha margem elevada e cometa poucos erros marginais, minimizando assim o erro sobre os dados de teste e de treinamento, respectivamente. Esse hiperplano é denominado ótimo 16

MVS Lineares (Rígidas) Definem fronteiras lineares a partir de dados linearmente separáveis Hiperplano linear é definido por Onde em que w. x é o produto escalar entre os vetores w e x w ϵ X é o vetor normal ao hiperplano descrito b/ w corresponde à distância do hiperplano em relação à origem 17

MVS Lineares (Rígidas) Função g(x) divide o espaço X em duas regiões 18

Função Objetivo Logo para se obter maximização da margem, deve-se minimizar a norma de w através de: 19

MVS com Margem Suave Presença de ruídos e outliers Sujeito a restrição: Nova função objetivo: 20

MVS não Linear 21

MVS não Linear Lidam com este problema mapeando o espaço de treinamento para um novo espaço de maior dimensão demonado feature space Através de uma função Ф Mapeamento da figura anterior realizado por: 22

Função Ф Φ: x φ(x) 23

Funções Kernel Comum 24

Usando SVM no opencv

Pacote SVM em ML Funções básicas train: treina SVM com parâmetros informados trainauto: descobre parâmetros para SVM e treina predict: realiza o teste

Vide exemplos

Usando SVM com libsvm

LIBSVM Biblioteca básica com implementação do SVM (hmp:// www.csie.ntu.edu.tw/~cjlin/libsvm/) Java C/C++ Depende de python para rodar alguns scripts Implementações Classificação (C- SVC,nu- SVC) Regressão (episolon- SVR, nu- SVR) Es`mação de distribuição (one- class SVM) U`litários para facilitar o processo de classificação 29

Como usar? Classi>icação Para estratégia dividindo treinamento e teste (ou validação) Colocar a base no formato.libsvm 1 1:0.1 2:2.3 3:1.0-1 1:0.2 2:1.3 3:0.5 1 1:0.3 2:3.3 3:1.2 U`litários básicos (são aplicados na ordem abaixo) 1. svm- scale 2. subset.py 3. grid.py 4. svm- train 5. svm- predict 30

1) svm- scale Serve para normalizar as variáveis. Melhora a convergência do método Faixas definidas pelos parâmetros l (lower) e u (upper) vide outras opções de salvar USO: svm- scale heart_scale > heart_scale.scale Normaliza entre a faixa - 1 a 1, por padrão. *hmps://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/ binary/heart 31

2) subset.py Fica na pasta tools do aplica`vo U`lizado para gerar bases de treinamento e bases de teste deve u`lizar o parâmetro s 1 para garan`r aleatóriedade USO tools/subset.py - s 1 heart_scale.scale 135 train test Gera os arquivos train e test. Train é usado para treinamento (grid e svm- train) Test é usado para avaliar a metodologia (svm- predict) 32

3) grid.py Fica na pasta tools Serve para es`mar os parâmetros do SVM (C e gama) quando for u`lizado o núcleo radial USO tools/grid.py train 33 C Gama Acc

4) svm- train Realiza o treinamento SVM criando um modelo Por padrão usa: - s svm- type = C- SVC (para classificação) - t kernel- type = radial Deve ser informado o C e gama ob`dos na etapa anterior - c XXX - g YYY Pode aplicar v para validação cruzada informando o número de folds 34

4) svm- train USO svm- train - c 8 - g 0.0078125 train modelo Representa quantos vetores foram u`lizados para o modelo de treinamento. Quanto menor, melhor (menor dimensão VC) O arquivo modelo gerado representa o treinamento do SVM 35

5) svm- predict A par`r do arquivo de modelo, usa o arquivo de test para avaliar o método USO svm- predict test modelo rtest Em rtest é gravado o resultado da classificação 36

Arquivo rtest ok Usado para avaliar os resultados Compara cada resposta esperada, com a respost gerada 37 erro

Quando se deseja obter Probabilidades Use o parâmetro b 1 no svm- train para obter as probabilidades por classe USO svm- train b 1 - c 8 - g 0.0078125 train modelo Para o heart_scale Perceba que foram usados os mesmos parâmetros do grid 38

Quando se deseja obter Probabilidades e incluir o mesmo parâmetro no svm- predict USO svm- predict b 1 test modelo rtest 39

Saída com probabilidades ok Usado para avaliar os resultados Aqui cada linha também contém o grau de pertinência entre classes 40

Conjuntos desbalanceados? Desbalanceamento: existem mais representantes da classe 1 do que da classe 0 SVM não necessita de ajustes para conjuntos levemente desbalanceados Para conjuntos fortemenente desbalanceados é necessário ajustar a quan`dade de erro que pode ser suportada Ou para conjuntos onde existe uma necessidade maior de acerto de um conjunto em relação ao outro Pense: Porque? 41

Weighted SVM Uma das maneiras é usando o parâmetro wi VALOR onde i é o número da classe e VALOR a quan`dade de peso Na prá<ca diz ao classificador quanto irá custar a mais errar (VALOR) um indivíduo da classe I O que muda? tools/grid.py - w1 5 train svm- train - c 8 g 0.5 - w1 5 train modelo 42

Como usar? Regressão Para estratégia dividindo treinamento e teste (ou validação) Colocar a base no formato.libsvm 1 1:0.1 2:2.3 3:1.0-1 1:0.2 2:1.3 3:0.5 1 1:0.3 2:3.3 3:1.2 U`litários básicos (são aplicados na ordem abaixo) 1. svm- scale 2. subset.py 3. gridregression.py 4. svm- train 5. svm- predict 43

1) svm- scale Serve para normalizar as variáveis. Melhora a convergência do método Faixas definidas pelos parâmetros l (lower) e u (upper) vide outras opções de salvar USO: svm- scale body_fat > body_fat.scale Normaliza entre a faixa - 1 a 1, por padrão. *hmps://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/ regression/bodyfat 44

2) subset.py Fica na pasta tools do aplica`vo U`lizado para gerar bases de treinamento e bases de teste deve u`lizar o parâmetro s 1 para garan`r aleatóriedade USO tools/subset.py - s 1 body_fat.scale 125 train test Gera os arquivos train e test. Train é usado para treinamento (gridregression e svm- train) Test é usado para avaliar a metodologia (svm- predict) 45

3) gridregression.py Deve ser baixado como add- on do libsvm Serve para es`mar os parâmetros do SVM (C e gama) quando for u`lizado o núcleo radial e do epsilon para regressão USO tools/gridregression.py train 46 C Gama p mean square error

4) svm- train Realiza o treinamento SVM criando um modelo Por padrão usa: - s svm- type = epsilon- SVR (para regressão) - t kernel- type = radial Deve ser informado o C e gama ob`dos na etapa anterior - c XXX - g YYY - p YYY Pode aplicar v para validação cruzada informando o número de folds 47

4) svm- train USO svm- train s 3 - c 4.0 - g 0.00390625 p 0.00390625 train modelo Representa quantos vetores foram u`lizados para o modelo de treinamento. Quanto menor, melhor (menor dimensão VC) O arquivo modelo gerado representa o treinamento do SVM 48

5) svm- predict A par`r do arquivo de modelo, usa o arquivo de test para avaliar o método USO svm- predict test modelo rtest Em rtest é gravado o resultado da classificação 49

Arquivo rtest The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again. Usado para avaliar os resultados Compara cada resposta esperada, com a respost gerada 50

Usando o Weka a nosso favor 51

O que é Soyware livre, voltado para a mineração dados Mantenedora principal: University of Waikato (hmp:// www.cs.waikato.ac.nz/ml/weka/) 52

Weka Explorer Usando SVM Inicialmente deve ser linkar o libsvm com o weka Maneira #1: incluir no classpath java - classpath $CLASSPATH:weka.jar:libsvm.jar weka.gui.guichooser Maneira #2: maior parte das vezes já está incluida no pacote completo do weka 53

Weka Explorer 54

Filter Filter - > unsupervised - > amribute - > Normalize 55

Classify 56

Ajuste de Parâmetros Meta - > GridSearch 57

Ajuste de Parâmetros Meta - > GridSearch classifier: escolha libsvm evalua`on: accuracy (veja se é o melhor para você) filer: escolha Allfilter (não vamos fazer nenhuma filtragem) Em: Xexpression = pow(base,i) Xmax = 15 Xmin = - 5 Xproperty = classifier.cost Xstep = 1 Xbase = 2. 58

Ajuste de Parâmetros Em: Yexpression = pow(base,i) Ymax = 3.0 Ymin = - 15 Yproperty = classifier. gamma Ystep = 1 Ybase = 2 E SALVE! 59

Ajuste de Parâmetros Ajuste o percentual! 60

Novo Resultado 61

Parâmetros 62

Detalhe Para fazer sucessivos treinos e testes no Weka, com bases aleatórias: Gere por fora bases aleatórias para ele ou U`lize o filtro Randomize, sempre mudando o seed!!! 63

Referências Ana Carolina Lorena e André C. P. L. F. de Carvalho. Uma Introdução às Support Vector Machines C.J.C. Burges. A tutorial on support vector machines for pattern recognition. Data Mining and Knowledge Discovery, 2(2):955-974, 1998. http:// citeseer.nj.nec.com/burges98tutorial.html LIBSVM: http://www.csie.ntu.edu.tw/~cjlin/libsvm/ 64