Você está na página 1de 10

Universidade Federal de São Paulo

Instituto de Ciência e Tecnologia


Graduação em Engenharia Biomédica
Curso de Engenharia Médica Aplicada (ano 2023)

PROCEDIMENTO DE SELEÇÃO ESCALAR DE CARACTERÍSTICAS +


PROCEDIMENTO DE SELEÇÃO VETORIAL DE CARACTERÍSTICAS
Wallace Aparecido Mercante (RA: 120655)

Resumo: Machine Learning é um campo que um de seus objetivos é extrair uma melhor análise de
dados. De acordo com Muller,2016[1] Machine Learning é um método de utilizar algoritmos para
organizar dados e reconhecer padrões, podendo até mesmo, fazer com que o computador aprenda
com os modelos e gere outputs sem necessidade de programação (Inteligência Artificial). Um dos
processos mais cruciais do Machine Learning é a seleção de características. Na prática, para dados
finitos, inicialmente, se o número de características aumenta, há melhor desempenho, entretanto, se
o número de características aumentar demais, aumenta também a probabilidade de erro, chamamos
esse fenômeno de “fenômeno de pico”, e devido a isso, julga-se necessário selecionar as melhores
características e descartar as características menos relevantes. Há duas abordagens para a seleção de
características, sendo elas a seleção escalar de características e a seleção vetorial. A seleção escalar
de características trata as características de forma individual, de acordo com uma métrica definida.
Computacionalmente é um método simples e leve também, visto que, não envolve atividades
matriciais complexas, porém, não considera a interação e relação de uma característica com a outra.
A seleção vetorial de características, apesar de mais complexa, leva em conta a relação que uma
característica tem com as outras. Neste trabalho será abordado de maneira mais específica esse
tema.

1. INTRODUÇÃO

Machine Learning é um campo que um de seus objetivos é extrair uma melhor análise de dados. De
acordo com Muller,2016[1] Machine Learning é um método de utilizar algoritmos para organizar
dados e reconhecer padrões, podendo até mesmo, fazer com que o computador aprenda com os
modelos e gere outputs sem necessidade de programação (Inteligência Artificial). Um dos processos
mais cruciais do Machine Learning é a seleção de características. [1]
Segundo Hastie,2009[2], a seleção de características consiste em encontrar um subconjunto de
dados a partir de um conjunto total. Diversos problemas encontram dados que são pouco relevantes
para determinada análise, e para simplificar o problema, faz-se necessário achar um subconjunto
desses dados apenas com os dados mais importantes. Um exemplo prático é o diagnóstico de
doenças. Pacientes têm várias características, algumas mais relevantes que diagnosticam a doença e
outras menos relevantes. A seleção de características pode pegar os dados mais relevantes,
facilitando a interpretação e diagnóstico do médico. [2]
Há duas abordagens para a seleção de características, sendo elas a seleção escalar de características
e a seleção vetorial. Ambas serão explicadas e discutidas mais profundamente no decorrer deste
trabalho.

1
2. “PEAKING PHENOMENON”

Pode haver erros bem comuns para matrizes que representam classes, contendo valores com várias
características, visto que o erro de um classificador projetado pode aumentar e depois diminuir à
medida que os recursos de sua matriz crescem. De acordo com Chao Sima, 2008[3], chamamos
essa situação de Fenômeno de pico (“Peaking phenomenon”), e tal propriedade pode dificultar a
análise dos dados.[3][4]
Na prática, para dados finitos, inicialmente, se o número de características aumenta, há melhor
desempenho, entretanto, se o número de características aumentar demais, aumenta também a
probabilidade de erro. A imagem a seguir mostra o que acontece na prática se modifica o número de
recursos “l” juntamente com o tamanho do conjunto de dados N. Veja que inicialmente os valores
da probabilidade de erro diminuem ao passo que as características aumentam, porém, a partir de um
valor específico, quanto mais características, maior é a probabilidade de erro. O valor mínimo “l”
das curvas é dado pela eq 1. [3][4]

Figura 1: Fenômeno de pico demonstrando que inicialmente o aumento de características melhora


o valor dos dados, e diminui a probabilidade de erro, porém após um certo valor, o aumento de
características aumenta a probabilidade de erro. Fonte: Theodoridis, S. e Koutrombas, K. "Pattern
Recognition", 4a edição, Academic Press (Elsevier), 2009

