¿Es posible usar números complejos como tags de destino en scikit learn?

Estoy tratando de usar sklearn para predecir una variable que representa la rotación. Debido al salto desafortunado de -pi a pi en los extremos de rotación, creo que un método mucho mejor sería usar un número complejo como objective. De esa manera, un error de 1 + 0.01j a 1-0.01j no es tan devastador.

No puedo encontrar ninguna documentación que describa si sklearn admite números complejos como destinos para clasificadores. En teoría, la métrica de distancia debería funcionar bien, por lo que debería funcionar para al menos algunos algoritmos de regresión.

¿Alguien puede sugerir cómo puedo obtener un algoritmo de regresión para operar con números complejos como objectives?

Varios regresores soportan objectives de regresión multidimensional. Solo ve los números complejos como puntos 2d.

Buena pregunta. ¿Qué tal transformar angularjs en un par de tags, a saber. coordenadas xey Estas son funciones continuas de ángulo (cos y sin). ¿Puedes combinar los resultados de clasificadores separados xey para un ángulo? $ \ theta = \ sign (x) \ arctan (y / x) $. Sin embargo, ese resultado será inestable si ambos clasificadores devuelven números cercanos a cero.

Hasta ahora descubrí que la mayoría de los clasificadores, como los regresores lineales, convertirán automáticamente los números complejos a la parte real.

Sin embargo, los regresores kNN y RadiusNN funcionan bien, ya que hacen un promedio ponderado de las tags vecinas y manejan los números complejos con gracia.

El uso de un clasificador de objectives múltiples es otra opción, sin embargo, no quiero desacoplar las direcciones x e y, ya que eso puede llevar a soluciones inestables, como menciona el coronel Panic, cuando ambos resultados se acercan a 0.

Intentaré otros clasificadores con objectives complejos y actualizaré los resultados aquí.