• Nenhum resultado encontrado

algoritmos de classificação. Dos restantes modelos não selecionados foram sele- cionados 3 para testes, correspondentes a 30% do conjunto de dados. A opção por fixar em 3 a quantidade de modelos para teste prende-se com a necessidade de comparar os resultados com a técnica de Holdout, onde são utilizados também 3 modelos para testes.

3.5

Extração de caraterísticas

Cada um dos diferentes métodos de extração de caraterísticas transforma os si- nais em diferentes formatos de resultados, tendo os mesmos influência direta no desempenho do algoritmo de classificação automática. Foram assim experimen- tados os seguintes métodos de extração conjugados com os vários algoritmos de classificação na tentativa de encontrar a conjugação com melhores desempenhos.

Extração de caraterísticas com DWT

A extração de caraterísticas através de DWT (ver secção 2.3.1) foi concretizada usando o package R Wavelets ([43]), sendo selecionada a sua parametrização a partir da parametrização que apresentou melhores resultados na tese de Concei- ção [17]), ou seja, com o filtro Coiflet 6.

Foram utilizadas quatro diferentes parametrizações onde se variaram apenas os filtros, Coiflet e Daubechies, com diferentes comprimentos 6, 8 e 12, mantendo-se os restantes parâmetros constantes: com 5 níveis de decomposição e o tipo de sinal periódico.

• Esta seleção de quatro parametrizações foi obtida de forma empírica e por experimentação prévia de diversas outras parametrizações.

Extração de caraterísticas com PCA

Conforme referido na secção 2.3.3 a análise de componentes principais, PCA, pro- cura encontrar correlações entre as várias caraterísticas (componentes) do sinal original como forma de redução da quantidade de caraterísticas a utilizar na clas- sificação. Isso é conseguido através da análise prévia das caraterísticas de todo o conjunto de dados (de treino e, posteriormente de teste), com o objetivo de conservar apenas os componentes com maior influência na variância das suas ca- raterísticas [26].

Neste caso foram experimentadas seis diferentes parametrizações obtidas de forma empírica e por experimentação de diversas outras parametrizações. Neste caso os valores de tolerância variaram entre 106 (0, 000001%) e 101 (0, 1%) e o número

3. PROCESSO DE CLASSIFICAÇÃO 3.5. Extração de caraterísticas

máximo de componentes principais (rank) entre 20 e 50.

Com estas parametrizações a quantidade de caraterísticas resultantes do processo de extração foi reduzida para valores entre as 6 e as 51.

• Relembra-se que os sinais depois de removidos os valores iniciais e finais com variância próxima do zero ficaram com 1.525 caraterísticas, ou 6.100 quando se concatenaram os sinais das 4 antenas).

Extração de caraterísticas com Wavelets interpolatórias

Para a obtenção de Wavelets interpolatórias dos sinais de micro-ondas, foi reali- zada a adaptação do código em linguagem C desenvolvido no âmbito da tese de doutoramento de Pinho [1] para sua utilização no ambiente R. O código foi adap- tado e integrado no R através da função dyn.load (Foreign Function Interface). Foi utilizada a função spr_data_to_sparse (3.1) que executa a interpolação, por ní- veis, de um dado vetor u.

1 void spr_data_to_sparse (double* u, int u_size, int* ell_p, int* n0_p, int* interp_ points_p, double* eps_p)

{

3 double *u_new; int len = u_size; 5 len--; len |= len >> 1; 7 len |= len >> 2; len |= len >> 4; 9 len |= len >> 8; len |= len >> 16; 11 len++;

u\_new = (double *) malloc(len*sizeof(double)); 13 memcpy(u\_new, u, u\_size*sizeof(double));

int ii;

15 for(ii=u\_size; ii<len; ii++) { u\_new[ii] = 0.0;

17 }

int ell; int n0; int interp\_points; double eps;

19 ell = *ell\_p; n0 = *n0\_p; interp\_points = *interp\_points_p; eps = *eps\_p; int n = (n0-1) * (1<<ell) + 1; 21 int spc = 1; int i, j; 23 for (j=ell; j >= 1; j--) 25 { spc <<= 1;

27 for (i=spc/2; i < n; i+=spc) {

29 if (!\_isnan(u_new[i])) {

31 if (fabs(u\_new[i] - interp2(u\_new, ell, n0, interp\_points, i, spc)) < eps) {

3. PROCESSO DE CLASSIFICAÇÃO 3.5. Extração de caraterísticas

33 u\_new[i] = NAN; }

35 }

} 37 }

memcpy(u, u\_new, u\_size*sizeof(double)); 39 }

