Jestem nowy w dziedzinie uczenia maszynowego, ale zrobiłem swój udział w przetwarzaniu sygnałów. Daj mi znać, jeśli to pytanie zostało błędnie oznaczone.
Mam dwuwymiarowe dane, które są zdefiniowane przez co najmniej trzy zmienne, z wysoce nieliniowym modelem, który jest zbyt skomplikowany, aby symulować.
Różniłem się sukcesem przy wydobywaniu dwóch głównych składników z danych przy użyciu metod takich jak PCA i ICA (z biblioteki Python Scikit-Learn), ale wydaje się, że te metody (a przynajmniej implementacja tych metod) są ograniczone do wyodrębnienia tylu komponentów, ile jest danych w danych, na przykład 2 komponentów z chmury punktów 2D.
Podczas drukowania danych wytrenowanym okiem jest jasne, że istnieją trzy różne trendy liniowe, trzy kolorowe linie pokazują kierunki.
Podczas korzystania z PCA główny składnik jest wyrównany do jednej z kolorowych linii, a drugi jest ustawiony pod kątem 90 °, zgodnie z oczekiwaniami. Podczas korzystania z ICA pierwszy składnik jest wyrównany z niebieską linią, a drugi jest gdzieś pomiędzy czerwoną a zieloną. Szukam narzędzia, które może odtworzyć wszystkie trzy elementy w moim sygnale.
EDYCJA, Informacje dodatkowe: Pracuję tutaj w małym podzbiorze większej płaszczyzny fazowej. W tym małym podzbiorze każda zmienna wejściowa powoduje liniową zmianę na płaszczyźnie, ale kierunek i amplituda tej zmiany jest nieliniowa i zależy od tego, gdzie dokładnie na większej płaszczyźnie pracuję. W niektórych miejscach dwie zmienne mogą ulec degeneracji: powodują zmiany w tym samym kierunku. na przykład powiedzmy, że model zależy od X, Y i Z. Zmiana zmiennej X spowoduje zmianę wzdłuż niebieskiej linii; Y powoduje zmianę wzdłuż zielonej linii; Z, wzdłuż czerwonej.