목록전체 글 (150)
Just Fighting
탐욕 알고리즘(Greedy algorithm) 매 순간 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행해 최종적인 최적해에 도달하는 기법 분할정복 알고리즘 (Divide-and-conquer algorithm) 주어진 문제 그대로 해결할 수 없는 문제를 작은 문제로 분할하여 해결하는 방법 문제를 하나 이상의 작은 문제로 분할(divide) 작은 문제들을 각각 정복(conquer) 필요하다면, 작은 문제데 대한 해답을 통합(combine)하여 원래 문제의 해답을 구함 동적계획법(Dynamic programming) 주어진 문제를 중첩되는 작은 문제들로 단순화한 후, 재귀적인 구조를 활용하여 전체 문제를 해결 전체 문제를 일련의 중첩되는 부분문제로 정의 재귀적인 구조식을 정의 (상위 부분문제와 하위 부..
Multi-armed Bandit 문제 슬롯머신에 대한 정보(상태, State)가 없는 상황에서 행동(Action)을 해야 함. 여기서, 행동(Action)은 밴딩머신을 선택하는 것. Arm을 당기면 즉각적인 보상이 주어짐. 학습주체(Agent)가 k개의 행동(Action) 중 하나를 선택 선택한 행동에 따라 보상을 받는 일련의 과정을 거침 일정 기간동안 취득한 보상의 총합에 대한 기대값을 최대화하는 행동을 결정하는 문제 탐색(Exploration) : 아무것도 모르는 상태에서 탐색 활용(Exploitation) : 누적된 정보를 바탕으로 슬롯머신 선택 (가장 좋은 행동을 택하는 것) 예시 : 임상시험 행동가치 특정 시점에서 어떠한 행동을 취했을 때의 보상에 대한 기댓값 어떤 행동을 취했을 때 가장 좋은..
강화학습이란 ? 주어진 어떤 상황(state)에서 보상(reward)를 최대화할 수 있는 행동(action)에 대해 "학습"하는 것. 상태 -> 행동 -> 보상. 일련의 과정을 통해 학습 학습 주체는 환경에 대해 모르는 상태에서 학습 상황에 가장 적합한 행동을 찾기까지 수많은 시행착오를 겪음(trial & error) 현재의 행동이 미래에도 영향을 미침(delayed reward) 예시 : 벽돌깨기 게임 상황/상태(state) : 현재 벽돌 상태, 구슬의 위치, 하단 바의 위치 등의 정보 행동(action) : 상황 정보를 가지고 하단 바를 어떻게 움직일지 결정 보상(reward) : 어떤 행동을 했을 때, 벽돌이 깨지는 양 학습 주체(Agent)는 환경(Environment)과의 일련의 상호작용을 하게..
이동 평균 모델(MA)란 각 시점의 데이터가 최근의 과거값에 대한 오차항으로 구성된 함수이다. 식은 아래와 같이 표현할 수 있으며, 이때 $e~N(0,sigma^2)$인 백색잡음이다. $$y_t = \mu + e_t+\theta_{1}e_{t-1} + \theta_{2}e_{t-2} +\cdots +\theta_{q}e_{t-q}$$ 이는 자기 회귀 모델과 유사하지만, 방정식을 구성하는 항이 과정 자체에 대한 현재와 과거 값이 아니라 현재와 과거의 오차항을 가리킨다는 점이 다르다. 정의상 MA모델은 파라미터에 어떠한 제약 사항도 부여할 필요없이 "약한 정상성"을 띤다. => 오차항이 평균을 0으로 하는 독립항등분포라고 가정했기 때문! => 따라서, MA과정이 평균과 분산이 유한하고, 시간에 따라 변하지 ..
다중 회귀 모델에서는 독립변수의 선형 조합을 이용해 종속변수를 예측했다. 그렇다면 시계열 분석에서 자기회귀 모델은 변수의 과거 값의 선형 조합을 이용해 특정 시점의 값을 예측한다. 기본 식은 다음과 같이 표현할 수 있다. 아래 식은 AR(1)을 의미하며, t-1시점의 값이 t시점에 영향을 미친다는 의미가 된다. 하나의 원인 변수만 지닌 간단한 선형회귀와 동일한 형식을 가진다. 차수 p의 자기회귀 모델을 다음과 같다. 이때, 오차항은 평균이 0이고 분산이 시그마 제곱인 정규분포를 따른다. $\varepsilon \sim N(0,sigma^2)$ 가정 - $\varepsilon \sim N(0,sigma^2)$ - $y$와 $\varepsilon$는 독립 - y는 정상성을 가짐 AR(1)을 이용..
import datetime datetime형식으로 데이터를 만들어주는 함수 datetime.datetime(연도, 월, 일, 시, 분, 초) 문자열로 된 날짜/시간 데이터를 datetime 형식으로 만들어주는 함수 datetime.datetime.strptime(문자열, '포맷') datetime형식을 timestamp형식으로 바꿔주는 함수 a = datetime.datetime(연도, 월, 일, 시, 분, 초) a.timestamp() timestamp 형식의 값을 datetime형식으로 바꿔주는 형식 datetime.datetime.fromtimestamp(숫자)
2022.10.02 - [분류 전체보기] - [시계열 분석] 시계열 데이터 탐색법 위 글에서 자기 상관을 다뤘다. 조금 더 깊게 다뤄보고자 공부한 내용을 정리하고자 한다. 보통 두 확률변수에 대한 상관계수를 구할 때는 아래 식을 사용한다. 그리고 -1과 1 사이의 값으로 표현되어 0에 가까우면 변수 간의 관계가 없다고 할 수 있고, 1에 가까우면 양의 상관관계, -1에 가까우면 음의 상관관계를 가진다고 할 수 있다. 자기 상관계수를 구할 때에는 위의 식과 비슷하지만, 시점의 차이를 이용해 시점마다의 상관계수를 구할 수 있다. 식은 아래와 같다. 분모가 왜 저렇게 되는지는 못 찾았다. 분포가 같아서 그런가? 시차마다 자기 상관계수를 구해서 그래프를 그리면 아래와 같은 그래프를 그릴 ..
정상성 : 평균과 분산이 일정하고, 특정 추세를 가지지 않는 것. 정상 시계열은 측정된 시계열의 안정적인 상태를 반영 정상이라고 판단하는 것보다 정상이 아닌 것을 배제하는 것이 훨씬 수월 아래 사진은 정상이 아닌 시계열의 예시이다. 시간에 따라 데이터의 평균과 분산이 변하고,계절성의 증거도 확인 가능함. 로그와 제곱근 등으로 시계열을 정상화할 수 있음. 이 둘은 특히 분산이 변화할 때 사용됨. 추세는 차분을 구하여 제거하는 것이 일반적. - 롤링 윈도 : 특정 크기(10분, 1시간, 1일과 같이 기간을 의미)를 유지한 채 측정 단위 시간별로 이동하면서 분석하는 방법 - 확장 윈도 : 처음 시작 시점을 고정한 채로, 누적해서 데이터를 분석 자기상관 : ..
import joblib filename = '파일명.확장자' joblib.dump(객체, filename) loaded_model = joblib.load(filename) --- 10/11 추가 joblib.dump(함수명, '파일명.확장자') # 예시 joblib.dump(func1, 'func1.func') joblib.load('파일명.확장자')(매개변수) # 예시 joblib.load('func1.func')(30) 함수에 숫자가 들어가는데 비슷한 함수를 여러 개 저장하고 싶으면 eval() 사용 eval(f'func{i}') # 예시 joblib.dump(eval(f'func{i}'), f'func{i}.f..
가장 일반적인 방법 - 대치법 : 데이터 전체에 기반해 누락된 데이터 채워 넣는 방법 - 보간법 : 인접한 데이터를 사용해 누락된 데이터 추정(대치법의 한 형태) - 삭제 - 포워드 필 : 누락된 값 바로 직전의 값으로 채우는 방법 - 이동평균 : 이전 값들의 평균으로 채우는 방법 포워드 필은 채워진 값과 실제 관측값에 임의의 노이즈를 포함한 값임. 이동 평균은 평균을 사용하기 때문에 노이즈의 일부 제거 가능 누락이 발생하기 전의 데이터만 사용(사전관찰*을 방지하기 위해서) - 보간법 : 전체 데이터를 기하학적인 행동에 제한하여 누락된 데이터 값 결정 시간에 따라 시스템이 동작하는 방식을 이미 알고 있을 때 유용한 방법 선형 보간법 - 누락된 데이가 주변 데이터에 선형적인 일..