Classificação por vizinho mais próximo#
2021.2: Prova Final
Uma empresa de pesca precisa separar os peixes que ela retira do mar, para tal tarefa ela tem sensores que capturam duas características dos peixes: tamanho e largura. Assim, cada peixe pescado é medido de forma automática e, então, classificado.
A empresa utiliza como gabarito um dicionário que contém os tamanhos padrões mais típicos para cada tipo de peixe. Por exemplo aqui, tem \(3\) padrões de cada tipo, note que dentro das listas são pares ordenados:
{
'salmao': [[8, 6], [12, 5], [10, 4]],
'robalo': [[9, 3], [8, 2], [7, 3]],
'sardinha': [[1, 2], [2, 3], [2, 2]]
}
Toda vez que um novo peixe é pescado, suas dimensões são coletadas e comparadas com os padrões já conhecidos. O padrão que for mais próximo do novo pescado é atribuído a ele. A fórmula para comparação de distância é dada por:
Por exemplo, se pescado um peixe com dimensões [10, 2]
, esse deverá ser classificado como 'robalo'
, pois, após calcular a distância para TODOS os padrões, a menor distânica é o padrão [9, 3]
que pertence à classe 'robalo'
. Aqui a distância foi calculada como:
Faça uma função que recebe um dicionário de categorias e uma lista com as dimensões de um peixe pescado. A função deve retornar a categoria do novo peixe pescado.
Exemplo:
para as entradas:
{
'salmao': [[8, 6], [12, 5], [10, 4]],
'robalo': [[9, 3], [8, 2], [7, 3]],
'sardinha': [[1, 2], [2, 3], [2, 2]]
}
sua função deve retornar:
'robalo'
DICA: não existe distância negativa.
O nome da sua função deve ser classifica
.