시간 | 온도(F) |
---|---|
월요일 아침 | 35 |
월요일 점심 | 52 |
월요일 저녁 | 15 |
화요일 아침 | 37 |
화요일 점심 | 52 |
화요일 저녁 | 15 |
그래프로 데이터를 표현하면 온도가 주기성을 띄고 전반적으로 증가하는 추세를 가짐
→ 시계열을 요약해 많은 내용을 유실하지 않은 채 데이터를 압축할 수 있음
: 시계열 특징 생성의 핵심으로 통찰을 얻을 수 있는 부분
계산 및 스토리지 리소스의 정도, 특징의 개수 등을 고려해야 한다
간단하면서도 자주 사용되는 요약 통계 특징
계산이 복잡해도 유용한 특징을 시각적으로 식별
1. 파이썬의 tsfresh 모듈
c3()
함수는 의 기대값을 계산cid_ce()
함수는 에서 까지 더한 것에 대한 제곱근을 계산friedrich_coefficients()
함수는 복잡한 비선형적 움직임을 묘사하는 적합된 모델의 계수를 반환→ 모듈 사용 시 오픈소스를 활용한 분석을 진행할 때, 잘 검증된 도구를 사용하면 다양한 이점을 누릴 수 있다
tsfresh
같은 라이브러리는 특징 계산용 프레임워크를 제공하는 것이지, 단순히 긴 특징들의 목록을 제공하는 것은 아니다tsfresh
라이브러리는 특징을 사용하는 하위작업에 연결되도록 설계되었다2. 시계열의 분석 플랫폼: Cusium
→ 특징 생성 외에도 웹 기반 GUI를 포함하고 있어서 특징을 시각적으로 생성할 수 있게 해주고 sklearn과도 통합됨
3. R의 tsfeatures 패키지
acf_features()
와 pacf_features()
함수는 시계열 행동에 대한 자기상관의 중요성에 관련된 여러 가지 값을 계산lumpiness()
와 stability()
함수는 타일 윈도 기능을, max_level_shift()
와 max_var_shift()
함수는 롤링 윈도 기능을 제공unitroot_kpss()
와 unitroot_pp()
함수→ 학계에서 이루어진 다양한 시계열 특징 연구 프로젝트의 내용을 포함
📌 주식시장의 기술지표
상대강도지수(RSI)
이동평균 수렴발산(MACD)
체이킨 머니 플로(CMF)
📌 헬스케어 시계열
ex) EKG 데이터
유용한 특징 선택 알고리즘 : FRESH
→ 확장 가능한 가설 검정에 기반한 특징 추출
→ 분산 방식으로 저장되는 경우가 많은 데이터를 병렬 계산을 용이하게 해줌
tsfresh
를 사용해 자동으로 특징 추출
from tsfresh import extract_features
extracted_features = extract_features(timeseries, column_id = "id", column_sort = "time)
재귀특징제거법(RFE) 으로 특징 선택 기법을 사용할 수 있다
FRESH 알고리즘이 고른 특징 목록 중 10개, FRESH 알고리즘이 기각한 특징 목록 중 10개를 무작위로 선택해 결합
x_idx = random.sample(range(len(features_filtered.columns)), 10)
selX = features_filtered.iloc[:, x_idx].values
unselected_features = list(set(extracted_features.columns).difference(set(features_filtered.columns)))
unselected_features = random.sample(unselected_features, 10)
unsel_x_idx = [idx for (idx, val) in enumerate(extracted_features.columns) if val in unselected_features]
unselX = extracted_features.iloc[:, unsel_x_idx].values
mixed_X = np.hstack([selX, unselX])
20개의 특징에 대해 RFE를 수행하면 RFE에 사용되는 모델에 대한 중요도 순위를 알 수 있다
svc = SVC(kernel = "linear", C = 1)
rfe = RFE(estimator = svc, n_features_to_select = 1, step = 1)
rfe.fit(mixed_X, y)
rfe.ranking_array([9, 12, 8, 1, 2, 3, 6, 4, 10, 11, 16, 5, 15, 14, 7, 13, 17, 18, 19, 20])
RFE를 사용해 선택된 특징을 좀 더 솎아낼 수 있고 입력 파라미터에 대해 미세조정, 최초 입력으로 생성한 특징의 개수를 조정할 때 온전성 검사를 위한 목적으로 사용할 수 있다
여러 가지 목적에서 특징 생성은 유용하다