𝑁
𝑙= α
(eq 1)
O valor de α varia geralmente de 2 a 10. [3]
Há uma dificuldade clássica em aprendizado de máquina que é a relação entre o número de
características e o número de pontos na amostra, geralmente essa relação é invertida. O ideal para se
trabalhar com qualquer tipo de relação de dados seria um número grande de amostras e um número
pequeno de características, o tamanho de amostras na prática, porém, geralmente é pequeno, e
gigante é o número de características. Essa relação dificulta a análise de dados e manifesta-se no
problema de pico: Em alguns casos, analisar e trabalhar com dados que têm várias características é
mais difícil que trabalhar com dados que têm poucas características. O problema de pico leva então
à necessidade de analisar quais características são mais relevantes que as outras e influenciam mais
para o diagnóstico necessário. Para isso, se faz necessário a seleção escalar e vetorial de
características. [3][4]

2
3. TESTE ESTATÍSTICO DE HIPÓTESES

Para fazer uma pré seleção de características de acordo com Theodoridis, 2009[4] consiste em
analisar se as características diferem significativamente, após isso, ela analisa as características que
melhor se separam umas das outras, baseado em um critério.Esse critério pode ser dado em um teste
de hipóteses.[4]
Consideramos H1 como valores de características que diferem significantemente, e H0 como valores
de características que não se separam significantemente.Trataremos então de cálculos para rejeitar
ou não a hipótese de H0. Os cálculos feitos serão através da exploração de informações estatísticas.
É importante salientar que dependendo da decisão tomada na seleção escalar a probabilidade de erro
pode ser maior.[4]
Considerando que temos um parâmetro Ө, nosso interesse será aplicar o seguinte teste de hipótese:
𝐻1 = θ1 ≠ θ𝑜 (eq 2)
𝐻0 = θ = θ𝑜 (eq 3)

As equações (eq 2) e (eq 3) são utilizadas para uma função específica, que será usada em cada
característica de nossa matriz. A seguir, uma abordagem sistemática para tomar decisões estatísticas
com base em amostras. Primeiramente, teremos um cenário em que amostras xi = 1,2,3…N serão
coletadas de uma variável x. Uma função “f” deve ser selecionada, produzindo uma variável
estatística “q” em função das amostras “xi”. [4][5]
Chamaremos de “D” o intervalo de alta probabilidade sobre a hipótese Ho, e “D” o intervalo de
baixa probabilidade. Veja que se o valor de “q” resultante das amostras “xi” estiverem em “D”
aceitamos Ho, caso contrário, o rejeitamos. Graficamente, chama-se “D” de intervalo de aceitação,
e “D” de intervalo crítico, a função aplicada a nossa matriz de características também é chamada de
estatística de teste. [4][5]
É interessante também ser analisada a probabilidade de tomar uma decisão errada. Supondo que Ho
é verdadeiro, então a probabilidade da decisão tomada ser um erro é P(q Є D|Ho)☰ p. Essa
probabilidade é igual a integral de Pq(q|Ho)(Pq(q;θo)). Essa relação pode ser observada no gráfico a
seguir:

Figura 2: Curva com dois intervalos definidos, representando altas e baixas probabilidades sob a
hipótese nula Ho. Se o valor “q” estiver em D, a hipótese nula é aceita; Se estiver em D, a hipótese
nula é rejeitada.

3
Chamamos “p” de nível de significância, ele é selecionado para definir o intervalo crítico de
aceitação, denotado como Dp. [4][5]

4. APLICAÇÃO PARA VARIÂNCIA CONHECIDA.

Seja x uma variável aleatória, e xi = 1,2,3…N, amostras experimentais, que assumiremos como
independentes, temos a seguinte expressão:

𝐸[𝑥] = µ (eq 4)
2 2
𝐸[(𝑥 − µ) ] = σ (eq 5)

Uma estimativa comumente utilizada no curso para “u”, com base nas amostras é a média das
amostras, dada pela equação a seguir:

𝑁
− 1
𝑥 = 𝑁
∑ 𝑥𝑖 (eq6)
𝑖=1

Note que para um conjunto diferente de “N’s”, pode ser obtida uma estimativa diferente, logo,
pode-se considerar também x- uma variável aleatória, e sendo assim, x também tem uma função de
densidade de probabilidade, que pode ser dada pela equação a seguir:

