Buenos días, tengo una base de datos desequilibrados (unbalanced) en la que las ausencias son 9 veces más abundantes que las presencias (*ratio *= 9). Para árboles de clasificación utilizo una matriz de pérdidas parms=list(loss=matrix(c(0, FP, *ratio *,0)))o un vector de ponderación que le da 9 veces más peso a las presencias. Como cabría esperar, la sensibilidad y sensitividad se hacen parecidas. Pasan de ser 89/39 a 79/76 y kappa sube de 0.24 a 0.30. El problema surge cuando intento hacer lo mismo con random forest, y supongo que no lo estoy haciendo bien. Uso RFfit <- randomForest(Dep ~. , classwt = c(1, *ratio * ), data=data). La sensibilidad y sensitividad se quedan casi igual 90/40 y kappa también 0.25. Sé que se puede hacer con ranger, pero, por razones que no vienen al caso, no me viene bien cambiar. Gracias, como siempre, Manuel [[alternative HTML version deleted]]
Hola Manuel, No dan una respuesta concluyente, pero sí algunas pistas... https://stackoverflow.com/questions/57076570/how-to-calculate-class-weights-for-random-forests Gracias, Carlos Ortega www.qualityexcellence.es El vie, 22 ene 2021 a las 11:43, Manuel Mendoza (<mmendoza en fulbrightmail.org>) escribió:> Buenos días, tengo una base de datos desequilibrados (unbalanced) en la que > las ausencias son 9 veces más abundantes que las presencias (*ratio *= 9). > Para árboles de clasificación utilizo una matriz de pérdidas > parms=list(loss=matrix(c(0, > FP, *ratio *,0)))o un vector de ponderación que le da 9 veces más peso a > las presencias. Como cabría esperar, la sensibilidad y sensitividad se > hacen parecidas. Pasan de ser > 89/39 a 79/76 y kappa sube de 0.24 a 0.30. > > El problema surge cuando intento hacer lo mismo con random forest, y > supongo que no lo estoy haciendo bien. Uso RFfit <- randomForest(Dep ~. , > classwt = c(1, *ratio * ), data=data). La sensibilidad y sensitividad se > quedan casi igual 90/40 y kappa también 0.25. > > Sé que se puede hacer con ranger, pero, por razones que no vienen al caso, > no me viene bien cambiar. > > Gracias, como siempre, > Manuel > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Has probado en usar en vez de algoritmos sensibles al coste, usar t?cnicas de remuestreo? Hay un paquete de la UGR llamado imbalance que funciona muy bien. ________________________________ De: R-help-es <r-help-es-bounces en r-project.org> en nombre de Manuel Mendoza <mmendoza en fulbrightmail.org> Enviado: viernes, 22 de enero de 2021 11:43 Para: Lista R <r-help-es en r-project.org> Asunto: [R-es] weighted random forest Buenos d?as, tengo una base de datos desequilibrados (unbalanced) en la que las ausencias son 9 veces m?s abundantes que las presencias (*ratio *= 9). Para ?rboles de clasificaci?n utilizo una matriz de p?rdidas parms=list(loss=matrix(c(0, FP, *ratio *,0)))o un vector de ponderaci?n que le da 9 veces m?s peso a las presencias. Como cabr?a esperar, la sensibilidad y sensitividad se hacen parecidas. Pasan de ser 89/39 a 79/76 y kappa sube de 0.24 a 0.30. El problema surge cuando intento hacer lo mismo con random forest, y supongo que no lo estoy haciendo bien. Uso RFfit <- randomForest(Dep ~. , classwt = c(1, *ratio * ), data=data). La sensibilidad y sensitividad se quedan casi igual 90/40 y kappa tambi?n 0.25. S? que se puede hacer con ranger, pero, por razones que no vienen al caso, no me viene bien cambiar. Gracias, como siempre, Manuel [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es [[alternative HTML version deleted]]