Está en la página 1de 28

ÁRBOLES DE DECISIÓN

Tanto para clasificación como para proyección.

Idea general: ir dividendo la base de datos de acuerdo con los niveles de la predictora de forma
que pueda encontrar nodos lo mas puros posibles con respecto a una categoría.

Tenemos base de datos con dos atributos (dos categorías rojo y azules) debemos hacer divisiones
e ir particionando la base de acuerdo con características y combinaciones específicas.

Supongamos que la primera partición fue en x2 menor a 0.3 y mayor a 0.3, lo que permite separar
mejor a los de 0.3 es tener x1 mayor a 0.8 o menor a 0.8, mientras que los que tienen x2 mayor a
0.3 tienen mejor poder de clasificación separarlos primero por 0.5 en x1. La clasificación se debe
hacer de manera que los rectángulos se hagan lo mas puros posibles. ¿Cuándo son totalmente
puros? Cuando cada rectángulo tiene una categoría.

Objetivo: refinar los rectángulos lo mas posible

Por naturaleza el árbol tiende a overfitting, por eso es necesario decirle al árbol que pare en algún
momento de dividir para que no quede sobre entrenado.

Aquí nuestras predictoras pueden ser categóricas y escalares son problemas, no tenemos que
procesarlas, ni volverlas dummies, ni eliminar outliers, ni pelear con NA, de hecho, funcionan
bastante bien cuando tenemos NA y funciona como técnica de imputación debido a que toma esos
NA como una categoría.

En el ejemplo tenemos 24 individuos, los ingresos y tamaño del lote y la variable categórica o de
respuesta (si es propietario o no propietario de la casa) BUSCAR EN EL LIBRO SHIMUELI EN LA 240
DE 577.

¿Qué pasa si digo voy a separarlos entre los que tengan mayor y menor a ingresos de 60 mil
dólares?
Tenemos inicialmente 24 datos, dueños 12 y no dueños 12, luego los dividimos por ingreso mayor
y menor a 60 mil

Para los que son mayores de 60 mil tenemos 11 negritos (dueños) y 5 que son no dueños
(tomamos ese negro que debe quedar exacto en la raya)

En este caso la probabilidad para los que ganan mínimo 60 mil dólares al año, de que sea dueño es
de 11/16 y de que no sea dueño es de 5/16. si no gana al menos 60 mil dólares la probabilidad de
ser dueño 1/8 y de no ser dueño 7/8. En este caso el ejercicio de clasificación es por las
características de las variables.

La idea del árbol es ir mirando la sucesión de características o condiciones que permiten separar lo
mejor posible a los datos en términos de la variable de respuesta, es decir hacer que estos nodos
al final sean lo mas puros posibles, es decir que sean lo mas de una clase que se pueda.

El siguiente Split que me va a mejora la impureza es a los que ganan menos de 60 mil, partimos
por el tamaño del lote, es decir que ellos pueden dividirse de maneras diferentes por cada rama. Si
no es de los que ganan 60 mil los que permite diferenciar a los propietarios de los no propietarios
es el tamaño del lote, entonces tenemos si y no (si supera los 21 o si no supera los 21).
Como vemos el primer rectángulo nos queda un nodo totalmente puro, y en el segundo
totalmente puro. Es decir que si no gana 60 mil los que nos permite diferenciar entre ellos es el
tamaño del lote.

Por este lado ya encontramos nodos puros en lo que vemos rojos, debido a que ya todos los
resultados pertenecen a una categoría única.

Hizo la división ahora para los que gana mas de 60 mil, pero también vemos como estamos
llegando al overfitting completo
Ahora estos los voy a partir por el ingreso.

Vimos que la primera variable usa ingreso, luego use el tamaño del lote, luego use de nuevo el
ingreso y nuevamente el ingreso. Es decir que las variables pueden seguir usándose.

En el árbol estamos viendo que luego escogió los mayores de 60 mil y los dividió entre los que
ganan mas de 61 y los que ganan menos de 61 (que es el rectángulo pequeño que vemos en la
grafica del libro)

Es por eso por lo que debemos darle un punto de stop, porque nos va a quedar sobre aprendido.
Es decir, lo que vemos de la línea amarilla hacia abajo es que ya me esta ajustando el ruido y eso
me puede ocasionar el overfitting.

1. Como determina que la primera partición es en 60 mil y no es 40 mil, como sabemos que
se debe partir por el estado civil y no por el sexo… Por la amétrica de impureza