𝑁
− 1
𝐸[𝑥 ] = 𝑁
∑ 𝐸[𝑥𝑖] = µ (eq 7)
𝑖=1

É interessante também calcularmos a variância, que pode ser dada pela seguinte equação:

𝑁
− 2 1 2
𝐸[(𝑥 − µ) ] = 𝐸[( 𝑁
∑ 𝑥𝑖 − µ) ]
𝐼=1
𝑁
− 2 1 2 1
𝐸[(𝑥 − µ) ] = 2 ∑ 𝐸[(𝑥𝑖 − µ )] + 2 ∑ ∑ 𝐸[(𝑥𝑖 − µ)(𝑥𝑗 − µ)]
𝑁 𝑖=1 𝑁 𝑖 𝑗≠𝑖

Agora, se estamos trabalhando com variáveis independentes, algebricamente ficará da seguinte


maneira:

𝐸[(𝑥𝑖 − µ)(𝑥𝑗 − µ)] = 𝐸[𝑥𝑖 − µ]𝐸[𝑥𝑗 − µ] = 0

Portanto, temos que :

2 1 2
δ 𝑥
− = 𝑁
δ (eq 8)

Na prática, analisando os cálculos acima, pode-se notar que quanto maior for a amostra, menor será
2
δ 𝑥
− .

5. APLICANDO O TESTE T NA PRÉ SELEÇÃO ESCALAR DE CARACTERÍSTICAS

4
De acordo com Géron,2019[6], O teste t é frequentemente utilizado para analisar se há grande
diferença na média de duas amostras. Ele é aplicado na pré seleção de características para comparar
a média de diferentes classes em relação a uma característica.[3][4][6]
Vejamos um problema hipotético em que teremos que testar a diferença µ1 - µ2 entre as médias de
valores assumidos por uma característica em duas classes. Chamaremos nossas classes de C1 e C2,
e seus valores amostrais serão: xi, sendo i=1,2,3…N, valores da característica na classe C1, tendo
média µ1; e yi, sendo i = 1,2.3…N, valores da característica na classe C2, com média µ2 . Digamos
que, em nosso problema, as variâncias dos valores da característica é a mesma para para as duas
classes, ou seja, δ12 = δ22 = δ2 . Apliquemos então a (eq 2) e (eq 3) a este problema, tomando
cuidado ao editar a equação adequadamente, sabendo que queremos analisar a diferença entre as
médias. Ficará então: [4][6]

𝐻0 = µ1 − µ2 = 0. (eq 9)

𝐻1 = µ1 − µ2 ≠ 0. (eq 10)

Chamaremos a diferença das médias de Δµ . Veja que Ho é uma hipótese nula, logo, não haverá
diferença significativa entre as médias, porém, em H1 há uma diferença significativa. Este teste que
fizemos é considerado como teste t. Temos que:[4][6]

𝑧 = 𝑥 − 𝑦 (eq 11)

Onde x e y são variáveis que representam valores de uma característica das classes C1 e C2. É
importante ressaltar que a independência linear das variáveis precisa estar assumida. z é uma
variável obviamente derivada de x e y, onde E[z] representa a diferença entre as médias das duas
classes (E[z] = µ1 − µ2). Devido a Independência estatística, A variância para este caso será
2
igual a 2δ . [4]

𝑁
− 1 − −
𝑧 = 𝑁
∑ (𝑥𝑖 − 𝑦𝑖) = 𝑥 − 𝑦 (eq 12)
𝐼=1

Se a variância não for conhecida, podemos fazer a seguinte estatística de teste:


− −
(𝑥 −𝑦 )−(µ1 − µ2)
𝑞= 2
(eq 13)
𝑠𝑧 𝑁

𝑁 𝑁
1 − 2 − 2
𝑠𝑧 = 2𝑁 − 2
( ∑ (𝑥𝑖 − 𝑥 ) + ∑ (𝑦𝑖 − 𝑦 ) ) (eq 14)
𝐼=1 𝑖=1

2 2𝑁
Para 𝑠𝑧 = ( 2 ) A equação tem um grau de liberdade de 2N-2. Para cada valor de grau de
σ
liberdade, se as variâncias forem iguais nas duas classes, segundo Theodoridis, 2009, podemos
utilizar os valores da tabela a seguir. Tabelas como essas listam valores críticos que delimitam
certos percentis da distribuição t para diferentes graus de liberdade.