Listagem 3.1: Função spr_data_to_sparse

A função coloca a NAN os pontos que não são necessários para reconstruir a função, ou seja, os pontos em que o valor calculado por interpolação dos pontos vizinhos é muito próximo (ou igual) do valor verdadeiro (a menos de um erro eps). ell representa o número de níveis de decomposição, n0 a quantidade de amostras no nível grosseiro e interp_points o tipo de interpolação (2 para interpo- lação binária, ou 4 para interpolação cúbica).

As três parametrizações utilizadas nos testes efetuados foram obtidas de forma empírica após a experimentação de várias possibilidades de conjunção de valo- res. Assim, foram utilizados para o número de níveis de decomposição os valores 4 e 5 e para valor do erro 104e 2 104. O valor para a quantidade de amostras no nível grosseiro foi calculado através da fórmula (3.1).

n0 psizeo f puq  1q{p2ellq 1 (3.1) Os resultados obtidos com as parametrizações utilizadas mostram que se obtém melhores resultados com menor valor de ϵ e com 5 níveis de decomposição, quer para a classificação de Maligno quer para a classificação de Grande (tabela 3.2). Tabela 3.2: Resultados das Wavelets interpolatórias com diferentes parametriza- ções

A aplicação de Wavelets interpolatórias aos sinais revelou-se bastante eficaz ao nível da simplificação do sinal, conforme se pode observar comparando as duas figuras, Figura 3.7 e Figura 3.8, que representam o mesmo sinal respetivamente antes da interpolação e após a interpolação.

3. PROCESSO DE CLASSIFICAÇÃO 3.5. Extração de caraterísticas

0 500 1000 1500

-0.05

0.00

0.05

Sinal a interpolar (1525 pontos)

tempo

amplitude

Figura 3.7: Sinal original - a interpolar

* ** * * * ** * * * * * * *** * * * * * * * ** * * * * **** * * * * * ** ** * * * * * * * * * * * * * * *** 0 500 1000 1500 -0.05 0.00 0.05

Sinal interpolado (60 pontos não NaN de 1525 pontos)

tempo

amplitude

Figura 3.8: Sinal interpolado

Verifica-se neste exemplo uma simplificação de 96%, ou seja, apenas 60 pontos (de 1.525) são necessários para representar este sinal. Todos os restantes pontos

3. PROCESSO DE CLASSIFICAÇÃO 3.5. Extração de caraterísticas

podem ser obtidos por interpolação destes 60.

Efetivamente este método permite uma grande simplificação dos sinais, mas o seu resultado não pode ser diretamente aplicado aos algoritmos de classificação. Atendendo a que essa simplificação é conseguida pela “eliminação” de pontos do sinal (os que conseguem ser obtidos pela interpolação dos seus vizinhos), nem todos os sinais, na sua versão interpolada, irão ter valores significativos nas mes- mas abcissas. O que impede a utilização dos sinais assim representados no treino dos algoritmos de classificação.

Foi, portanto, necessário encontrar uma forma de uniformizar todos os sinais por forma a que todos apresentem valores nas mesmas abcissas (ou seja, todos tenham valores nas mesmas caraterísticas). Com esse objetivo determinou-se o conjunto de abcissas que tinha valores significativos em pelo menos um dos si- nais (de ambos os conjuntos de treino e de teste). “Completaram-se” depois todos os sinais interpolados de modo a todos ficarem com valores significativos nesse conjunto de abcissas, colocando-lhe o valor original do sinal nas abcissas que ti- nham sido “eliminadas”. Foram depois removidas as abcissas que não tinham valor significativo em nenhum dos sinais obtendo-se um sinal interpolado uni- formizado conforme representado na Figura 3.9 (no caso deste conjunto de dados foram apenas 79 abcissas tinham valores significativos em pelo menos um dos si- nais). * * * * * * * * * * * * ** * * * * * * *** * * * * * * * * * ** * * * * * * * * ** * ** * * * * *** * * ** * ** * * * * * * * * * * * * * * * * * * 0 20 40 60 80 -0.05 0.00 0.05

Sinal interpolado padronizado (79 pontos)

tempo

amplitude

Documentos relacionados