• Nenhum resultado encontrado

Uma m´aquina de vetores de suporte ´e um classificador formalmente definido por um hiperplano de separa¸c˜ao. O objetivo do SVM ´e encontrar dentre todos os hiperplanos o que minimiza o risco emp´ırico, isto ´e, procura maximizar a margem do classificador linear. A figura 4 tem como exemplo trˆes hiperplanos para a classifica¸c˜ao dos dados, ´e poss´ıvel perceber que o classificador linear que possui a maior margem ´e o destacado em verde.

Figura 4: Poss´ıveis hiperplanos.

Na imagem que segue est˜ao destacados e numerados por (2) os vetores de suporte, tamb´em conhecidos como pontos cr´ıticos. J´a em azul claro, indicado pelo n´umero (1), a margem do classificador linear.

Mas em situa¸c˜oes reais, n˜ao permitir que alguns dados permane¸cam na margem de- finida pelos hiperplanos reduz a generaliza¸c˜ao, incapacitando de lidar com conjuntos de treinamento mais gerais. Por isso, a ado¸c˜ao das margens suaves, onde h´a o relaxamento de restri¸c˜oes impostas ao problema de otimiza¸c˜ao com a introdu¸c˜ao de vari´aveis de folga. As SVMs obtidas permitindo a aplica¸c˜ao desse procedimento que permite a ocorrˆencia de alguns erros de classifica¸c˜ao s˜ao referenciadas como SVMs com margens suaves.

As SVMs lineares de margens suaves admitem a presen¸ca de alguns ru´ıdos e outliers al´em de apresentar desempenho suficiente para problemas linearmente separ´aveis, mas alguns conjuntos de dados exigem fronteiras mais complexas que lineares.

Com o emprego de um procedimento motivado pelo teorema de Cover, ´e poss´ıvel a generaliza¸c˜ao de SVMs para problemas n˜ao lineares.

Teorema 3.7.1 Teorema de Cover [8]

Um conjunto de dados n˜ao lineares em um espa¸co de alta dimens˜ao ´e mais suscet´ıvel a ser linearmente separ´avel do que em um espa¸co de menor dimens˜ao, na condi¸c˜ao de que o espa¸co n˜ao seja excessivamente povoado.

Mapeando as amostras de treinamento do espa¸co original e transformando por meio de uma fun¸c˜ao para um espa¸co de maior dimens˜ao, chamado de espa¸co de caracter´ısticas, se torna vi´avel a aplica¸c˜ao do SVM linear.

Na imagem que segue em 7(a), um exemplo do espa¸co de entrada, com os dados representados em IR2 por suas caracter´ısticas. J´a em 7(b) apresenta em IR3 o espa¸co de caracter´ısticas onde os dados representados s˜ao transformados da fun¸c˜ao Φ(X, Y ) = (X2,√2XY, Y2), tornando poss´ıvel uma separa¸c˜ao dos dados por um plano.

Figura 6: Mapeamento de dados de entrada para um espa¸co de maior dimens˜ao.

(a) Espa¸co de entrada (b) Espa¸co de caracteristicas

Mas a fun¸c˜ao Φ pode ter dimens˜ao muito alta e ser custosa computacionalmente. Todavia, a informa¸c˜ao relevante sobre o mapeamento ´e de como realizar o produto escalar

entre os pontos no espa¸co de caracter´ıstica, o que pode ser feito pela fun¸c˜ao kernel, desde que siga as condi¸c˜oes impostas pelo Teorema de Mercer [9].

Um kernel ´e uma fun¸c˜ao cont´ınua que de duas vari´aveis x e y as mapeia para um valor real tal que, k(x, y) = k(y, x), isto ´e, uma fun¸c˜ao sim´etrica. Mais detalhes no anexo 11.1. O objetivo da SVM ´e de encontrar um hiperplano que separe os dados do espa¸co caracter´ıstica de forma ´otima. Para os dados n˜ao linearmente separ´aveis originalmente, a utiliza¸c˜ao do Kernel evita o mapeamento expl´ıcito dado pela fun¸c˜ao Φ e torna o problema linearmente separ´avel. Pelo Teorema de Mercer [9], a fun¸c˜ao Kernel recebe os pontos do espa¸co de entrada e calcula o produto escalar entre eles no espa¸co caracter´ıstica, desde que defina Kernel como matriz positivamente definida e que tenha autovalores maior do que zero.

Os Kernels mais utilizados s˜ao:

• Polinomial

K(x, y) = (γ.(xTy) + c)d,

onde os Kernels polinomiais com o parˆametro d = 1 ´e considerado Kernel Linear. • Radial

K(x, y) = e−γ||x−y||2 • Tangente Hiperb´olica

K(x, y) = tanh(γ.(xTy) + c),

as condi¸c˜oes de Mercer s˜ao satisfeitas apenas para alguns valores de γ e de c.

Para a obten¸c˜ao de um classificador por meio do uso de SVMs, ´e preciso a escolha de uma fun¸c˜ao Kernel e seus parˆametros, assim como de um algoritmo para a determina¸c˜ao do hiperplano ´otimo. A escolha do Kernel e dos parˆametros considerados tem efeito no desempenho do classificador obtido, pois eles definem a fronteira de decis˜ao induzida.

4

Aplica¸c˜ao

Foi utilizado o pacote e1071[3], no R [2]. Segue as etapas para a aplica¸c˜ao do SVM no R:

Primeiro ´e necess´ario instalar o pacote e chamar a biblioteca.

install.packages("e1071", dependencies = T) library(e1071)

Ent˜ao ´e criada uma amostra de teste e outra de treinamento. A amostra de teste ´e qual ser´a utilizada para verificar a adequa¸c˜ao do modelo, enquanto a amostra de treinamento ´e utilizada na cria¸c˜ao do modelo. O tamanho da amostra de teste geralmente ´e menor que a amostra de treinamento, isto ´e, N ≥ n

amostra_teste = Amostra de tamanho n da popula¸c~ao de estudo

amostra_treinamento = Amostra de tamanho N da popula¸c~ao de estudo

Para a constru¸c˜ao do modelo foi utilizado o tipo “C-classification” para a classifica¸c˜ao da vari´avel X , o pacote tamb´em tem op¸c˜ao para regress˜ao. No trabalho foram testados os modelos com kernel linear e radial, “linear” e “radial” respectivamente.

modelo_svm = svm(x ~ ., data=amostra_treinamento, method="C-classification", kernel="linear")

´

E poss´ıvel visualizar os vetores de suporte, a divis˜ao realizada pelo modelo e a real classi- fica¸c˜ao. Para observar graficamente a modelagem, utiliza-se o seguinte comando.

plot(x=modelo_svm, data=amostra_treinamento)

Ent˜ao ´e realizada a predi¸c˜ao com a amostra de teste. Utilizada para ver se o modelo est´a bem adequado para a popula¸c˜ao real, e n˜ao s´o para a amostra de treinamento.

4.1

Duas popula¸c˜oes ambas com caracter´ıstica expo-

Documentos relacionados