Tabela 1: Tabela de Graus de liberdade para a aplicação de teste T. A partir dele, pode ser usado
como parâmetro para fazer uma seleção de características. Fonte: Theodoridis, S. e Koutrombas,

5
K. "Pattern Recognition", 4a edição, Academic Press (Elsevier), 2009.
Graus de 1-p 0,9 0,95 0,975 0,99 0,995
Liberdade

10 1,81 2,23 2,63 3,17 3,58

11 1,79 2,20 2,59 3,10 3,50

12 1,78 2,18 2,56 3,05 3,43

13 1,77 2,16 2,53 3,01 3,37

14 1,76 2,15 2,51 2,98 3,33

15 1,75 2,13 2,49 2,95 3,29

16 1,75 2,12 2,47 2,92 3,25

17 1,74 2,11 2,46 2,90 3,22

18 1,73 2,10 2,44 2,88 3,20

19 1,73 2,09 2,43 2,86 3,17

20 1,72 2,09 2,42 2,84 3,15

6. SELEÇÃO ESCALAR DE CARACTERÍSTICAS

Na seleção escalar de características, tratamos as características de maneira individual. Neste curso,


utilizamos essa técnica geralmente preparando nossos dados para outros tipos de tratamento, como a
PCA ou aplicando para algum tipo de classificador etc. Agora que vimos uma base sólida para
aplicar a seleção escalar, vamos mostrar o passo a passo, para aplicá-la na prática:
Primeiramente, deve-se calcular algum critério Mk de separação entre as classes para cada
característica k.(Neste curso, em uma atividade, já foi utilizado Mk = AUC, que vem da curva ROC,
por exemplo, ou a técnica do FDR). As características são então classificadas em ordem decrescente
dos valores de Mk. As l características corresponderão então, aos melhores valores de Mk. Devemos
então encontrar a característica com o maior valor do critério, suponhamos que k1 seja essa
característica. Selecionar as características com os maiores valores do critério é exatamente igual a
escolher as características com a melhor capacidade de separação entre as classes. Esse processo é
bem robusto, dependendo da problemática.
Se quisermos selecionar mais uma característica k2, devemos criar um novo critério Mk2 de maneira
que:

𝑀𝑘2 = α𝑀𝑘 − β|𝑃𝑘, 𝑘2| (eq15)

Encontraremos então a característica com o maior valor do critério. Para as demais características
(k≠k2),(k≠k3), devemos calcular um novo critério:

|𝑃𝑘,𝑘2|+|𝑃𝑘,𝑘3|
𝑀𝑘3 = α𝑀𝑘 − β 2
(eq16)

7. MATRIZES DE ESPALHAMENTO

6
De acordo com Hastie, 2009[2] a seleção vetorial de características é uma abordagem que visa
escolher subconjuntos de características de maneira conjunta, considerando a dependência entre
elas. Para falar sobre esse método é importante conhecer as matrizes de espalhamento, que tem
papel importante para o tema.
A matriz de espalhamento captura a dispersão e o espalhamento dos dados em várias direções. É
interessante utilizar essas matrizes na seleção vetorial, pois assim, podemos analisar como as
características estão distribuídas e como elas podem ser separadas. A matriz de espalhamento pode
ser nomeada entre matriz intraclasse, inter classe e mista. De acordo com Hastie, 2009[2] a matriz
Intraclasse mede o espalhamento dos dados dentro de cada classe. Ela é calculada como a soma
ponderada das matrizes de espalhamento individuais para cada classe, como observado a seguir:[2]

𝑀
𝑆𝑤 = ∑ 𝑃𝑖∑ 𝑖 (eq 15)
𝑖=1

A matriz Inter Classe, representa a variabilidade entre as classes, é ponderada pela média global e a
média de cada classe, como pode-se notar a seguir:

𝑀
𝑇
𝑆𝑏 = ∑ 𝑃𝑖( µ𝑖 − µ0)( µ𝑖 − µ0) (eq 16)
𝑖=1

Aonde µ0 é o vetor de média global, dado por:

𝑀
µ0 = ∑ 𝑃𝑖µ𝑖 (eq17)
𝑖

A matriz de espalhamento mista representa a covariância do vetor de características em relação à


