본문 바로가기

전체 글

[Time Series] 단순 예측 기법 및 변환, 잔차 진단 Train과 inference의 속도 그리고 학습에 필요한 데이터의 양은 모델마다 다양하다. 시계열의 패턴과 상황에 따라서 다르기 때문에 예측 기법의 로직을 이해해야 상황에 따라 활용 가능하다. 또한, 데이터에 따라서 아주 간단하지만 효과적인 예측 기법도 존재한다. 평균 기법평균 기법은 예측한 미래의 값은 과거 데이터의 평균과 같다. 과거 데이터를 y1....yT라고 쓴다면, 예측값은 다음과 같이 쓸 수 있다. 단순 기법(naive method)단순 기법은 모든 예측값을 단순하게 마지막 값으로 둔다. 주식 예측의 경우 마지막 종가를 다음날의 예측값으로 두는 것이다 (금융 도메인에서는 매우 정확하며, 많은  딥러닝 모델이  단순 기법을 이기지 못한다) 계절성 단순 기법(Seasonal naive metho.. 더보기
[Time Series] 시계열 그래프와 추세, 자기 상관, 백색 잡음 시계열 데이터에서 가장 먼저 그려야 할 것은 바로 시간 그래프(Time plot)이다.즉, 관측값을 관측 시간에 따라 직선으로 연결한 그래프이다.  위 그래프는 아래와 같은 특징을 보여준다.- 1989년은 파업으로 인하여 수송객이 없었던 기간 (3980 인덱스)- 1992년은 수송객이 감소했던 기간이며, 이코노미 좌석이 비즈니스 좌석으로 교체 되었음 (4120-4140 인덱스)- 1991년 후반에는 소송객이 크게 증가했다 (4050 이후)- 관측값이 없는 일부 기간이 있음 (4000 전) 효과적으로 미래 승객수를 예측하기 위해서는 그래프에서 나타나는 이러한 특징을 전부 모델에서 고려해야 한다. 아래는 호주 당뇨병 약 월별 매출에 대한 시계열 그래프이다.  분명하게 증가하는 추세를 확인할 수 있으며, 계절.. 더보기
[Time Series] Preface to this read-along 예측 될 수 있는 것이란? 어떤 사건이나 수량의 예측가능성은 몇 가지 요인에 의존한다.1. 영향을 주는 요인을 얼마나 잘 이해할 수 있는지2. 사용할 수 있는 데이터가 얼마나 많은지3. 예측이 우리가 예측하려는 것에 영향을 줄 수 있는 여부 예를 들어, 전기 수요 예측의 경우 전기 수요가 기온에 영향을 받는 것을 알고 있으며, 날씨에 대한 충분한 데이터가 있기 때문에 정확하게 예측할 수 있다. 하지만 환율 예측의 경우, 데이터는 많지만 환율에 영향을 주는 요인을 잘 모르고, 전 날의 환율은 다음날의 환율에 영향을 미치기 때문에(efficient market hypothesis), 동전 던지기와 비슷한 예측을 할 수 있다.따라서, 주가 예측(Stock Forcasting)과 같은 작업은 전날의 주가를 다음.. 더보기
[K8s] Pod & ReplicaSet & Deployment PodPod은 쿠버네티스에서 관리하는 가장 작은 배포 단위이다. Docker와 비교해보면, Docker는 컨테이너를 만들지만 쿠버네티스에서는 Pod을 바탕으로 컨테이너를 관리한다. 또한, Pod에는 여러개의 컨테이너를 포함할 수 있다. 일반적으로 쿠버네티스는 YAML 설정파일을 만들어서, 작업을 하기 때문에 이를 통해 Pod을 만들어 보자.아래 조건의 Pod을 만들자.apiVersion: v1kind: Podmetadata: name: mongodb labels: app: mongospec: containers: - name: mongodb image: mongo:4 해당 Pod을 생성하고, 조회 해보자.# Pod 생성kubectl apply -f echo-pod.yml# Pod.. 더보기
[YAML] 기본 문법 들여쓰기(indent)들여쓰기는 기본적으로 2칸 또는 4칸이다. 2칸을 일반적으로 사용한다.person: name: SEONGSU KIM job: Data Scientist skills: - docker 데이터 정의 (Map)데이터는 Key: value 형식으로 정의한다. 여기서 중요한 것은 key: 다음에 한 칸을 띄워줘야 한다는 것이다.person: name: Chungsub Kim job: Developer skills: - docker - kubernetes 아래 Skills에 "-"이 배열로 표시되고 있다. 이는 json 구조에서 , "Skills" :["docker", "kubernetes"]에 해당하는 구조이다.개인적으로 YAML 구조가 json보다 직관적인것 같.. 더보기
[K8s] 쿠버네티스 알아보기 쿠버네티스는 사람이 관리하는 것을 자동화해주고, 다양한 업체의 노하우가 모여있는 시스템이다. 쿠버네티스 아키텍처 Desired State : 상태 체크(Observe) -> 차이점 발견(Diff) -> 조치(Act) 쿠버네티스는 시스템 내부적으로, 상태를 체크하고 차이점을 발견한다. 예를 들어, 컨테이너가 1개 떠있어야 하는 상황이라면, 실제로 1개가 정상적으로 떠 있는게 맞는지 체크를 한다. 만약에 차이점을 발견하면(Diff), 이를 조치(Act)하는 Loop를 지속적으로 수행한다. 쿠버네티스에서는 이러한 Desired State를 유지하기 위해서 다양한 구성요소가 있다. 크게 1) 마스터와 2) 노드가 있으며, 세부 요소에는 아래와 같은 구성요소가 존재한다. 마스터: Scheduler, Control.. 더보기
[K8s] 왜 쿠버네티스일까? 쿠버네티스는 컨테이너를 쉽고 빠르게 배포/확장하고 관리를 자동화해주는 오픈소스 플랫폼 1. 쿠버네티스의 인기Open Source로, 커뮤니티가 발달되어 있으며, 카카오나 라인과 같은 국내 대기업에서도 쿠버네티스를 많이 활용하고 있음 2. 무한한 확장성Kubeflow, TEKTON 등 쿠버네티스가  하나의 플랫폼이 되고, 그 위에서 머신러닝, CI/CD 등이 동작특히, 머신러닝 서비스를 배포하고 관리하는 kubeflow를 이해하려면 쿠버네틱스 필수임. 아니면 돈주고, AWS 세이지 메이커 활용 3. 사실상 표준쿠버네티스이 표준이며, 그 위에 본인들만의 장점을 커스터마이징 하는 소프트웨어가 많아지고 있음또한, 중요한 것은 아마존(EKS), 에저, 구글이 쿠버네티스를 매니지드 서비스를 제공하고 있음 But, .. 더보기
[k8s] 컨테이너 오케스트레이션 등장과 개념 컨테이너 오케스트레이션의 등장은 서버의 상태를 관리하기 위한 노력이다.여기서 서버(Server)는 서비스를 제공하는 컴퓨터나, 소프트웨어이다. 만약에, 본인의 컴퓨터 환경이 바뀌거나, OS가 변경이 되면  아무리 문서화를 잘 하여도 서버를 관리하는 것이 어렵다.예를 들어서, 기존 설치 프로그램과 충돌이 난다던가, 하나의 서버에서 다른 프로그램 버전을 이용해야 한다면? 매우 큰 문제가 발생할 수 있다.  따라서, 예전에는 CHEF, Puppt과 같은 관리 도구로, 서버의 상태를 확인하고 설치되지 않은 프로그램 혹은 설정이 있으면 서버에 설치를 도와주는 도구가 존재하였다.   또 초기의 해결 방법은 가상 머신(Virtual Machine, VM)이다. 가상 머신 지금도 여전히 OS에 리눅스나 다른 운영체제를.. 더보기