Sie sind auf Seite 1von 16

Validacin Cruzada

(Cross Validation)

Validacin cruzada

Proviene de la mejora del mtodo de retencin o holdout method.

Consiste en:
Dividir en dos conjuntos complementarios los datos de muestra
Realizar el anlisis de un subconjunto (denominado datos de
entrenamiento o training set)
Validar el anlisis en el otro subconjunto (denominado datos de prueba
o test set)

De esta manera, la funcin de aproximacin slo se ajusta con


el conjunto de datos de entrenamiento y a partir de aqu calcula los valores
de salida para el conjunto de datos de prueba (valores que no ha analizado
antes)

Validacin cruzada

Validacin cruzada de K iteraciones

K-fold cross-validation los datos de muestra se dividen en K


subconjuntos

Uno de los subconjuntos se utiliza como datos de prueba y el resto (K1) como datos de entrenamiento

El proceso de validacin cruzada es repetido durante k iteraciones, con


cada uno de los posibles subconjuntos de datos de prueba

Finalmente se realiza la media aritmtica de los resultados de cada


iteracin para obtener un nico resultado

Validacin cruzada

Validacin cruzada aleatoria

Consiste al dividir aleatoriamente el conjunto de datos de


entrenamiento y el conjunto de datos de prueba

Para cada divisin la funcin de aproximacin se ajusta a partir de los


datos de entrenamiento y calcula los valores de salida para el conjunto
de datos de prueba

El resultado final se corresponde a la media aritmtica de los valores


obtenidos para las diferentes divisiones

Validacin cruzada

Validacin cruzada dejando uno por fuera

Leave-one-out cross-validation (LOOCV) implica separar los datos de


forma que para cada iteracin tengamos una sola muestra para los
datos de prueba y todo el resto conformando los datos de
entrenamiento

La evaluacin viene dada por el error, y en este tipo de validacin


cruzada el error es muy bajo

A nivel computacional es muy costoso, puesto que se tienen que


realizar un elevado nmero de iteraciones, tantas como N muestras
tengamos y para cada una analizar los datos tanto de entrenamiento
como de prueba

Validacin cruzada aplicada a K-NN

Aplicando Validacin Cruzada (Cross Validation) al algoritmo K-NN


podemos llegar a encontrar el mejor valor de K, donde K son la cantidad de
vecinos ms cercanos a la nueva tupla que se est evaluando.

Para lograr lo anteriormente dicho, se deben seguir una serie de pasos:

1.) Solicitar las K iteraciones que se van a utilizar para realizar Cross
Validation.

2.) Normalizar todas las variables del DataSet original, a excepcin de la


variable a determinar o la mejor conocida como variable de clase.

Validacin cruzada aplicada a K-NN

3.) Distribuir registros del DataSet normalizado de forma aleatoria.

Data Set Normalizado

Data Set con registros distribuidos


aleatoriamente

Variable 1

Variable 2

Variable de Clase

Variable 1

Variable 2

Variable de Clase

0,1

0,4

0,2

0,6

0,5

0,7

0,6

0,1

0,6

0,1

0,9

0,2

0,8

0,3

0,8

0,3

0,7

0,5

0,7

0,5

0,4

0,3

0,8

0,2

0,6

0,5

0,7

0,9

0,9

0,3

0,8

0,1

0,4

0,9

0,2

0,4

Los registros se reubican


De forma aleatoria
RANDOM()

Validacin cruzada aplicada a K-NN

4.) Agrupar los registros distribuidos aleatoriamente en FOLDERS. Para este


ejemplo, utilizar 5 FOLDERS, pero para el ALGORITMO K-NN utilizar 10
FOLDERS.
Data Set con registros distribuidos
aleatoriamente, agrupados en 5 FOLDERS
Variable 1

Variable 2

Variable de Clase

Folder

0,2

0,6

0,6

0,1

0,9

0,2

0,8

0,3

0,7

0,5

0,3

0,8

0,5

0,7

0,9

0,1

0,4

0,4

Validacin cruzada aplicada a K-NN

5.) Se hace Validacin Cruzada.