métricas de impureza

A. Entropía
B. índice de Gini
C. Tasa de error de clasificación

Aquí podemos determinar qué tan impuro es el respectivo nodo al hacer la partición.

Ejemplo con el índice de Gini. ( donde M es el número de categorías de la variable de respuesta Y,


en este caso 2 por propietario o no propietario)

El índice siempre está entre 0 y m-1/m

A menor valor del índice mas puro resulta ser el nodo (más cerca de cero), en este caso la idea es
minimizar el IG
Vamos a calcular el IG de este primer nodo:

0.5 es la probabilidad de ser de la primera categoría y 0.5 de la segunda categoría

Ahora sacamos el índice para los dos nodos de abajo

Donde 11/6 es la probabilidad de pertenecer a la primera clase y 5/16 es la probabilidad de


pertenecer a la segunda clase:

Y ahora en la segunda rama:

Aquí podemos concluir que el ultimo nodo es mas, puro porque tiene el IG mas pequeño.

Usando el IG es sobre lo que se define a ver el valor para el Split. Entonces hacemos el IG para el
Split completo, promedio ponderado del IG de las hojas que se obtienen con ese Split, donde la
ponderación se da con respecto al total de casos que yo tengo, Entonces yo tengo 16 datos de 24
+ 8 datos que me quedan acá / 24:
Calculo (AB)

Lo que hace la construcción es: Tenemos nuestros datos, que son

El hace todas las posibles particiones, por ejemplo, que pasa si yo parto con el ingreso de 60 mil
(mayor y menor) o de 85 mil o de 64.800, y va a… Ahora si en lugar del ingreso, uso el tamaño del
lote que va pasando en cada caso y selecciona aquel que minimiza el Índice de impureza de la
partición, entonces el que mas le aumenta la pureza a los nodos es si hace el primer Split con un
ingreso de 60 mil.

Ahora como ya sabe que son los que son entre mayores o menores a 60 mil entonces empieza a
hacer lo mismo para cada sección entonces por ejemplo lo mejor que puedo hacer para el grupo
de menos de 60 mil es partir por el tamaño del lote en ejemplo 21.

Solo reducir impureza me lleva a overfitting es por eso por lo que debo tratar de penalizar la
métrica o la función que la optimiza de acuerdo a la cantidad de nodos finales, entre más hojas (el
uuuultimo resultado de los árboles, el último cuadro que sale) más overfitting.

Ahora la partición del Gini es con respecto al Split, Esto por ejemplo si el árbol sigue dividiendo y
sigo sacando el IG entonces es con el mismo Split para todos
Entonces si estamos tratando minimizar solo esto estamos promoviendo el overfitting, para
penalizar esto usamos una función que se llama FUNCION DE COSTO DE CMPLEJIDAD ( métrica de
impureza)

Tasa de errores de clasificación + #hojas finales

La tasa de error de clasificación de 0 es muy fácil porque tengo overfitting, pero el otro lado crece
porque tengo muchas hojas, por eso debo hacer un trade off para balancear ambos casos.

Para encontrar el Alpha usamos validación cruzada.

Aquí no tenemos la idea de parámetros entonces no nos vamos a matar con el Alpha.

Con categóricas los splits son: por ejemplo si tengo una categórica que es frecuencia de compra
( muy frecuente, rara vez y cliente nuevo) entonces el hace la misma medición de impureza pero la
partición la hace por sub conjuntos:

Muy frecuente Vs rara vez y nunca


Rara vez vs muy frecuente y nunca

Nunca vs muy frecuente y rara vez

Qué pasa si parto con muy frecuente, saca la impureza, luego que pasa si mas bien separo a los
rara vez versus el resto, y los nuevos vs el resto , se queda con el que reduzca la impureza:

Si en este caso el IG que reduce la impureza es Rara vez, entonces parte por rara vez que si y que
no y de ahí empieza a evaluar todas las variables de nuevo.

Por ejemplo si es casado, soltero y otro entonces seria algo asi ( esto lo hicimos para clarificar)

Pone a competir las impurezas y el que mas me minimizo es el Split.

Ventajas y desventajas de los árboles

Manejo de interacciones (asociaciones) que se refiere es a que si tiene menor de 60 mil lo que los
va a caracterizar es esta caso pero con mayores de 60 mil puede ser otra cosa.
Las particiones binarias de si y no