média global, ou se preferir, é a soma das matrizes de espalhamento intra e inter classes. Agora que
sabemos dos tipos de matrizes, podemos traçar dois critérios:

𝑡𝑟𝑎𝑐𝑒{𝑆𝑚}
𝐽1 = 𝑡𝑟𝑎𝑐𝑒{𝑆𝑤}
(eq 18)

Já indica a alta separação entre os clusters de diferentes classes. É necessário informar, que de
acordo com Theodoridis, 2009[4] “trace” refere-se a soma dos elementos da diagonal principal da
matriz.Podemos também observar o critério J2 a seguir:[2][4]

|𝑆𝑚|
𝐽2 = |𝑆𝑤|
(eq 19)

Na prática, esses critérios serão úteis para otimizar a seleção vetorial de características, visto que,
são sensíveis na separação das classes no espaço de características.[2]

8. SELEÇÃO VETORIAL DE CARACTERÍSTICAS

A seleção escalar trata as características de maneira individual. Isso computacionalmente é bem


simples e traz vantagens, mas pode não ser eficaz quando há correlação entre as características, ou
quando se está trabalhando em um campo de muitas dimensões. Visto essa problemática, utilizamos
a seleção vetorial de características.[2]

7
Devemos escolher uma regra de otimização ao qual queremos trabalhar, e de acordo com essa regra,
segundo Theodoridis,2009[4] há duas categorias ao qual a seleção é classificada. A abordagem de
filtro e a Wrapper Approach. A abordagem de filtro a regra de otimização para a seleção de
características não depende de classificador. Deve-se utilizar um dos critérios de separabilidade (eq
18) e (eq 19) para cada combinação possível de vetores de características, a partir disso,
seleciona-se melhor as combinações de vetores de características. Obteremos o número total de
vetores da seguinte forma: [4]

( )=
𝑚
𝑙
𝑚!
𝑙!(𝑚−𝑙)!
(eq 20)

Em algumas situações veremos que é mais eficiente basear a seleção de características no


desempenho do próprio classificador do que nos critérios de separabilidade, para isso usamos a
abordagem conhecida como Wrapper Approach. Na prática, para cada combinação de vetores de
características, a probabilidade de erro do classificador deve ser estimada, seleciona-se a
combinação que tiver a probabilidade de erro menor. Veja que, dependendo do tipo de classificador
utilizado, este método pode ser demasiadamente complexo. [2][4]

9. SELEÇÃO ESCALAR DE CARACTERÍSTICAS X SELEÇÃO VETORIAL. UMA


COMPARAÇÃO

A seleção de características é uma abordagem fundamental para escolher um subconjunto de


características para um conjunto de dados. Neste capítulo vamos falar um pouco das diferenças,
vantagens e desvantagens de utilizar a seleção escalar e vetorial de características.
Uma vantagem da seleção escalar de características é que ela trabalha na escolha de características
individuais, de acordo com uma métrica definida. Essa métrica, neste curso, geralmente é a AUC,
gerada a partir da curva ROC, ou a técnica FDR. Note que é um método muito mais simples que a
seleção vetorial de características. Computacionalmente é um método simples e leve também, visto
que, não envolve atividades matriciais complexas. Os pontos positivos da seleção escalar param aí,
a seleção escalar não considera interações e relações lineares entre características, o que é crítico,
visto que, em grande parte das problemáticas uma característica se relaciona com a outra, além do
fato de que, quando se seleciona uma única característica, pode-se perder informações relevantes
contidas nas interações das características. Fazer uma seleção escalar de características em um
campo multidimensional é extremamente difícil.
A seleção vetorial de características, como já dito anteriormente, considera a relação entre as
características, este fato permite ao sistema capturar informações mais complexas. Quando as
iterações entre as características são de fato importantes e têm dados de alta dimensão, essa
abordagem é bem mais eficiente que a seleção escalar. É claro que há também na seleção vetorial
pontos negativos a serem citados. É uma abordagem mais pesada computacionalmente,
principalmente em grandes conjuntos de dados.Como a seleção vetorial trabalha com conjuntos
mais extensos e mais complexos, seu subconjunto pode ser mais difícil de ser analisado e
interpretado. Com pequenos conjuntos de dados, a seleção vetorial pode ser pouco eficaz.
Não há portanto uma abordagem melhor a ser escolhida para todo e qualquer caso, dependendo
exclusivamente, das características dos dados a serem trabalhados.A seleção escalar de
características deve ser escolhida quando não há alta dimensão de dados, e há o conhecimento que
as características não têm relação umas com as outras. Se as iterações entre as caraterísticas não
forem cruciais para o estudo, esta é uma boa abordagem a ser escolhida. Agora, se há uma alta
dimensão dos dados, e é de conhecimento geral que as características têm interação entre elas,
deve-se escolher a seleção vetorial.

