No estoy familiarizado con R o ese paquete, pero no hay ningún problema para extender los modelos EM y mixtos a distribuciones no gaussianas (datos no continuos). Sin embargo, esto implica alejarse del GMM estándar y pensar en lugar de modelos de mezcla generales.
La forma más general es pensar en esto (que permite actualizaciones exactas de los posteriores) es como una mezcla de distribuciones familiares exponenciales, pero en su caso es suficiente usar una distribución de Bernoulli (que es un miembro de la familia exponencial ) para sus variables binarias (multinoulli si tienen más de dos categorías). Básicamente, denotemos [math] x [/ math] sus variables continuas y [math] z [/ math] sus variables categóricas, la densidad de su modelo de mezcla es ahora:
[matemáticas] p (x, z | \ theta) = \ sum_M C_m N (x; \ mu_m, \ Sigma_m) \ prod_z Ber (z; p_m ^ {(z)}) [/ math]
- ¿Por qué algunos clasificadores no pueden manejar los atributos continuos?
- ¿De qué fuente será mejor aprender el aprendizaje automático?
- ¿Qué son las medidas completamente aleatorias y cómo / cuándo son útiles?
- ¿Qué te sorprendió después de ver algo relacionado con el aprendizaje automático, la IA, la PNL o la visión por computadora?
- Después de lograr una precisión de aproximadamente el 82% en los datos de prueba mediante regresión logística, ¿cómo puedo estar seguro / seguro de que mi algoritmo se generalizará bien para toda la población?
donde denoto [math] C_m [/ math] los componentes anteriores, y [math] \ theta_m [/ math] los parámetros de distribución del componente (recomendaría limitar [math] \ Sigma_m [/ math] para que sea diagonal para facilitar derivación y generalización). A partir de ahí, la derivación de EM es más o menos la misma: su función auxiliar sería:
[matemáticas] Q (\ theta, \ hat {\ theta}) = \ sum ^ n \ sum ^ M p (w_m | x_i, z_i, \ theta) \ log p (x_i, z_i | w_m, \ theta_m) [/ matemáticas]
Donde estoy usando [matemáticas] p (w_m | x, z, \ theta) [/ matemáticas] para denotar el componente posterior. Tome la derivada wrt [math] \ theta [/ math], obtenga la actualización posterior y listo. Introduce eso en el procedimiento EM estándar. Aquí hay un enlace a algunas diapositivas que describen la parte de Bernoulli, el resto es el mismo que para los GMM.
EDITAR
Entonces trabajando a través de los derivados y otras cosas (para completar la respuesta):
[matemáticas] \ hat {\ mu} _m = \ frac {\ sum_n p (w_m | x_i, z_i, \ theta) x_i} {\ sum_n p (w_m | x_i, z_i, \ theta)} [/ math]
[matemáticas] \ hat {\ sigma} _ {m, j} = \ frac {\ sum_n p (w_m | x_i, z_i, \ theta) (x_ {i, j} – \ mu_ {m, j}) ^ 2 } {\ sum_n p (w_m | x_i, z_i, \ theta)} [/ math]
[matemáticas] \ hat {p} _m ^ {(z)} = \ frac {\ sum_n p (w_m | x_i, z_i, \ theta) z_i} {\ sum_n p (w_m | x_i, z_i, \ theta)} [ /matemáticas]
Sin embargo, desafortunadamente la actualización posterior en este caso no tiene una solución de forma cerrada, por lo que nos veríamos obligados a recurrir a algo como EM o MCEM variacional. Otra cosa que podría hacer es usar las actualizaciones posteriores regulares de GMM, que es como asumir que la parte posterior no depende de las variables categóricas. Esto es teóricamente posible, pero no está justificado.