La matriz de costos para determinar el tema de cut off e incluso para determinar el Split (pero eso
Ana María nunca lo ha usado)

Los árboles son muy inestables porque al cambiar los datos el árbol puede cambiar mucho, es por
eso que debemos hacer ensamble de árboles Bagging, random forest…( remuestrea las filas y saca
una muestra de un subconjunto de columnas y saco muchos así con muchos árboles y para
clasificar un dato los pasa por cada árbol, y la categoría que más sale en los árboles es la que voy a
usar).

Con variables de muchas categorías lo que hace es que las va a usar varias veces y puede ocasionar
sesgo, podemos usar el árbol tipo CHAID que no se deja influenciar por la cantidad de categorías.

Técnicas para hacer Arboles:

1. CHAID. Hacemos una tabla de contingencia y calculamos el P valor, que tan dependientes
son la respuesta y predictoras, la que resulte más dependiente hace la separación, entre
mas pequeño el P valor tiene más fuerza de predicción esa variable, esta más asociada y es
el Split. Es mejor a usar cuando tenemos muchas predictoras.
2. 2. CHART lo que hace es que crea el árbol completo y lo vamos podando de acuerdo con
una métrica de impureza CC que ya lo vimos en la anterior fórmula. Es mejor usarlo
cuando tenemos pocas predictoras.

Arriba a la derecha vemos la entropía

Vemos que Gini y Entropía se comportan bastante bien, pero el error de clasificación por ser
triangular dice que no es diferenciable, es difícil de optimizar y el algoritmo de optimización
suele no funcionar bien.

En R suele usar el IG
Con el Gini entre menor sea más capacidad predictiva

La entropía puede ser en base 2 o 10 y también se quiere minimizar porque se requiere menos
información costo para clasificar, mide es cuanto me cuesta transmitir la información de
clasificación

El chi^2, entre mas grande el chi mas pequeño el P valor, es decir que mayor poder predictivo
tiene esa variable, porque es más dependiente. (Hip nula: la respuesta y la predictora son
independientes)

¿Como detener el árbol?

1. Lo que dice el gris es: el mínimo número de observaciones para que un nodo pueda ser
papá. Si el min Split es de 10 (un nodo debe tener min 10 observaciones para ser papa)
12+12=24 si pero 1+ 7 = 8 no se parte…

Este valor no tiene una regla de definición, solo se debe variar para ver como queda el poder
de predicción (Prepodax, una condición para probarlo)

2. El Min booket digamos de 5, para que puedas ser hijo mínimo debes tener 5 elementos.
11+ 5 si hubieran podido existir

Por ejemplo, el de rojo tiene un lado 7 y el otro 1 pero por el lado de 1 como no tiene 5 no se
hubiera podido cortar así esa no hubiera existido, la partición de al lado si se hubiera podido hacer
porque los dos hijos si quedaron con 5.

3. El CP, cuando abrimos una rama nueva es porque la impureza se le reduce, en general el

objetivo es minimizar: Esto busca que solo me haga las particiones cuya mejora
(mínima a la función objetivo) . La mejora mínima que se le pide a la función.
Lo que le está diciendo es, okay tú me estas tratando de reducir eso, pero si la mejora en
CCT no es al menos CP no vale la pena.

El CP se calcula con validación cruzada (Mejora mínima a la función objetivo que se le pide
a una partición para realizarse)

Por default el que usa R es 0.01

4. El azul Max Depth es solo por pisos.

¿Como se usan los árboles para hacer regresión? Primero arma la regresión lineal entre la
respuesta y cada una de las variables, va sacando los modelos:

Para los valores de X1 hace la partición, Si X1 es mayor o igual a 3, saca la predicción para todos
los registros que cumplen que X1 es mayor a 3 y compara con los reales (de la base) y trata de
minimizar la métrica del error. Y mira que fue lo mejor que pudo hacer en 2, 4 , 6 o si no entonces
lo hace no en X3 si no en X2… Aquí no hablamos de impureza si no de minimización de error.

Script y R

En el anterior estamos entendiendo el chi^2, si el chi ^2 es muy grande rechazamos hip nula

… empezamos R, La variable que queremos predecir es desayuno y tenemos 4 variables


categóricas.

La preparación de los datos solo tenemos que partir en entrenamiento y prueba

Hacemos gráficos de mosaico para ver asociaciones entre variables,

