본문 바로가기

반응형

Theory/Statistics

(17)
확률 이야기 - 몬티홀 문제와 베이즈 정리 학부/대학원 시절을 거치면서 공부한 여러 수학 분야들 중에 저에게 가장 안 맞는 수학 분야는 확률이었습니다. 측도론 기반의 콜모고로프 확률론으로부터 개념을 정립하고 여기서 확률 과정까지 나아가는 과정은 아무리 수학이 추상체를 구체화하는 학문임을 감안하더라도 꽤나 잘 안 와닿았던 기억이 납니다. 어려웠던 확률 시험을 통과하고 논문에 적힌 복잡한 수식을 이해했더라도 나만의 문제에 맞게 formulation 할 수 있는 단계로 나아가기엔 또 다른 장벽이 존재했습니다. 지금 돌이켜 생각해 보면, 개념/시험/논문 등을 떠나서 근본적인 확률론적 사고가 부족했기 때문이 아닌가 생각합니다. 바로 몬티홀 문제를 접하면서 말이죠. 몬티홀 문제 2008년 개봉한 이라는 영화에서는 MIT 천재들이 수학 (특히 확률)에 기반하..
Maximum Likelihood Estimation & Maximum A Posteriori Maximum likelihood estimation (MLE) MLE (최대우도법)은 주어진 데이터셋 $D$에 대해 $D$를 가장 잘 설명하는 (likelihood) 모델의 파라미터 $w$를 찾는 방법입니다. Likelihood 란 특정한 파라미터로 정의된 모델의 분포가 데이터에 대해 얼마나 잘 들어맞는지에 대한 통계적인 정의로 확률은 단순히 정의된 확률분포 상에서의 값을 말하지만 likelihood 는 데이터 분포에 모델 분포가 얼마나 잘 들어맞는지를 뜻합니다. 즉, MLE는 likelihood 함수 $p(D|w)$ 가 최대화되는 $\hat{w}$를 찾는 방법이고 보통 로그를 취해 negative log-likelihood (NLL) 를 최소화하는 방향으로 식을 변환합니다. $\hat{w}=argma..
Classification - Logistic Regression (2) Classification - Logistic Regression (1) 지난 포스트에 이어 이번 포스트에서는 파이썬을 이용해 logistic regression 을 수행해보려 합니다. 파이썬에서는 sklearn.linear_model 모듈의 LogisticRegression 함수를 사용하며 간단한 iris (붓꽃 데이터)에 대해 실험해 보겠습니다. 붓꽃 데이터는 sklearn.datasets 안에 들어있는 toy dataset으로 150개의 데이터와 5개의 컬럼으로 (Sepal Length/Width, Petal Length/Width, Species) 이루어진 데이터로 타겟은 Species 열이며 3 종류로 구분합니다. 여기서는 2/3 번째 열인 꽃잎의 길이와 너비 정보만을 이용하여 붓꽃의 종류를 예..
Classification - Logistic Regression (1) 회귀 분석에서는 종속 변수가 연속적인 값을 가질 때 여러 독립 변수의 선형결합으로 종속 변수의 값을 예측했습니다. 하지만 종속 변수가 범주형일때, 예를 들어 남성/여성이나 나라 등 연속되지 않은 범주의 형태를 가질때에는 분류 (classification) 의 형태로 예측을 수행해야 합니다. 이번 포스트에서는 분류 분석에서 가장 기본적인 Logistic Regression에 대해 살펴보도록 하겠습니다. Logistic Regression은 이름에 "회귀"가 붙어있는 것처럼 선형 회귀를 분류 분석으로 연장한 것으로 두 개의 범주로 나누는 binary classification 부터 세 개 이상의 범주로 분류하는 multi-class classification 모두에 대해 적용할 수 있는 가장 기본적인 분류 ..
Regression - 다항식을 이용한 비선형 회귀 지난 포스트에서 수행한 선형 회귀는 독립 변수들의 선형 결합으로 종속 변수를 표현하기 때문에 변수들이 선형으로 분포하지 않거나 구간 별로 기울기가 다르게 적용되는 경우 설명에 한계가 있습니다. 이를 해결하기 위한 가장 간단한 방법으로는 각 독립 변수에 대한 고차원의 다항식을 적용하여 비선형적으로 종속 변수를 표현하는 방법이 있습니다. Examples Simple example 간단한 numpy array를 선언하여 종속 변수에 대해 독립 변수를 다항식으로 구성하여 설명해 보겠습니다. 독립 변수의 다항식화는 sklearn.preprocessing 모듈의 PolynomialFeatures 함수를 사용해 쉽게 구현할 수 있으며 2차원의 데이터 [a,b]를 가지고 있을 때 디폴트로 [1,a,b,a^2,ab,b^..
Regression - 다중공선성 (Multicollinearity) 다중 선형 회귀에서의 전제는 독립 변수간 상관 관계가 없이 서로 독립이어야 한다는 점입니다. 만약 독립 변수간에 선형 관계가 존재한다면 이는 다중 선형 회귀에서 다중공선성 (multicollinearity)가 존재한다고 하며 이는 회귀 분석에 악영향을 끼치기 때문에 모델 훈련 전 미리 제거해야 합니다. 선형 회귀는 기본적으로 다음 수식에서 $X^T X$의 역행렬을 구하는 문제입니다. 만약 하나의 독립 변수가 다른 독립 변수에 대해 선형적으로 설명된다면 $X$의 한 열이 다른 열의 선형 결합으로 표현되므로 행렬의 rank가 줄어들어 invertible 해지지 않습니다. 물론 완벽히 선형 결합으로 표현되지는 않을테니 역행렬 자체는 구할 수 있겠으나 수치계산상으로 불안정해지고 회귀 계수의 표준오차와 p-val..
Regression - 다중 선형 회귀 in Python 이번 포스트에서는 지난 포스트에서 다룬 다중 선형 회귀 모델을 파이썬으로 실험해보려 합니다. 지난번 보스톤 주택 가격 데이터로부터 $X, y$를 설정하고 훈련/테스트 데이터를 sklearn.model_selection 모듈의 train_test_split 함수를 통해 구성합니다. import pandas as pd df = pd.read_csv('/content/drive/MyDrive/Posco/Regression/Data/housing_data.txt', sep='\s+') df.columns = ['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT', 'MEDV'] df.head()..
Regression - 다중 선형 회귀 지난 포스트에서 살펴봤던 단순 선형 회귀에 이어 이번 포스트에서는 다중 선형 회귀에 대해 살펴보도록 하겠습니다. 독립 변수 1개만으로 종속 변수를 설명했던 단순 선형 회귀와 달리 다중 선형 회귀는 $k$개의 독립 변수로 종속 변수를 예측하는 것으로 다음과 같이 모델링 할 수 있습니다. $Y = \beta_0 + \beta_1 X_1 + ... + \beta_k X_k + \epsilon$ 단순 선형 회귀와 거의 비슷하나 다중 회귀 분석에서는 추가하여 고려해야할 사항 1) 다중공선성 (multicollinearity), 2) F-통계량 이 있습니다. Multiple linear regression 다중공선성 (Multicollinearity) 단순 선형 회귀에서 7가지 가정을 살펴보았는데, 다중 선형 회귀..

반응형