/invlssvm

Inversão de Matrizes em Bloco Aplicada à Validação Cruzada da Máquina de Vetor de Suporte por Mínimos Quadrados

Primary LanguageC++

invlssvm

A Validação Cruzada requer a inversão de grandes matrizes de dados, denominadas matrizes de kernel. Esse trabalho propõe a técnica da Inversão de Matrizes em Blocos, que auxiliará na otimização da CV, alocando menos memória para esse cálculo. Nele estão explicados todos os passos necessários para adaptação do algoritmo original, assim como testes em consumo de tempo e memória com o objetivo de validar a proposta.

Os testes foram executados no MATLAB utilizando o toolbox LS-SVMlab. O algoritmo BRI havia sido desenvolvido em C++ e utilizava a biblioteca de álgebra linear Armadillo para manipulação de matrizes. Tanto o MATLAB quanto o Armadillo utilizam no seu background as bibliotecas BLAS e LAPACK, portanto as respostas para implementações semelhantes aplicadas a essas duas plataformas seriam exatamente iguais. Faltava agora uma forma de fazer o LS-SVMlab e o BRI se comunicarem, e para isso foi utilizado o C-Mex.

Foram necessárias modificações no arquivo "crossvalidatelssvm.m" do toolbox e do arquivo "BRI.cpp". Elas estão descritas no documento TCC FINAL dentro da pasta "documents", e os códigos podem ser encontrados dentro da pasta "sources". Para execução deste projeto será preciso copiar ambos os arquivos para dentro do toolbox LS-SVMlab, e executar o arquivo "script.m" através do MATLAB. Além disso, as bibliotecas e compiladores descritos no documento devem estar instaladas.