2022-05-02 ~ 2022-05-08
Peer Group에 가입하고, 첫 모임을 하였다.
여러 개의 독립변수와 한 개의 종속변수 간의 상관관계를 모델링 하는 기법
머신러닝 회귀 예측의 핵심은 주어진 피처와 결정 값 데이터 기반에서 학습을 통해
최적의 회귀 계수
를 찾아 내는 것
최적의 회귀 모델을 만든다는 것은 전체 데이터의 잔차(오류 값) 합이 최소가 되는 모델을 만든다는 의미.( 동시에 오류 값 합이 최소가 될 수 있는 최적의 회귀 계수를 찾는다는 의미)
위 도표에서 알 수 있듯이 잔차는 +, - 값이 모두 가능하기 때문에 잔차를 단순히 더하게 되면 0이 되는 경우가 발생할 수 있음
오류 값의 제곱을 구해서 더하는 방식. 미분 등의 계산을 편리하게 하기 위해서 RSS 방식으로 오류 합을 구함
회귀식의 독립변수 X, 종속변수Y가 중심 변수가 아니라 w 변수(회귀 계수)가 중심 변수
최적의 RSS를 도출하기 위해 사용되는 W 파라미터를 구하기 위한 방법
다음의 2차함수 그래프에서 최초 초기 랜덤값을 찍고 점진적인 학습을 통해 계속해서 손실함수가 최소가 되는 Point를 찾는 것
비용 함수가 포물선 형태의 2차 함수라면 경사 하강법은 최초 w에서부터 미분을 적용한 뒤,
이 미분 값이 계속 감소하는 방향으로 순차적으로 w를 업데이트한다.
미분된 1차 함수의 기울기가 감소하지 않는 지점을 비용 함수가 최소인 지점으로 간주하고 그때의 w 값을 반환한다.
경사하강법의 핵심은 “어떻게 하면 오류가 작아지는 방향으로 W 값을 보정할 수 있을까?”
이다
예측값 y^은 wx + b로 계산됨
업데이트할 w를 구하기 위해 w에 대한 편미분
gdW : LR ((y^ - y ) x)MEAN
gdB : LR * ((y^ - y ))MEAN
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
*# 표준정규분포를 따르는 0 ~ 1 사이의 난수 발생
X = np.random.rand(100)
*# 임의의 노이즈를 위해 아래와 같이 y변수 생성*
y = X + np.random.rand(100)*
# 위에서 생성한 X, y 시각화
plt.scatter(X, y)
plt.show()
# 실제값과 예측값을 시각화 하는 함수
def plot_prediction(pred, y):
plt.scatter(X, y, label = 'real_value')
plt.scatter(X, pred, label = 'prediction')
plt.legend()
plt.show()
# Gradient Desent 구현
# 초기 w, b 값
w = np.random.uniform(-1, 1)
b = np.random.uniform(-1, 1)
LR = 0.5
for epoch in range(100):
y_Pred = w * X + b # 예측값
# error가 0.001 이하이면 early stopping 하도록
error = np.abs(y_Pred - y).mean() # MAE
if error < 0.001:
break
# Gradient Descent 계산
w_grad = LR * ((y_Pred - y) * X).mean()
b_grad = LR * ((y_Pred - y)).mean()
# 새로운 w, b 갱신
w = w - w_grad
b = b - b_grad
if epoch % 20 == 0:
y_Pred = w * X + b
plot_prediction(y_Pred, y)
터빈의 경우 대부분 주기적으로(e.g. 10초, 1분 마다) 값이 추출되는 시계열 데이터가 분석 대상
다양한 전처리 방법들이 있지만, 데이터들 간의 연관성이 높은 터빈 데이터에서는 시간에 따른 상관관계의 변화를 파악하는 것이 중요
갑작스러운 상관관계의 변화가 고장에 대한 신호가 되기도 하고, 상관관계를 이용하여 진단 및 예측 모델을 개선할 수도 있기 때문
Correlation이란 2개의 변수가 가지는 선형 상관관계를 의미합니다. Collinearity는 Regression Model을 생성할 때 독립변수 중 2개 이상이 강한 선형 상관관계를 가지는 상황
Pearson 상관 계수는 +1과 -1 사이의 값을 가지며, +1은 완벽한 양의 선형 상관 관계, 0은 선형 상관 관계없음, -1은 완벽한 음의 선형 상관 관계를 의미
한 변수가 증가할 때 다른 변수가 증가 또는 감소하는지에 대한 정보는 얻을 수 있어도, 두 변수 중 어느 변수가 다른 변수에 영향을 주는지에 대한 정보는 얻을 수 없습니다. 또한 Pearson Correlation은 데이터가 등분산성을 가진다고 가정하므로 변수 데이터가 정규 분포를 가지지 않거나 outlier가 발생할 경우 잘못된 분석 결과가 도출
Kendall Tau Correlation Coefficient은 순위 상관 계수(Rank Correlation Coefficient)의 한 종류이며 두 변수들 간의 순위를 비교하여 연관성을 계산
Pearson과 같이 두 데이터의 연관성을 +1과 -1 사이의 값으로 나타내고, 전체 구간에 대한 결과
두 변수간 데이터 그 자체가 아닌 순위를 비교하는 것이기에, 변수 데이터가 정규 분포를 가지지 않으면 잘못된 결과를 얻을 수 있는 Pearson 상관 계수의 단점이 보완
하나의 time-series를 조금씩 shifting 시키면서 데이터 전체 범위에 대하여 Pearson 상관 계수를 계산하여 나타냅니다. TLCC는 Pearson, Kendall Correlation과는 다르게 두 데이터 사이에서의 인과관계를 파악
인과관계의 대표적인 것 : leader-follower relationship
예시로 Figure 3에서 터빈 데이터 A1과 A2의 TLCC 결과를 나타냈습니다. A2의 shift범위를 -500~+500까지의 값을 계산하여 shift에 따라 상관 계수 값의 변화를 관찰
결과를 보면 A2가 앞으로 28만큼 shift 되었을 때 상관관계의 절댓값이 가장 높게 측정되었습니다. Offset이 양의 값이므로 A2가 이 상관관계를 주도
TLCC는 전체 구간에 대한 결과이므로, 추가적으로 시간에 따라 상세하게 분석을 하고자 한다면 Windowed Time Lagged Cross Correlation (WTLCC)
을 사용
DTW는 Figure 4와 같이, 두 time-series 데이터 간의 최소거리를 가지는 직선 경로를 찾는 방식
Signal의 길이가 서로 다르더라도 DTW를 적용할 수 있다는 장점이 있습니다. 이러한 장점이 있어 Speech analysis에 사용하기 위해 처음 개발
출처 : https://tech.onepredict.ai/7b5cb659-687d-48a4-ac80-827d30e49fb3