Pracuję nad problemem klasyfikacji szeregów czasowych, w którym dane wejściowe to dane użycia głosu w szeregu czasowym (w sekundach) przez pierwsze 21 dni konta telefonu komórkowego. Odpowiednią zmienną docelową jest to, czy to konto zostało anulowane w przedziale 35-45 dni. Jest to więc problem z klasyfikacją binarną.
Otrzymuję bardzo słabe wyniki ze wszystkich metod, które próbowałem do tej pory (w różnym stopniu). Najpierw próbowałem klasyfikacji k-NN (z różnymi modyfikacjami) i uzyskałem bardzo złe wyniki. To doprowadziło mnie do wyodrębnienia cech z szeregów czasowych - tj. Średniej, wariancji, maksimum, min, sumy zer dni, całkowitej końcowej liczby dni zero, różnicy między średnią pierwszą i drugą połową średniej itp., A najbardziej przewidywalne cechy wydawały się całkowite zerowe dni i końcowe końcowe zero dni (przy użyciu kilku algorytmów klasyfikacji). To działało najlepiej, ale wydajność nadal nie była bardzo dobra.
Moją następną strategią było przeanalizowanie negatywnych przypadków w moim zestawie treningowym, ponieważ było ich tak mało. Spowodowało to dokładniejsze przewidywanie anulowania, ale kosztem więcej fałszywych trafień.
Zaczynam myśleć, że być może same dane dotyczące wykorzystania szeregów czasowych po prostu nie są zbyt przewidywalne (choć zdrowy rozsądek mówi, że tak powinno być). Być może istnieje jakaś ukryta zmienna, której nie rozważam. Patrzenie na dane pokazuje również dziwne zachowanie. tzn. niektóre przykłady pokazują bardzo małe lub malejące użycie (lub czasami wcale) i nie anulują, a niektóre pokazują wzrost wykorzystania, które anulują. Być może to sprzeczne zachowanie nie generuje bardzo wyraźnej granicy decyzji dla klasyfikatora.
Innym możliwym źródłem błędu jest fakt, że wiele przykładów szkoleń jest bardzo rzadkich (tj. Wiele dni przy zerowym użyciu). Pomysłem, którego jeszcze nie próbowałem, jest podzielenie szeregów czasowych na segmenty i wygenerowanie w ten sposób niektórych funkcji, ale nie mam wielkich nadziei.