miércoles, 5 de abril de 2017

Credit Scoring con algoritmo kNN (Vecinos más cercanos).



Dando continuación a nuestro post anterior donde creamos un modelo de riesgo crediticio, abordaremos un algoritmo denominado kNN o k Nearest Neighbors, también conocido como k vecinos mas cercanos, donde básicamente se compara los datos de las personas que más se parecen al cliente que queremos analizar, clasificándolo con la mas cercana.

Abordaremos un escenario práctico, intuitivo y fácilmente reproducible en Excel, que nos permita entender la base, ventajas, desventajas y consideraciones al momento de implementar este algoritmo

kNN es un algoritmo de clasificación supervisadaclasificación por el hecho que tratamos de etiquetar en una clase al nuevo cliente y supervisada, por el hecho que existe una variable objetivo, siendo un poco más técnicos podríamos decir que:

Es un esquema de clasificación común, basado en el uso de medidas de distancia.  Esta técnica asume que el conjunto completo de entrenamiento incluye no sólo los datos sino también la clasificación deseada. Al momento de clasificar un nuevo elemento (t) se determina su distancia contra todos los elementos en el conjunto de entrenamiento. Luego sólo se consideran los K elementos más cercanos al nuevo elemento (t). Y es entonces clasificado en la clase mayoritaria de los vecinos cercanos.

La técnica KNN es muy sensible a la escogencia de k, una regla práctica es k  menor o igual a la raíz del número de elementos de entrenamiento.


Asumiremos lo siguiente:

Las variables han sido debidamente seleccionadas, se han limpiado los datos duplicados, valores null y valores por defecto, se ha transformado las variables y normalizado los datos de manera que el dataset utilizado sea de calidad.


Algo muy importante de tomar en cuenta es el balanceo de los datos.  En machine learning se considera que un conjunto de entrenamiento de dos clases está desbalanceado cuando el número de muestras de una de las clases (la clase mayoritaria) sobrepasa el número de muestras de la otra (la clase minoritaria). Diferentes estudios han mostrado que el desempeño de la mayoría de algoritmos de clasificación, se afecta negativamente cuando estos son entrenados con conjuntos de datos desbalanceados, por esta razón disponemos de datos históricos de 15 clientes "buenos" y 15 "malos" y se desea realizar un credit scoring. Los credit scoring reales utilizan muchas más variables con miles, decenas miles y hasta millones de datos.

Cliente
Ingresos Mes
Nivel Estudios
Score
Ana
$1,100
1
Malo
Luis
$983
0
Malo
Pedro
$1,203
1
Malo
Diego
$995
3
Malo
Lucas
$725
1
Malo
José
$1,750
2
Malo
Manuel
$2,100
0
Malo
Tere
$1,590
1
Malo
Sofía
$1,009
1
Malo
Mary
$850
2
Malo
John
$700
4
Malo
Peter
$602
2
Malo
Xiao
$760
1
Malo
Arty
$1,100
1
Malo
Sonia
$2,001
2
Malo
Laura
$2,500
5
Bueno
Isabel
$2,650
4
Bueno
Edu
$1,700
3
Bueno
Paco
$1,321
4
Bueno
Ester
$2,311
3
Bueno
Mara
$1,512
5
Bueno
Paula
$2,432
2
Bueno
Xisca
$2,550
1
Bueno
Cesar
$1,567
4
Bueno
Marga
$1,250
5
Bueno
Pere
$1,003
2
Bueno
Tania
$2,005
5
Bueno
Silvia
$1,580
2
Bueno
Flor
$1,350
3
Bueno
Diana
$2,201
4
Bueno


Juan gana $ 1800 al mes y su nivel de estudios es Bachiller, es decir: 3. ¿Le daríamos un crédito?


Ingresos mes
Nivel Estudios
Score
Juan
$ 1,800 
3
¿?
El algoritmo KNN calcula la distancia entre Juan y sus vecinos.

Si la mayor parte de sus vecinos son buenos clientes lo más probable es que sea un buen cliente "Dime con quién andas y te diré quién eres".

