In Statistics We Trust
-
Concept of Python's Class
클래스(Class)는 객체 지향형 언어에서 볼 수 있는 개념으로 이번 포스팅에서는 Python에서의 클래스에 대해 알아보고자 한다. 클래스는 인스턴스(instance)를 만드는데 활용되는 설계도로 인스턴스는 Class에 의해 생성된 객체라고 보면 된다. 객체 지향형 프로그래밍을 수행하는 목적은 코드 재사용, 중복방지, 유지보수 용이성 등으로 이는 개발 과정에서 항상 신경써야할 부분이 아닐 수가 없는 사항들이다. Class를 써야하는...
-
Bayes by Backprop
Bayesian Neural Network는 모델 학습 과정에서 weight \(\mathbf{w}\)가 determinstic한 값을 갖는 것으로 간주하는 기존의 Neural Network와 달리 weight \(\mathbf{w}\)에 대한 확률 분포를 설정함으로써 weight \(\mathbf{w}\)와 output \(\mathbf{y}\) 에 대한 분포를 제공하여 모델의 불확실성(uncertainty) 까지도 제공하는 모델이라 할 수 있다. 그렇다면 Bayesian Neural Network(이하 BNN)는 기존의 Neural Network(이하 NN)와 무슨 포인트에서...
-
Dirichlet Process Mixture Model
Mixture Model에서 Dirichlet Distribution을 사용하는 일반적인 방식은 parameter의 차원이 k로 고정되어 있고 이 k차원의 parameter에 대한 prior로 활용하는 것이었다. GMM에서 cluster의 개수는 정해져 있었고 k번째 cluster로 할당될 latent variable \(z_{k}\)를 정의하고 \(p(z_{k}=1) = \pi_{k}\) 에서의 \(\pi_{k}\)에 대한 prior로 Dirichlet Distribution을 활용했다. 그러나 Dirichlet Process Mixture Model(DPMM)은 k를 특정 차원으로 한정짓지...
-
Concept of Dirichlet Process
Dirichlet Process는 Dirichlet Distribution을 따르는 Random Process로 Unsupervised Learning에 자주 활용된다. 기존에 학습했던 Unsupervised Learning은 GMM, K-Means와 같은 Clustering 문제였다. 기존 GMM, K-Means 문제에서는 cluster의 개수 k를 분석가가 명시적으로 지정해야하는, 사람이 개입해야하는 이슈가 있었다. 이러한 문제에서 조금 더 자유로워지고자 할 때, cluster의 개수 k를 사람이 명시적으로 지정하지 않는 방식을 취하고자...
-
Pandas Cheating Sheet
업무에 자주 사용하는 Python Pandas 함수를 정리하고자 한다. 이 포스팅을 업로드한 이유는 개인적인 Cheating Sheet로 활용하기 위함이며, 추후 계속 업데이트할 생각이다. csv 파일 불러오기 import pandas as pd pd.set_option('display.max_columns', None) pd.set_option('display.max_rows', None) df = pd.read_csv(r'C:\Users\seolbluewings\Desktop\sample\Hitters.csv') 역슬래쉬 사용할 경우, 가장 앞에 reverse를 뜻하는 r 표기 필요하고 아닌 경우에는 / 사용하면 됨...