시계열 분류 기능


43

가변 길이 시계열 을 기반으로 한 (멀티 클래스) 분류 의 문제 , 즉 함수 , 와 독립적으로 고정 된 크기 의 선택된 피처 세트로 시간 세리의 전역 표현을 통해 를 입력 한 다음이 기능 세트에 표준 분류 방법을 사용하십시오. 있지 , 예측에 관심이있는, 즉 예측T

f(XT)=y[1..K]for XT=(x1,,xT)with xtRd ,
viDT
ϕ(XT)=v1,,vDR ,
xT+1. 예를 들어, 사람의 성별을 예측하기 위해 사람이 걷는 방식을 분석 할 수 있습니다.

내가 고려해야 할 표준 기능은 무엇입니까? 예를 들어, 우리는 분명히 세리 (또는 더 높은 차수 모멘트) 의 평균분산 을 사용할 수 있고 세리의 이산 푸리에 변환 (또는 이산 웨이블릿 변환 )의 일부 간격에 포함 된 에너지와 같이 주파수 영역을 조사 할 수도 있습니다 .

답변:


45

간단한 통계 기능

  • 각 차원 의 평균d
  • 치수 의 표준 편차d
  • 치수 의 왜도 , 첨도 및 고차 모멘트d
  • 최대 값 및 최소값

시간 세리 분석 관련 기능

주파수 영역 관련 기능

DFT 및 DWT의 에너지 보존 기능에 대한 연구는 Morchen03 을 참조하십시오.

  • 주파수의 피크 진폭의 DFT들 위한 트랜드 치수k d
  • k이 DFT의 quantiles

1
Emile,이 질문은 방금 제기 한 것과 비슷합니다 ( stats.stackexchange.com/questions/51475/… ). DFT 기능에 대한 R 코드를 게시 할 수 있습니까?
B_Miner

가변 길이 시계열에 대한 셰이프 릿을 기반으로하는 방법이 있습니까?
Simone

8

Emile, 귀하의 답변에 나열된 기능은 꽤 좋은 출발점이라고 생각하지만 항상 그렇듯이 귀하의 문제에 대한 도메인 전문 지식 (또는 적어도 좋은 생각)이 똑같이 중요하다고 생각합니다.

신호의 미분 (또는 적분)에서 계산 된 기능을 포함하는 것이 좋습니다. 예를 들어, 빠른 가속 / 감속이 사고가 발생하기 쉬운 운전에 대한 합리적으로 좋은 예측 변수라고 설명했습니다. 이 정보는 분명히 위치 신호에 여전히 존재하지만 거의 명시 적이지는 않습니다.

푸리에 계수를 웨이블릿 또는 웨이블릿 패킷 표현으로 대체 할 수도 있습니다. 웨이블릿의 주요 장점은 주파수와 시간 모두에서 기능을 지역화 할 수 있고 기존 푸리에 계수는 시간으로 만 제한된다는 것입니다. 데이터에 불규칙하게 켜지거나 꺼지는 구성 요소가 있거나 푸리에 방법에 문제가 될 수있는 구형파 같은 펄스가있는 구성 요소가있는 경우 특히 유용 할 수 있습니다.


6

다른 답변에서 제안했듯이 잠재적 기능으로 사용할 수있는 수많은 시계열 특성이 있습니다. AR 모델의 계수와 같은 평균, 시계열 관련 기능 또는 증강 된 디키 풀러 가설 검정의 테스트 통계와 같은 매우 정교한 기능과 같은 간단한 기능이 있습니다.

가능한 시계열 기능에 대한 포괄적 인 개요

python 패키지 tsfresh 는 이러한 기능의 추출을 자동화합니다. 이 문서에는 다양한 계산 기능이 설명되어 있습니다. 계산 된 기능이 있는 페이지는 여기에서 찾을 수 있습니다 .

면책 조항 : 나는 tsfresh의 저자 중 하나입니다.


5

수동 엔지니어링 기능을 추출하기 위해 고전적인 방법을 사용하는 대신 자동 인코더를 사용하는 것이 좋습니다 . 자동 인코더는 딥 러닝 아키텍처의 기능 추출에서 중요한 역할을합니다.

자동 인코더는 함수 를 배우려고 시도합니다 . 즉, 출력하도록, 신원 기능에 대한 근사치를 배우려고 노력하고있다 유사하다 .X T X Tf(XT)XTX^TXT

아이덴티티 기능은 배우려고하는 특히 사소한 기능인 것 같습니다. 그러나 숨겨진 단위의 수를 제한하는 등 네트워크에 제약을두면 흥미로운 데이터 구조를 발견 할 수 있습니다.

