Ich arbeite an einem Zeitreihenklassifizierungsproblem, bei dem die Eingabe Zeitreihen-Sprachnutzungsdaten (in Sekunden) für die ersten 21 Tage eines Mobiltelefonkontos sind. Die entsprechende Zielvariable ist, ob dieses Konto im Bereich von 35 bis 45 Tagen gekündigt wurde oder nicht. Es handelt sich also um ein binäres Klassifizierungsproblem.
Ich erhalte sehr schlechte Ergebnisse mit allen Methoden, die ich bisher ausprobiert habe (in unterschiedlichem Maße). Zuerst habe ich die k-NN-Klassifizierung (mit verschiedenen Modifikationen) ausprobiert und extrem schlechte Ergebnisse erzielt. Dies führte mich dazu, Merkmale aus den Zeitreihen zu extrahieren - dh Mittelwert, Varianz, Max, Min, Gesamtzahl der Nulltage, Gesamtzahl der nachfolgenden Nulltage, Differenz zwischen dem Durchschnitt der ersten Hälfte und dem Durchschnitt der zweiten Hälfte usw. - und die prädiktivsten Merkmale schienen insgesamt zu sein Null-Tage und insgesamt nachfolgende Null-Tage (unter Verwendung mehrerer Klassifizierungsalgorithmen). Dies war die beste Leistung, aber die Leistung war immer noch nicht sehr gut.
Meine nächste Strategie bestand darin, die negativen Instanzen in meinem Trainingsset zu übertasten, da es so wenige davon gab. Dies führte zu einer korrekteren Stornierungsvorhersage, jedoch auf Kosten von mehr falsch positiven Ergebnissen.
Ich fange an zu denken, dass die Zeitreihen-Nutzungsdaten selbst einfach nicht sehr prädiktiv sind (obwohl der gesunde Menschenverstand dies vorschreibt). Vielleicht gibt es eine latente Variable, die ich nicht in Betracht ziehe. Das Betrachten der Daten zeigt auch ein seltsames Verhalten. Das heißt, einige Beispiele zeigen eine sehr geringe oder abnehmende Nutzung (oder manchmal gar keine) und werden nicht abgebrochen, und einige zeigen eine Zunahme der Nutzung, die abgebrochen wird. Vielleicht erzeugt dieses widersprüchliche Verhalten keine sehr klare Entscheidungsgrenze für einen Klassifikator.
Eine weitere mögliche Fehlerquelle ist die Tatsache, dass viele Trainingsbeispiele sehr spärlich sind (dh viele Tage mit 0 Verwendung). Eine Idee, die ich noch nicht ausprobiert habe, ist, die Zeitreihen in Segmente aufzuteilen und auf diese Weise einige Funktionen zu generieren, aber ich habe keine großen Hoffnungen.