시계열 분류 기능


43

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

f(XT)=y∈[1..K]for XT=(x1,…,xT)with xt∈Rd ,
viDT
ϕ(XT)=v1,…,vD∈R ,
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,…,vD∈RD

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


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.