기능 추출기

이런 식으로 원하는 은 가장 깊은 자동 인코더에서 가장 중간 레이어의 출력 값과 같습니다 (가장 중간에 숨겨진 단위 수를 제한하는 경우) .ϕ(XT)=v1,,vDRD

또한 여러 가지 자동 인코더 를 사용 하여 문제에 대한 최상의 솔루션을 찾을 수 있습니다.


4

링크 된 논문은 다른 맥락에서 거의 같은 이슈에 관심이 있기 때문에 다소 깨달을 것입니다.

논문 초록 (인터넷 아카이브)

종이 PDF


1

시계열의 길이에 따라 일반적인 접근 방식은 데이터를 세그먼트 (예 : 10 초)로 전환하는 것입니다.

그러나 종종 시계열을 세그먼트로 나누기 전에 필터링 및 아티팩트 거부와 같은 일부 전처리를 수행해야합니다. 그런 다음 주파수 (즉, 각 에포크에 대해 FFT를 취함), 시간 (예 : 해당 에포크에서 시계열의 평균값 등) 또는 형태 (예 : 신호의 형태)를 기반으로하는 기능과 같은 다양한 기능을 계산할 수 있습니다. 각 시대의 / time-series).

일반적으로 시계열 / 신호의 세그먼트 (에포크)를 분류하는 데 사용되는 기능은 도메인별로 다르지만 Wavelet / Fourier 분석은 단순히 기능 자체가 아니라 주파수 / 시간-주파수 영역에서 신호를 검사 할 수있는 도구입니다.

분류 문제에서 각 에포크에는 클래스 레이블 (예 : 'happy'또는 'sad')이 있으며 각 분류기에 대해 계산 된 6 가지 기능을 사용하여 'happy'와 'sad'에포크를 구분하도록 분류자를 훈련시킵니다.

각 시계열이 분류에 대한 단일 사례를 나타내는 경우 시계열의 모든 샘플에서 각 피처를 계산해야합니다. FFT는 신호가 LTI (linear time invariant) 인 경우에만 해당됩니다. 즉, 신호가 전체 시계열에 대해 정지 된 것으로 간주 될 수있는 경우, 신호가 관심있는 기간 동안 정지되지 않은 경우 웨이블릿 분석은 더 적절합니다. 이 접근법은 각 시계열이 하나의 특징 벡터를 생성하고 분류에 대한 하나의 사례를 구성한다는 것을 의미합니다.


나는 자연스럽게 연속적인 과정 인 시계열을 이산 기간 (또는 에포크)으로 나누면 정보가 손실 된다고 항상 느꼈습니다 . 시리즈에 자연적인 시대가 없다면, 어떻게 시대를 선택합니까? 원하는 결과에 맞는 에포크가 발견 될 수 있습니다.
Cam.Davidson.Pilon

1
에포크가 모든 결과에 적합하지만 실제 문제에 대해 확실하지 않다는 것을 알 수 있습니다. 정지 신호가 아닌 경우 일시적인 변화를 고려할 방법을 찾아야합니다 (신호 / 시계열이 분석적으로 적절하게 설명되거나 선형 시간이 변하지 않는 경우) 이것은 필요하지 않습니다). 에포크 길이는 다시 도메인 특정 적이지만 일반적으로 신호가 관심있는 시간 (에포크)에서 정지 될 정도로 짧도록 선택됩니다.
BGreene

BGreene, 분류에 사용 된 기능을 선택하기 위해 세리를 에포크로 분할하면 어떤 이점이 있는지 설명 할 수 있습니까? 이 분할은 나중에 계산을위한 도우미 (예 : FFT)로 볼 수 있지만 기능 선택과 관련된 것은 아닙니다. 아마 당신이 언급 한 "morphology"와 관련이 있습니다.
Emile

신기원으로 분할하는 것은 기능 선택과 아무 관련이 없습니다. 신호가 긴 경우 (예 : 10 시간 동안 녹음 @ 100Hz로 샘플링) 시간이 지남에 따라 신호가 어떻게 변하는 지 확인하려면 신호를 에포크 (epoch)로 분리해야합니다. 분류 문제에서 각 에포크에는 클래스 레이블 (예 : 'happy'또는 'sad')이 있으며 각 분류기에 대해 계산 된 6 가지 기능을 사용하여 'happy'와 'sad'에포크를 구분하도록 분류자를 훈련시킵니다.
BGreene

Ok :) 그것은 내 원래의 질문과 관련이 없습니다. 나는 수업이 전체 세리에 레이블을 붙인 경우를 고려합니다. 명확한 예를 추가하기 위해 질문을 편집하겠습니다.
Emile
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.