8
10. ESTUDO EXPERIMENTAL

Maria Fernanda[7] fez um estudo experimental para diferenciar pacientes portadores de leucemia
linfoide aguda(ALL) de pacientes com leucemia mielóide aguda(AML). Ela usou uma seleção
escalar de características, utilizando como critério a área abaixo da curva ROC (AUC), após isso, a
autora utilizou diversos classificadores para análise de qual se saia melhor, dentre eles um
classificador Bayesiano. Os dados experimentais foram divididos em dois grupos, treinamento e
teste. O grupo de treinamento consiste em 38 coletas de medula óssea. Dessas 38, 27 eram pacientes
com ALL e 11 pacientes com AML. O grupo de testes consiste em 24 amostras, sendo elas 24
pacientes com ALL e 10 com AML. A seleção escalar de características foi essencial para
selecionar as melhores sondas para o caso da Leucemia. A curva ROC com AUC=1 pode ser visto
na imagem a seguir.

Figura 3: Gráfico ROC com AUC =1. No eixo X a taxa de falsos positivos, e no eixo Y a taxa de
verdadeiros positivos.[7]

Através da seleção escalar de características, utilizando como critério AUC’s maiores que 0,80 da
curva ROC, foram selecionadas as dez melhores sondas (sondas 21,40,41,52,53,55,65,119,123, e
126). A autora concluiu que a metodologia aplicada foi positiva para o trabalho em questão, e este
método pode ser utilizado para futuros dados clínicos ainda não diagnosticados.

11. CONCLUSÃO

A seleção de características é essencial para o tratamento de dados em Machine Learning.


Inicialmente, quanto mais características se tem, menor é a probabilidade de erro, porém, depois de
certo ponto, muitas características aumentam a probabilidade de erro, fato este que se dá início ao
fenômeno de pico. Com a seleção de características conseguimos selecionar as características mais
relevantes para o nosso problema e descartar as menos relevantes. Há dois tipos de seleção de
características, a seleção vetorial e a seleção escalar. A seleção escalar trata das características de
forma individual, é um processo pouco complexo, computacionalmente falando, porém, não
considera a linearidade entre os dados.Já a seleção vetorial, leva em conta a interação entre as
características, porém é um processo mais complexo, e dependendo dos dados, pode ser difícil de
ser interpretado. Para escolher qual seleção deverá ser usada dependerá de como são os dados a
serem trabalhados. A seleção de características é um processo fundamental para classificação de
dados.

9
REFERÊNCIAS

[1] Müller, A. C., & Guido, S. (2016). Introduction to Machine Learning with Python: A Guide for
Data Scientists. O'Reilly

[2] Hastie, T., Tibshirani, R., & Friedman, J. (2009). The Elements of Statistical Learning: Data
Mining, Inference, and Prediction. Springer, 2rd edition.

[3] Chao Sima, Edward R. Dougherty, The peaking phenomenon in the presence of
feature-selection, Pattern Recognition Letters, Volume 29, Issue 11, 2008,
[4] Theodoridis, S. e Koutrombas, K. "Pattern Recognition", 4a edição, Academic Press
(Elsevier), 2009
[5] Casella, G., & Berger, R. L. Statistical Inference. Duxbury Press, 2002

[6] Aurélien Géron. “Hands-On Machine Learning with Scikit-Learn, Keras, and Tensorflow:
Concepts, Tools, and Techniques to Build Intelligent Systems”,2a edição, O’reilly, 2019.
[7] Wanderley, Maria Fernanda Barbosa. “Seleção de Características baseada em análise das área
abaixo da curva ROC de classificadores KDE- Bayesianos”. Proceedings Seminário Interno
da disciplina de Técnicas Clássicas de Reconhecimento de Padrões. Universidade Federal de
Minas Gerais, 2010

10

Você também pode gostar