terça-feira, 1 de setembro de 2009

Classificadores estatísticos - 01

Eu acho que o MultiSign está muito parado por estes dias, então eu achei interessante fazer uma série de posts sobre classificadores estatísticos.

Para começar, vamos estudar o classificador de mínima distância ao centróide.

Imagine que você tem um conjunto de informações sobre elementos de diferentes classes, por exemplo peso e altura de diversas pessoas. E você não sabe, acerca de todos, quais destas pessoas são adultos, crianças ou bebês.

Vamos então desenvolver a solução deste problema.

Primeiramente vamos tomar as pessoas que nós já sabemos se são adultos, crianças ou bebês.

Conjunto dos bebês (1).

pessoa 1 - 0,5m e 4,3kg
pessoa 2 - 0,45m e 3,1kg
pessoa 3 - 0,6m e 5,0kg
pessoa 4 - 0,39m e 3,2kg
pessoa 5 - 0,44m e 3,8kg
pessoa 6 - 0,51m e 4,7kg

.
.
.

pessoa n - 0,55m e 5,3kg

Conjunto das crianças (2).

pessoa n + 1 - 1,5m e 34,3kg
pessoa n + 2 - 1,45m e 33,1kg
pessoa n + 3 - 1,6m e 45,0kg
pessoa n + 4 - 1,39m e 27,2kg
pessoa n + 5 - 1,44m e 33,8kg
pessoa n + 6 - 1,51m e 34,7kg

.
.
.

pessoa n + m - 1,55m e 26,3kg


Conjunto dos adultos (3).

pessoa n + m + 1 - 1,75m e 74,3kg
pessoa n + m + 2 - 1,81m e 93,1kg
pessoa n + m + 3 - 1,66m e 55,0kg
pessoa n + m + 4 - 1,73m e 67,2kg
pessoa n + m + 5 - 1,64m e 53,8kg
pessoa n + m + 6 - 1,61m e 60,7kg

.
.
.

pessoa n + m + p - 1,55m e 42,8kg


Depois de separar cada conjunto, nós calculamos a média do peso e da altura para cada conjunto.

Conjunto 1:
média(peso) - 4,8kg (mp1)
média(altura) - 0,56m (ma1)


Conjunto 2:
média(peso) - 28,1kg (mp2)
média(altura) - 1,57m (ma2)


Conjunto 3:
média(peso) - 68,7kg (mp3)
média(altura) - 1,64m (ma3)


Então, para cada pessoa do conjunto de dados que não se sabe se ela é adulto, criança ou bebê, basta usar o classificador pronto que nós implementamos:

Sendo p o peso da pessoa e a a sua altura,

se (p - mp1)² + (a - ma1)² < (p - mp2)² + (a - ma2)² e (p - mp1)² + (a - ma1)² < (p - mp3)² + (a - ma3)² então a pessoa é um bebê (pertence ao conjunto 1);

se (p - mp2)² + (a - ma2)² < (p - mp1)² + (a - ma1)² e (p - mp2)² + (a - ma2)² < (p - mp3)² + (a - ma3)² então a pessoa é uma criança (pertence ao conjunto 2);

se (p - mp3)² + (a - ma3)² < (p - mp1)² + (a - ma1)² e (p - mp3)² + (a - ma3)² < (p - mp2)² + (a - ma2)² então a pessoa é um adulto (pertence ao conjunto 3).


Essa análise, muito simples, foi apenas para apresentar o classificador estatístico mais simples de todos: o classificador de distância mínima ao centróide (DMC).

A depender do retorno que eu tenha por parte dos leitores, eu posso até colocar códigos em Scilab deste e de outros classificadores.