1 - por qué classwt no necesita añadir a uno
El vector classwt se normaliza de una vez por todas en el nivel c.
/* Normalize class weights. */
normClassWt(cl, nsample, nclass, *ipi, classwt, classFreq)
línea169 v.4.6-12 - https://github.com/cran/randomForest/blob/master/src/rf.c
2 - ¿por qué disminuye mi rendimiento cuando añado priors?
resumiendo: has aumentado el prior al revés de lo que esperabas. También necesitas tener una idea más clara de cuál es tu métrica de rendimiento del modelo definido y cuál debería ser. Echa un vistazo a este hilo sobre la aplicación práctica, y más enlaces a un artículo que compara classwt contra la estratificación. hilo(s) relacionado(s) sobre validación cruzada
En primer lugar, hay que definir el rendimiento. Algunas medidas de rendimiento a veces se pueden falsear (precisión de la clasificación, AUC de la clase acc, recuperación, etc.), así que elija su métrica de rendimiento con cuidado. Dado que tiene un 75% de la clase '-1' puedo predecir simplemente que cada nueva observación pertenece a esta clase y conseguiré una precisión de clasificación del 75%. Aquí "juego" con la métrica cambiando el umbral de corte.
Puede dividir el rendimiento de la predicción en resolución y calibración. La primera es la capacidad de clasificar las predicciones de más probable a menos probable. Creo que el AUC de la curva ROC es una buena medida general de este rendimiento. Sin embargo, es posible que prefiera la sensibilidad a la especificidad o viceversa, en función de la tarea que tenga entre manos. La calibración es la capacidad de los modelos para predecir la probabilidad de clase correcta para predicciones en promedio dada una probabilidad de clase verdadera. Los modelos pueden separar bien las clases, aunque sigan confiando demasiado o poco en su capacidad para hacerlo. Quizá sea problemático que un modelo prediga un 99,99% cuando sólo era un 95%. Lograr sólo una buena calibración es fácil, basta con predecir cualquier nueva observación aleatoria igual a la tasa base. 75%-25% en su caso. A veces no te importa la estimación exacta de la probabilidad. Usted acaba de elegir las predicciones de la parte superior. Las predicciones bien calibradas son muy útiles, si quieres calcular cuál sería el impacto de actuar sobre dicha predicción. ¿Debería usted, como compañía telefónica, llamar a un cliente identificado para que se marche y ofrecerle una oferta mejor para que se quede? Si su modelo es demasiado confiado, puede ofrecer un plan de telefonía móvil más barato a demasiados clientes, aunque no se hubieran marchado. La puntuación de Breier es una métrica global adecuada que evalúa tanto la resolución como la calibración, y sólo puede mejorarse haciendo mejores modelos globales. (Siempre hay que tener cuidado con la interpretación causal de las relaciones observadas. En el ejemplo del teléfono, también deben establecerse estimaciones/supuestos sobre el efecto dado de la intervención.
Te equivocas en la parte de los antecedentes. Veo que el manual es un poco confuso en esta parte, ya que sólo dice classwt son los mismos que los priors. Su prior por defecto es su tasa base, la distribución de clases objetivo de su conjunto de entrenamiento. En la implementación de R puede modificar la prior ya sea por classwt
o sampsize
/ strata
. Los dos enfoques parecen funcionar igual de bien en lo que respecta a la resolución. Para conjuntos de datos muy desequilibrados a partir de 1:10, el reequilibrado puede mejorar la resolución. Tu conjunto de datos es sólo 1:4, así que no espero grandes mejoras.
Si no está de acuerdo con el valor previo predeterminado que representa el índice base de su conjunto de entrenamiento, puede ajustar el valor previo. Prefiero sampsize
/ strata
porque es más fácil y transparente ajustar el prior. En su caso, partió de un 75%-25%, lo que hizo fue aumentar el peso de la clase dominante sobre la clase rara. De este modo, ajustó la priorización de $.75^2 /(.75^2+.25^2) = .9$ = 90% y viceversa 10%. Esto es sólo una aproximación, pero el punto es que usted aumentó su expectativa de la ocurrencia de la clase '-1' incluso más allá. Cuando pruebe su rendimiento con la precisión de clasificación validada cruzada fuera de la bolsa, este ajuste previo reducirá la puntuación de rendimiento. Por último, usted es libre de hacer cualquier corrección de las predicciones después de cualquier función imaginable. Por ejemplo, yo juego con la corrección de Elkan, donde primero estratifico para aumentar la resolución del modelo de bosque aleatorio y luego corrijo las probabilidades predichas en bruto con el método de Elkan para volver a calibrar la tasa base.