El no sufre de multicolinealidad, si tenemos una variable que es el doble de la otra entonces no


pasa nada.

Convierte las carácter a factor


25 En table miramos que la clase mayoritara es cereal, seguido de avena y desayuno (ellos no
sufren de desbalanceo)

29 AQUÍ LA SEMILLA SI PUEDE CAMBIAR MUCHO EL ARBOL

30 Arbol con CP de 0.01 que lo hace por default, con CHART y detrás hace la validación cruzada
que minimiza el CC cuando no mejora en mas de 0.01

Partimos de un nodo razón donde están 100% de datos donde 36% avena 27% barrita 37%
cereales

Como a mayor categoría es cereal me pinta el nodo verde y lo predice como cereales, es decir que
todo lo que caiga en este nodo va a ser predicho como cereal.

Luego el tomo la categoría edad (tiene 4 categorías):


Qué pasa si paso 31-45 vs el resto, que pasa si hago 46-60 vs el resto, así con todos que pasa luego
si las emparejo (31-45 con 46-60 vs el resto) y se dio cuenta que el mejor es de 46-60 y mas de 60
vs el resto. Si la edad de la persona esta en alguna de esas categorías entonces predígalo avena, en
caso contrario cereal.

EL CALCULA LA CC DONDE LA FUNCION ES GINI

Luego, de ese 54% el 59% prefieren avena 12% barrita y 29% cereal (cuadro naranja)

¿Ahora entre más de 60 el nodo será el de avena, puede seguir mejorando el CC? Si y por eso sigue
haciendo la estimación de nuevos nodos.

Par las personas de edad entre 31 y 45 lo que determina su preferencia es la actividad, pero en la
gente mas joven lo que determina su preferencia es su estado civil.

36 entendiendo el primer nodo

La info del cuadro naranja

Cuadro AC

Peronsas aquí 239 en total 439 eso corresponde al 0.54 de la gente

32 en el rp.rules podemos ver las reglas del arbol

Es la descripción de las hojas.

Mirando el primero, le voy a predecir avena ( probabilidades en los corchetes del cuadro naranja),
cuando la categoría de esas esta entre 46 y 60 o es mas de 60.

Le voy a predecir barrita de desayuno cuando su edad este entre 34-45 y su estado de actividad es
activo.

Tantas reglas como hojas tenemos


Como vemos en el árbol la variable que más puede pesar para clasificar es edad ( porque fue la
que más se usó en los splits), pero vimos que nunca salió genero entonces no nos enfocaremos en
campañas por genero si no más bien por edad.

43 resumen del arbol

Toma 5 folds por defecto( no se ve, lo sabemos), con 4 arma aun árbol y dice cuando no tenía Split
solo el nodo de arriba (raíz), el error de clasificación ( debo mirar xerror), cuando hice 1 split el CP
promedio o la mejora promedio es 0.028, cuando hizo otra partición de 4 nodos la mejora
promedio en la función de costo es 0.014.

También vemos la variable importante. A mayor valor de eso es que la variable tiene mayor peso
en el modelo. Mayor poder predictivo.

Tabla AZ
El CP es de 0.2572 ( promedia el CC original cuando solo se tiene un nodo para los distintos
arboles- este no interesa tanto), Entonces ese nodo dolito ( primer cuadro verde) predice cereales,
el porcentaje de mala clasificación en ese nodo es de 63% ( 100-36), también me muestra abajo en
class counts cuantos son de avena, barrita y cereal y los porcentajes ahora, como hago la partción
desde ese nodo, el hijo de la izquierda va a tener 239 observaciones ( ver el cuadro AC), el nodo
numero 3 o el de la derecha va a tener 200 observaciones ( el segundo cuadro verde).

Splits primarios, si yo parto por la edad de categoría la mejora en el error de clasificación es de 43,
si yo hubiera partido por la variable activo, la mejora hubiera sido de 7.26, si el estado civil la
mejora es de 4.6. La que mas meja me produce es partir por la edad, pro eso parte por la edad.

Los RLLR quiere decir…Recordemos el Unique:

El primer nivel es de 31-45, segundo nivel es de 46-60, el otro mas de 60 y menor de 31.

Entonces dice… (pedazo tomado de la tabla AZ)

Ser de 31-45 mándelo a la R, ser de 46-60 y mas de 60 Mándelo a la L y ser menor de 31, mándelo
a la R.

Si él hubiera partido por activo habría sido los activos la izquierda y los no activos a la derecha, y
así los hace todos.

