Necesito saber por qué tenemos que lidiar con el desequilibrio de datos. Sé cómo lidiar con él y con diferentes métodos para resolver el problema, que es mediante un muestreo ascendente o descendente o mediante el uso de Smote.
Por ejemplo, si tengo una enfermedad rara, el 1 por ciento de cada 100, y digamos que decidí tener un conjunto de datos equilibrado para mi conjunto de entrenamiento, que es: 50/50 muestra Esto no hará que la máquina piense que el 50% de los pacientes tendrán ¿enfermedad? a pesar de que la proporción es 1 de 100. Entonces
- ¿Por qué necesitamos lidiar con el desequilibrio de datos?
- ¿Cuál es la proporción recomendada para establecer el equilibrio?
Respuestas:
Debe lidiar con un conjunto de datos desequilibrados cuando el valor de encontrar la clase minoritaria es mucho mayor que el de encontrar la mayoría.
Digamos que el 1% de la población tiene esa enfermedad rara. Suponga que asigna el mismo costo para decir que un hombre sano está enfermo o para decir que un hombre enfermo está sano. Proporcione un modelo que diga que todos son saludables, obtenga un 99% de precisión y regrese a casa temprano. El problema con este modelo es que, aunque tiene una alta precisión, probablemente no sea lo que está buscando. La mayoría de las veces desea encontrar a las personas con la enfermedad (dando mucho peso a los falsos negativos) mucho más de lo que teme enviar a una persona sana a pruebas innecesarias (bajo peso a falsos positivos). En un problema de salud del mundo real, la relación entre el peso puede ser fácilmente de 1 a 1,000.
El desequilibrio en la distribución no logra que la mayoría de los algoritmos encuentren una solución adecuada.
Tiene razón en que simplemente equilibrar la distribución no es la solución óptima. De hecho, un algoritmo que se entrena en una distribución equilibrada no se ajusta a la distribución natural en la que se evaluará. Mi método favorito es adaptarlo de nuevo, como puedes ver aquí . Para una discusión, ver aquí .
Simplemente establecer la relación con algún otro problema no funcionará, ya que tendrá el mismo problema.
Smote funciona de una manera diferente, que no funcionó tan bien cuando lo probé, pero podría ajustarse a su problema.
fuente
necesita lidiar con el desequilibrio de clase si / porque mejora su modelo (en datos no vistos). "Mejor" es algo que debes definir a ti mismo. Podría ser precisión, podría ser un costo, podría ser la verdadera tasa positiva, etc.
Hay un matiz sutil que es importante comprender cuando se habla del desequilibrio de clase. Es decir, sus datos están desequilibrados porque:
En algunos casos, una clase ocurre mucho más que otra. Y esta bien. En este caso, debe analizar si ciertos errores son más costosos que otros. Este es el ejemplo típico de detección de enfermedades mortales en pacientes, averiguar si alguien es un terrorista, etc. Esto se remonta a la respuesta breve. Si algunos errores son más costosos que otros, querrás "castigarlos" dándoles un costo más alto. Por lo tanto, un modelo mejor tendrá un costo menor. Si todos los errores son tan malos, entonces no hay una razón real por la que deba usar modelos sensibles al costo.
También es importante tener en cuenta que el uso de modelos sensibles al costo no es específico para los conjuntos de datos desequilibrados. Puede utilizar dichos modelos si sus datos también están perfectamente equilibrados.
A veces, sus datos están "desequilibrados" porque no representan la verdadera distribución de los datos. En este caso, debe tener cuidado, ya que tiene "demasiados" ejemplos de una clase y "muy pocos" de la otra, y por lo tanto, debe asegurarse de que su modelo no se sobreajusta en una. de estas clases
Esto es diferente a usar costos porque podría no ser el caso de que un error sea peor que otro. Lo que sucedería es que sería parcial y no sería beneficioso para su modelo si los datos no vistos no tienen la misma distribución que los datos que entrenó.
Digamos que te doy datos de entrenamiento y tu objetivo es adivinar si algo es rojo o azul. Si confundes el azul con el rojo o el rojo con el azul no hace mucha diferencia. Sus datos de entrenamiento tienen 90% de instancias rojas en las que, en la vida real, solo ocurren el 10% del tiempo. Tendría que lidiar con eso para mejorar su modelo.
fuente