Vous êtes sur la page 1sur 22

Aprendizaje automtico

Algoritmo k-NN
k Nearest Neighbours

Nieves Pedreira Souto

Aprendizaje supervisado

El aprendizaje supervisado es una serie de tcnicas para deducir una funcin


a partir de datos de entrenamiento. Los datos de entrenamiento consisten de
pares de objetos: una componente del par son los datos de entrada y el otro,
los resultados deseados.
El objetivo del aprendizaje supervisado es el de crear una funcin capaz de
predecir el valor correspondiente a cualquier objeto de entrada vlida
despus de haber visto una serie de ejemplos, los datos de entrenamiento.
Para ello, tiene que generalizar a partir de los datos presentados a las
situaciones no vistas previamente.
La hiptesis de este tipo de aprendizaje es que si se aproxima bien la funcin
objetivo sobre un conjunto de entrenamiento suficientemente grande,
tambin lo har bien con los ejemplos no observados.

Nieves Pedreira Souto

Algoritmo k-NN

El algoritmo k-NN se utiliza para clasificacin.


En clasificacin supervisada, se conocen de antemano las clases existentes, y
se sabe a qu clase pertenece cada elemento del conjunto de datos.
Genera una funcin que asignar a los valores de entrada, la clase a la que
pertenecen.
Para ello localiza los k vecinos ms cercanos (distancia eucldea) y le asigna la
clase a la que pertenecen la mayora de esos vecinos.
Un caso especial se da cuando k=1, en ese caso se le asigna la clase del
vecino ms cercano.
Si k es muy pequea, el resultado es muy
sensible al ruido.
Si k es demasiado grande, se tendrn en cuenta
elementos de clases lejanas.
Por lo que se debe encontrar un valor adecuado.
El problema fundamental de la clasificacin est
directamente relacionado con la separabilidad
de las clases.
Nieves Pedreira Souto

Algoritmo k-NN

Para disear un clasificador hacen falta dos tareas: Aprendizaje y Prueba.


El conjunto de ejemplos se divide en dos: uno para el entrenamiento y otro
para la validacin. A partir de los resultados de la validacin se calcula el
porcentaje de aciertos para conocer el poder de generalizacin.
En k-NN:
Aprendizaje: construccin de una tabla con los ejemplos disponibles y su
clase asociada. (Lazy learning)
Validacin: ante una nueva entrada, un nuevo ejemplo para el que
determinar a qu clase pertenece:
Se calcula su distancia a todos los elementos de la tabla
Se elijen los k ms cercanos (menor distancia)
Se le asigna la clase mayoritaria entre los k ejemplos ms
cercanos

Nieves Pedreira Souto

Algoritmo k-NN

Sobre la validacin:
Normalmente para el clculo de la distancia se utiliza la distancia eucldea:

Los atributos o parmetros deben estar normalizados para no priorizar unos


sobre otros.
Sin embargo, hay casos en los que los atributos no tienen la misma influencia
sobre el resultado, por lo que se pueden asignar pesos a los atributos:

Si la clasificacin es binaria, es recomendable elegir k impar para evitar


empates.

Nieves Pedreira Souto

Algoritmo k-NN

Ejemplo: Clasificacin de la flor Iris


sepallength

sepalwidth

petallength

petalwidth

Class

5.1

3.5

1.4

0.2

Iris-setosa

7.0

3.2

4.7

1.4

Iris-versicolor

6.3

3.3

6.0

2.5

Iris-virginica

5.4

3.7

1.5

0.2

??????

D(A,X)= ( (5.1-5.4)2 + (3.5-3.7) 2 + (1.4-1.5) 2 + (0.2-0.2) 2 ) = 0,3741


D(B,X)= ( (7.0-5.4)2 + (3.2-3.7) 2 + (4.7-1.5) 2 + (1.4-0.2) 2 ) = 3,8065
D(C,X)= ( (6.3-5.4)2 + (3.3-3.7) 2 + (6.0-1.5) 2 + (2.5-0.2) 2 ) = 5,1487
La distancia menor es D(A,X), por lo que si se utiliza el 1-NN, el ejemplo X
se incluira en la clase Iris-setosa.

Nieves Pedreira Souto

Algoritmo k-NN

Opciones para reparto del conjunto para entrenamiento y prueba:


Conjuntos separados
Porcentajes (ordenados o no)

Validacin cruzada (separacin en subconjuntos)

N iteraciones =
n subconjuntos

Nieves Pedreira Souto

Algoritmo k-NN

Validacin cruzada aleatoria:


N iteraciones
n subconjuntos

Validacin cruzada dejando uno fuera:

N iteraciones =
cantidad de datos

Nieves Pedreira Souto

Aprendizaje automtico
Algoritmo k-NN
k Nearest Neighbours

En Weka
Nieves Pedreira Souto

WEKA: Algoritmo k-NN

En Weka, como se puede ver en la pgina 17 del manual, el algoritmo k-NN


se llama IBk, dentro de algoritmos de clasificacin basados en tcnicas de
aprendizaje perezoso

Nieves Pedreira Souto

WEKA: Algoritmo k-NN

Archivos arff
Nieves Pedreira Souto

WEKA: Algoritmo k-NN

Archivo arff

Nieves Pedreira Souto

WEKA: Algoritmo k-NN

Nieves Pedreira Souto

WEKA: Algoritmo k-NN

Clasificador k-NN

Nieves Pedreira Souto

WEKA: Algoritmo k-NN

Nieves Pedreira Souto

WEKA: Algoritmo k-NN

Ajuste
general

Ajuste por clases

Clasificacin de
cada ejemplo

Nieves Pedreira Souto

WEKA: Algoritmo k-NN

Nieves Pedreira Souto

WEKA: Algoritmo k-NN

Nieves Pedreira Souto

WEKA: Algoritmo k-NN

Nieves Pedreira Souto

WEKA: Algoritmo k-NN

Nieves Pedreira Souto

WEKA: Algoritmo k-NN

Nieves Pedreira Souto

WEKA: Algoritmo k-NN

Nieves Pedreira Souto