Ich bin mir nicht sicher, ob ich eine Fourier-Transformation per se als eine Technik zur Reduzierung der Dimensionalität klassifizieren würde , obwohl Sie sie auf diese Weise sicherlich verwenden können.
f( t )F.( ω )tωF.( ω) bezeichnet normalerweise die Frequenz: F (10) gibt an, inwieweit das Signal mit 10 Zyklen / Sekunde schwankt (oder was auch immer Ihre zeitlichen Einheiten sind), während F (20) angibt, inwieweit es doppelt so schnell schwankt. Die Fourier-Transformation "funktioniert", indem Ihr ursprüngliches Signal als gewichtete Summe von Sinuskurven rekonstruiert wird (Sie erhalten tatsächlich "Gewicht", üblicherweise als Amplitude bezeichnet, und eine "Verschiebung", normalerweise als Phasenwerte bezeichnet, für jede Frequenzkomponente). Der Wikipedia-Artikel ist etwas komplex, aber es gibt eine Reihe anständiger Tutorials im Internet.
N.N./ 2N./ 2
Eine Fourier-Darstellung kann nützlich sein, wenn:
- Ihr Signal ist periodisch und
- Nützliche Informationen werden in der Periodizität des Signals codiert.
Angenommen, Sie zeichnen die Vitalfunktionen eines Patienten auf. Das elektrische Signal vom EKG (oder der Schall von einem Stethoskop) ist ein hochdimensionales Signal (z. B. mehr als 200 Abtastungen / Sekunde). Bei einigen Anwendungen interessiert Sie jedoch möglicherweise mehr die Herzfrequenz des Probanden, bei der es sich wahrscheinlich um den Ort des Peaks in der FFT handelt und die daher durch eine einzelne Ziffer dargestellt werden kann.
Eine wesentliche Einschränkung der FFT besteht darin, dass sie das gesamte Signal auf einmal berücksichtigt - sie kann keine Änderungen daran lokalisieren. Angenommen, Sie betrachten den Koeffizienten, der 10 Zyklen / Sekunde zugeordnet ist. Sie erhalten ähnliche Amplitudenwerte, wenn
- Das Signal weist eine gleichmäßige, aber mittelgroße 10-Hz-Schwingung auf.
- Diese Schwingung ist in der ersten Hälfte des Signals doppelt so groß, in der zweiten Hälfte jedoch völlig abwesend, und
- Die Schwingung fehlt in der ersten Hälfte völlig, ist aber in der zweiten Hälfte doppelt so groß wie # 1.
- (und so weiter)
Ich weiß natürlich nicht viel über Ihr Unternehmen, aber ich würde mir vorstellen, dass dies sehr relevante Funktionen sein könnten. Eine weitere wichtige Einschränkung der FFT besteht darin, dass sie auf einer einzigen Zeitskala arbeitet. Angenommen, ein Kunde besucht Ihr Unternehmen jeden zweiten Tag religiös: Er hat eine "Häufigkeit" von 0,5 Besuchen pro Tag (oder einen Zeitraum von 2 Tagen). Ein anderer Kunde kann auch regelmäßig zwei Tage hintereinander kommen, zwei abnehmen und dann für die nächsten zwei wieder besuchen. Mathematisch gesehen "oszilliert" der zweite Kunde doppelt so langsam wie der erste, aber ich würde wetten, dass diese beiden gleich wahrscheinlich abwandern.
Ein Zeit-Frequenz-Ansatz hilft, dieses Problem zu umgehen, indem Änderungen sowohl in der Häufigkeit als auch in der Zeit lokalisiert werden. Ein einfacher Ansatz ist die Kurzzeit-FFT, die Ihr Signal in kleine Fenster unterteilt und dann die Fourier-Transformation jedes Fensters berechnet. Dies setzt voraus, dass das Signal innerhalb eines Fensters stationär ist, sich jedoch über diese hinweg ändert. Die Wavelet-Analyse ist ein leistungsfähigerer (und mathematisch strengerer Ansatz). Es gibt viele Wavelet-Tutorials - das charmant benannte Wavelets for Kids ist ein guter Anfang, auch wenn es für alle außer den klügsten tatsächlichen Kindern ein bisschen viel ist. Es gibt mehrere Wavelet-Pakete für R, aber ihre Syntax ist ziemlich einfach (siehe Seite 3 des Wavelet-PaketsDokumentation für einen). Sie müssen ein geeignetes Wavelet für Ihre Anwendung auswählen - dies sieht im Idealfall wie eine Schwankung des Interesses an Ihrem Signal aus, aber ein Morlet-Wavelet kann ein vernünftiger Ausgangspunkt sein. Wie bei der FFT führt die Wavelet-Transformation selbst nicht zu einer starken Reduzierung der Dimensionalität. Stattdessen repräsentiert es Ihr ursprüngliches Signal als Funktion von zwei Parametern ("Skala", die der Frequenz analog ist, und "Translation", die der Position in der Zeit entspricht). Wie bei den FFT-Koeffizienten können Sie Koeffizienten mit einer Amplitude nahe Null sicher verwerfen, wodurch Sie eine effektive Reduzierung der Dimensionalität erzielen.
Abschließend möchte ich Sie fragen, ob die Reduzierung der Dimensionalität wirklich das ist, was Sie hier wollen. Die Techniken, nach denen Sie gefragt haben, sind alle im Wesentlichen Möglichkeiten, die Größe der Daten zu reduzieren und sie gleichzeitig so genau wie möglich zu erhalten. Um jedoch die beste Klassifizierungsleistung zu erzielen, möchten wir normalerweise die Daten erfassen und transformieren, um relevante Funktionen so explizit wie möglich zu gestalten und alles andere zu verwerfen.
Manchmal ist eine Fourier- oder Wavelet-Analyse genau das, was benötigt wird (z. B. Umwandlung eines hochdimensionalen EKG-Signals in einen einzelnen Herzfrequenzwert); In anderen Fällen sind Sie mit völlig anderen Ansätzen (gleitenden Durchschnitten, Derivaten usw.) besser dran. Ich möchte Sie ermutigen, über Ihr eigentliches Problem nachzudenken (und vielleicht sogar ein Brainstorming mit Vertriebs- / Kundenbindungsmitarbeitern durchzuführen, um festzustellen, ob sie Intuitionen haben) und diese Ideen zu verwenden, um Funktionen zu generieren, anstatt blindlings eine Reihe von Transformationen zu versuchen.