Luego hace lo mismo para cada nodo.

No interpretamos los surrogates splits

48 le podemos sacar la importancia de las variables y debemos coger el mayor, aquí efectivamente
categoría edad es la que mejor me va a predecir.

50 Sacar el CP, esta dentro del summary pero se puede sacar aparte.
Haber hecho la partición en 1 (2 nodos), me reduce el error se reduce a 74% este valor ( .6287), el
número de nodos se saben sumando un 1 a nsplit.

Como sabemos como queda el error final?

53 aquí vemos el resultado de multiplocar 0.62 por el rel error:

Si lo dejo sin partir el error es de 0.63, si lo parto una vez va a ser el error de 0.46 y así hasta que
ya no se reduce tanto.

59 Pero como es turbio por eso pintamos:


Aquí el está pintando el error relativo. Xerror mas y menos la desviación ( el xerror es el que sale
de la validación cruzada y rel error es el error general)

La mejora promedio del CP es lo que reduce el CC

La idea es minimizar el error de validación cruzada ( se minimiza en el 0.012), y lo que pinta es más
y menos una deviación y el traza una línea a la alta del mínimo más una desviación y uno se queda
CP el primero que está por debajo de la línea. Por que el error relativo es estadísticamente igual
que el que minimiza a la ganancia del 0.012, y se tiene un árbol mas pequeño con menos reglas.

Con eso ya sabemos donde vamos a podar el árbol.

63 árbol podado con el CP que escogimos en la gráfica

64 pintamos el árbol nuevamente.

Desaparece la relación con actividad

65 imprimir el CP para analizarlo.

Va a parar donde la ganancia min es de 0.02, con 4 hojas y logra reducir el error de clasificación en
32%, es decir lo deja en 68%.

67 árbol completo original ( Overfitting)