Para calcular la distancia entre dos puntos A y B usamos el Teorema de Pitágoras:


Ingresos
Estudios
Ana
4
1
Juan
1
2

d(Ana, Juan)
3.16227766



Pero hay un problema y es que el salario y el nivel de estudios están medidos en escalas diferentes: El salario mensual son miles de dolares y el nivel de estudios va de 1 a 5. Entonces hay que normalizarlo, para que estén en la misma escala. Una forma es transformar tanto los ingresos como el nivel de estudio a la escala [0-1]. Así al que gana más (Isabel) le ponemos un 1 y al que gana menos (Peter) un 0.


Cliente
Ingresos Mes
Nivel Estudios
Score

IngresosmesN
EstudiosN
Ana
$1,100
1
Malo

0.24
0.20
Luis
$983
0
Malo

0.19
0.00
Pedro
$1,203
1
Malo

0.29
0.20
Diego
$995
3
Malo

0.19
0.60
Lucas
$725
1
Malo

0.06
0.20
José
$1,750
2
Malo

0.56
0.40
Manuel
$2,100
0
Malo

0.73
0.00
Tere
$1,590
1
Malo

0.48
0.20
Sofía
$1,009
1
Malo

0.20
0.20
Mary
$850
2
Malo

0.12
0.40
John
$700
4
Malo

0.05
0.80
Peter
$602
2
Malo

0.00
0.40
Xiao
$760
1
Malo

0.08
0.20
Arty
$1,100
1
Malo

0.24
0.20
Sonia
$2,001
2
Malo

0.68
0.40
Laura
$2,500
5
Bueno

0.93
1.00
Isabel
$2,650
4
Bueno

1.00
0.80
Edu
$1,700
3
Bueno

0.54
0.60
Paco
$1,321
4
Bueno

0.35
0.80
Ester
$2,311
3
Bueno

0.83
0.60
Mara
$1,512
5
Bueno

0.44
1.00
Paula
$2,432
2
Bueno

0.89
0.40
Xisca
$2,550
1
Bueno

0.95
0.20
Cesar
$1,567
4
Bueno

0.47
0.80
Marga
$1,250
5
Bueno

0.32
1.00
Pere
$1,003
2
Bueno

0.20
0.40
Tania
$2,005
5
Bueno

0.69
1.00
Silvia
$1,580
2
Bueno

0.48
0.40
Flor
$1,350
3
Bueno

0.37
0.60
Diana
$2,201
4
Bueno

0.78
0.80


Evaluamos a Juan:

Cliente
Ingresos Mes
Nivel Estudios



IngresosmesN
EstudiosN
Juan
1,800 €
3


0.58
0.60


Se trata de averiguar quiénes son los vecinos de Juan y cuántos son "buenos" y "malos".


Tomando un valor arbitrario de k=7, podemos concluir:

Distancia con Juan
El más cercano
K vecinos más cercanos
El vecino es...
0.526



0.721



0.495



0.393



0.660



0.201

Cercano
Malo
0.618



0.413



0.556



0.505



0.573



0.618



0.646



0.526



0.223

Cercano
Malo
0.526



0.461



0.049
El más cercano
Cercano
Bueno
0.308



0.250

Cercano
Bueno
0.424



0.368



0.542



0.230

Cercano
Bueno
0.482



0.438



0.412



0.227

Cercano
Bueno
0.220

Cercano
Bueno
0.280




Vecinos malos -->
2
Vecinos buenos -->
5


Juan es clasificado como:
Bueno

En un gráfico de dispersión:




Existen muchas técnicas para realizar Credit Scoring de las cuales la regresión logística sigue siendo la más utilizada. Pero ahora que sabes una nueva técnica, te reto a que pruebes:
  • SVM
  • Redes Neuronales Artificiales
 Escríbeme a mi correo miguelurbin@gmail.com para enviarles la plantilla utilizada y  realicen sus propias pruebas o mejoras.

1 comentario:

  1. Excelente trabajo Miguel!
    Seria bueno saber cuales son las zonas mas malapagas :)

    ResponderEliminar