5.1.) Se deben realizar los siguientes pasos K iteraciones.

Ciclo: inicie en i = 0 hasta K (iteraciones) 1.

Ciclo: inicie en 1 hasta Cantidad de Folders.

cantidadAciertos = 0;

Ciclo: Recorrer cada Fila del DataSet Completo con los Folders.

Preguntar Si Folder de la Fila Actual es igual a Folder Actual de ciclo 2.

Pasar a Algoritmo KNN el DataSet formado de todos los Registros del DataSet Completo
con Folders menos los registros del Folder Actual del ciclo 2.

Pasar a Algoritmo KNN como Registro Nuevo la Fila Actual.

Pasar a Algoritmo KNN como K el valor i + 1 del primero ciclo.

Obtener el Resultado Arrojado por KNN. (Drug Resultado)

Preguntar si la variable de clase de la Fila Actual es igual al resultado arrojado por KNN

Si es igual: incrementar variable cantidadAciertos.


Fin_si

Fin_si
Fin_ciclo_Recorrido de todas las Filas.

porcentajeAciertosXFolder = cantidadAciertos / cantidad registros por folder.


Acumular los porcentajes de acierto en cada Folder y guardar el acumulado obtenido en cada iteracin
de i en un Arreglo o Lista.
Fin_ciclo_recorrido de Folders.

El acumulado guardado para la iteracin i, dividirla entre el nmero de Folders y guardar este nuevo valor.
Fin_ciclo_iteraciones

Validacin cruzada aplicada a K-NN

5.) Se hace Validacin Cruzada.


5.2.) Recorrer el Arreglo o Lista donde se almacenaron los acumulados de todos
lo Folders en cada iteracin, para determinar el K apropiado para KNN.

Porcentaje = 0;
Ciclo: inicie en j = 0 hasta Tamao del Arreglo o Lista.

Preguntar si: Lista[j] > porcentaje, entonces.

Kapropiado = j + 1;

Porcentaje = Lista[j];

Fin_si
Fin_ciclo

LOS VALORES:

Kapropiado: Son el el MEJOR K para KNN y el DataSet original de entrada.

Porcentaje: Son el Mejor porcentaje de Acierto alcanzado con KNN y Cross


Validation para el mejor K.

Taller: Cross Validation y K-NN (Clasificacin) pg 1

Consideremos el caso de un Profesional de la Salud, que est tratando de


decidir cul droga (medicina) debe recetar a un nuevo paciente.

El Profesional en Salud tiene acceso a una Vista Minable, la cual se obtuvo a


partir de fuentes de datos que representan el histrico de drogas (medicinas)
recetadas a los pacientes de acuerdo a ciertas caractersticas de estos
pacientes.

Taller: Cross Validation y K-NN (Clasificacin) pg 2


SOBRE EL TALLER 1 DE KNN IMPLEMENTADO, IMPLEMENTAR LOS
PASOS DE CROSS VALIDATION Y DETERMINAR EL MEJOR K Y EL
MEJOR PORCENTAJE DE ACIERTO, PARA RESPONDER A LA
PREGUNTA: Cul debe ser la droga (medicina) que el Profesional en Salud
debe recetar a un nuevo paciente, de acuerdo a algunas caractersticas dadas de
ese paciente?

Taller: Cross Validation y K-NN (Clasificacin) Solucin pg 3


1.) Sobre la aplicacin de KNN ya desarrollada, pedir por interfaz de usuario el
valor de Kmax ( es decir, la cantidad de iteraciones para Cross Validation):

Taller: Cross Validation y K-NN (Clasificacin) Solucin pg 4


2.) Al ejecutar el botn Obtener K, el programa debe dar como Resultado el Mejor
K para KNN y el Mejor Porcentaje de Aciertos:

Taller: Cross Validation y K-NN (Clasificacin) Solucin pg 5


3.) Al tener el K apropiado para KNN y su Mejor Porcentaje de Aciertos, se prueba
nuevamente el Algoritmo KNN ya implementado:

Taller: Cross Validation y K-NN (Clasificacin) Solucin pg 6

Das könnte Ihnen auch gefallen