14/05/2021
70 print, podemos ver los 8 Splits,9 nodos al final y vemos la ganancia que está obteniendo con
cada sp`it pero vemos que la ganancia no aumenta mucho desde 4

73control de min bucket y min Split, rpart.control

Xval son los folds por defecto hace 5

Minbucket es el mínimo para ser hijo

Minspit es el mínimo para ser papa o hacer una separación

Aquí dependemos de la naturaleza de los datos, no se tiene alguna medida específica para
seleccionar estos valores de min bucket y min Split.

Por el lado derecho no cambia nada, el izquierdo Quizás ganamos ganas un poquito más de
predicción con barrita y cereal poniéndoles min bckets y min Split a variar, entonces ganamos un
poquito más en dos categorías ( no solo en 1 como en el árbol completo)

79.Si le hago un summary nos dice que son 9 splits, son 9 hojas, por primera vez entra el género
como variable de clasificación.
por primera vez entra el género como variable clasificatoria.

Viendo el árbol, si esta entre 36 y 60, es casada, inactiva y mujer, prefiere cereal ( para llegar al
último cuadro verde por el lado izquierdo ).

81 puedo limitar la profundidad, recordemos que el nodo raíz es el piso 0, entonces si le digo max
profundidad es el piso que voy a seleccionar, entonces si le digo piso 2 el corta aquí:

El detrás siempre tiene un cp de 0.01


Claramente aquí vemos un underfitting porque todavía se puede hacer un mejor árbol.

86 ARBOLES TIPO CHAID, función ctree

Son arboles condicionales, tienen en cuenta el tema de la hipótesis de independencia, entre más
una variable rechace la independencia con la respuesta tiene mejor predicción.

87. El árbol relatado

88. pintamos, Dinos muestra el P valor de la respectiva comparación. Cuando hace la prueba de
hip de independencia entre el desayuno que prefieren las personas y la edad fue la que obtuvo el
P valor mas pequeño de 0.01, es decir que es la variable mas asociada con la respuesta, mas
dependiente.
Luego hace un ejercicio como de impureza, y parte con la edad de categoría y determina que la
mejor es mandar a un lado de 46-60 y mas de 60 y en el otro lado 31-45 y menor de 31

Luego empieza a hacer una partición diferente, porque vuelve a hacer la prueba de hipótesis de
independencia, con la misma variable, pero dicotómica (46-60 y más de 60) y mira si es
independiente o no de la respuesta, y mira si el estado civil es independiente o no, el género, y se
dio cuenta que el mas dependiente por esta rama es el estado civil, y así hasta el final

En los nodos finales vemos, nos queda los individuos (primero 88, en el otro 74, en el otro 51…), y
podemos ver las categorías por orden alfabético, es decir que la primera línea en este caso es
avena, la segunda es barrita y la tercera es cereal. Al final el nombre del cuadro lo determina el
tamaño más alto de las barras.

Cuando tenemos una variable multicategórica, un árbol suele sobre ajustarse a ella, porque tiene
tantos niveles que va a usarla muchas veces para hacer la partición.

90 vamos a hacer predicciones para ver cual árbol se comporta mejor y hacer predicción en
nuestros datos de prueba, con la función predict en nuestros datos de prueba. Type “class”

Aquí toma a todas las personas del test y los divide con la regla que encontramos.

Por ejemplo, el personaje 3(hombre, casado, de 31-45 que no se mueve) lo va a ubicar en cereales
según el árbol, es decir que ahí tenemos un error porque el dato original es barrita de desayuno.

94 predicciones para el arbol podado

95 Albol new con min buket y min split

96 Arbolnwe2 cortado por profundidad


97. El árbol es del CP casi de 0 que es el original (lo agrega la profesora)

Tener en cuenta que en el ultimo cambia el tipo por ser un árbol tipo “ Chaid”

1001 matriz de confusión

En general le va bien con predicciones de avena y con la otras no tan bien

Saca las métricas por cada nivel, que tan sensible es detectando cada uno, le va muy bien
detectando avena, no le va muy bien detectando desayuno 47% y los que peor clasifica con
cereales del 26%
La especificidad es la tasa de falsos positivos.

110 by class nos va sacando los valores por categoría, debemos optimizar el valor de la columna F1
para el taller

Si yo miro el by class voy mirando los valores, y tengo que mirar en el taller la ponderación de la
columna F1. Si bien es muy sensible identificando avena, tampoco es que sea muy preciso
identificando avena. La precisión que es la tasa de falsos positivos en las tres categorías es
bastante alta 50%.

Que pasa cuando hicimos el segundo, el de podar el CP ( 0.02) perdíamos poder predictivo de
cereales, porque …
El segundo cuadro morado antes estaba partido en cereales, pero cuando lo pode deje de poder
identificar cereales, entonces claramente deje de identificar cereales y sube un poco más para
barrita.

El 3 era el árbol new, el de min bucket y min Split, pasa que baja un poquito el poder de predicción
de la avena, el de barrita de desayuno con respecto al original crece un poquito y el de cereales
también sube un poquito.

El 4 donde mas underfitting que teníamos, perdemos algo en barrita de desayuno y en cereal
estamos metiendo mas falso positivo y por eso nos baja el valor.

El ejercicio esta pensando en las campañas de marketing hacia donde podemos hacer mejor
marketing dependiendo del producto.

117 prediccion de cut off.

Recordemos que al final vemos las hojas y vemos que están de un color o tienen un nombre lo que
significa que todo lo que cumpla esa regla lo va a mandar para donde estén los cuadros. Knn por
defecto también clasifica por clase mayoritaria, pero aquí también podemos decidir si mejor
clasifica por el umbral del cut off.

Suponiendo que nuestra clase de interés es Cereal.

120 Lo que haces es que al conjunto de datos test, donde diga cereal, Crea una columna donde 1 si
es cereal y 0 si no, entonces es una variable binaria ahora.

124 voy a predecir con el árbol sencillo, el primero en cereal test, pero ya no quiero que me saque
la clase mayoritaria si no la probabilidad ( type=”prob”)

Me saca las probabilidades con respecto al nodo que me caiga…como?


La probabilidad de que esa primera persona prefiera avena es del 59%, barrita del 12% y cereal del
29%.

Si miro Pr1a es lo mismo…

Eso lo vuelvo data frame

128 pongo el cut off (debemos hacer un análisis de costo o de ganancia)

Si esta predicción en la columna cereal es mayor 0.3 entonces créeme una columna que se va a
llamar cereal de predicción y tomará el valor 1 y si es menor póngale 0.

130 la vuelvo factor para comprar

133 matriz de confusión entre lo que predije con el umbral de 0.33 y la columna del1.

Si lo miro por by class vemos que en cereales me aumenta el by class, me doy cuenta que con
cereales aumenta la sensibilidad con respecto al original y logro identificar el 64% y mi precisión es
del 67% y mejora considerablemente.

También podría gustarte