¿Es posible controlar el costo de una clasificación errónea en el paquete R randomForest ?
En mi propio trabajo, los falsos negativos (por ejemplo, fallar por error que una persona puede tener una enfermedad) son mucho más costosos que los falsos positivos. El paquete rpart permite al usuario controlar los costos de clasificación errónea al especificar una matriz de pérdida para clasificar las clasificaciones erróneas de manera diferente. ¿Existe algo similar para randomForest
? ¿Debo, por ejemplo, usar la classwt
opción para controlar el criterio de Gini?
fuente
classwt
: Sí, he descubierto que, en la práctica, y en línea con otros usuarios, los resultados no son los esperados. (iii)cutoff
: No tengo claro cómo utilizarcutoff
en este caso y agradecería cualquier consejo adicional.Hay varias formas de incluir los costos.
(1) El muestreo más / menos para cada árbol embolsado (muestreo estratificado) es el método más común para introducir costos. Desequilibra intencionalmente el conjunto de datos.
(2) Ponderación. Nunca funciona Creo que esto se enfatiza en la documentación. Algunos afirman que solo necesita pesar en todas las etapas, incluida la división de Gini y la votación final. Si va a funcionar, será una implementación complicada.
(3) Función Metacost en Weka.
(4) Tratar un bosque aleatorio como un clasificador probabilístico y cambiar el umbral. Me gusta menos esta opción. Probablemente debido a mi falta de conocimiento, pero aunque el algoritmo puede generar probabilidades no tiene sentido para mí tratarlas como si fuera un modelo probabilístico.
Pero estoy seguro de que hay enfoques adicionales.
fuente
Se recomienda que si la variable que está intentando predecir no es del 50%
class 1
y del 50%class 2
(como la mayoría de los casos), ajuste elcutoff
parámetro para representar el realOOB
en resumen.Por ejemplo,
En este caso, la probabilidad de tener un valor de uno
class 1
es.96
tener un valor declass 2
es.04
.De lo contrario, los bosques aleatorios usan un umbral de
0.5
.fuente
Uno puede incorporar
costMatrix
enrandomForest
explícitamente a través deparms
parámetro:fuente
Puede incorporar sensibilidad de costos utilizando la
sampsize
función en elrandomForest
paquete.Varíe las cifras
(100,20)
según los datos que tenga y las suposiciones / reglas comerciales con las que está trabajando.Se necesita un enfoque de prueba y error para obtener una matriz de confusión que refleje los costos del error de clasificación. Eche un vistazo a los pronósticos de riesgo penal de Richard Berk : un enfoque de aprendizaje automático , pág. 82)
fuente