목록기초 노트/DataScience (11)
플로라도의 data workout
1. Concept Drift정의 : 시간이 지남에 따라 타겟 변수인 출력값이 변하고, 그에 대한 분포가 변하는 현상, 즉 모델이 학습한 관계가 더 이상 미래 데이터에 적용되지 않는 경우 예시 : 예측하려는 고객의 행동 패턴이나, 주식 시장의 트렌드가 시간이 지나면서 달라지는 경우. 예를 들어, 한 시점에서는 고객이 A라는 상품을 선호했지만 시간이 지나면서 B라는 상품을 더 선호하게 되어 모델이 학습한 관계가 더 이상 유효하지 않게 되는 경우가 concept drift에 해당 문제 : 기존의 데이터로 학습한 모델은 잘못된 예측이나 의사결정을 할 수 있다. 2. Covariate Shift정의 : 입력 데이터의 분포가 변하지만, 타겟 변수인 출력값의 분포는 변하지 않는 현상. 예시 : 모델이 학습한 데이..
Regularziation은 모델이 학습 데이터에만 오버피팅되지 않도록 방지하는 기법으로 알려져 있다. 그러나 Regularziation 테크닉중 weight decay의 방법인 L1, L2 Regularziation은 마찬가지로 오버피팅을 방지할 뿐만 아니라, human knowledge를 prior로서 반영할 수 있다. L1 Regularization $$\begin{aligned} \mathcal{E}(w) = \frac{1}{2} \sum^n_{i=1} \left( f_w(x_i) - y_i \right)^2 + \lambda \sum_{i=1}^{n} |w_i| \end{aligned}$$ L1 Regularization은 모델의 Loss function에 가중치의 절대값에 비례하는 항을 추가함..
"Linear models love normally distributed data" 캐글 커널에서 마주한 "Linear models love normally distributed data." 라는 문장의 맥락을 파헤쳐 보고자한다.선형 모델들과 정규적인 분포의 데이터우 무슨 관계가 있길래 'love'라는 과감한 비유까지 든걸까? 우선 데이터의 분포라는 것은 통계 모델, 혹은 머신러닝 모델에서 독립변수와 종속변수, 설명변수와 반응변수 혹은 feature X와 target y도 불리는 예측 대상인 ①$y$값의 분포가 있고,각 데이터 포인트의 특성(feature)의 집합인, ②$X$에 대한 분포가 있다.(통상 예측 대상인 $y$는 스칼라이기에 소문자를 취하고, 독립 변수는 feature set이라고 불리..
1. 선형성(Linearity) 독립변수와 종속변수, 설명변수와 응답변수, 다시말해 데이터 과학에서의 피처의 집합인 $X$와 타겟 값 $y$가 선형적인 관계를 가져야만 한다. 가장 잘 피팅된 선형 회귀 모델은 곧은 직선 형태임으로, 가장 직관적인 특징이다.여기서 선형은 $X$와 $y$간의 "관계"의 선형성, 즉 파라미터의 선형성을 일컫는 말로독립변수$X$의 선형과는 관계가 없다. 종종 독립변수 $X$에 제곱이나 혹은 교차항(interaction)을 추가하기도 하는데 이는 다항 회귀(Polynomial Regression)으로 불린다. 조금 더 부연하자면, 피처의 집합인 $X$와 타겟 값 $y$가 선형적인 관계를 가져야만 하는 이유는 애초에 선형모델이 해당 가정하에 설계된 모델(inductive bia..
Cardinality Cardinaltiy는 쉽게 말해 각 피처에 속한 유니크한 범주의 갯수를 말한다. 예를 들어 성별이라는 피처의 경우 남,녀 두가지 범주만 존재함으로 Cardinality는 상대적으로 낮다고 말할 수 있다. 그러나 회원번호와 같은 피처는 모두 개별적인 ID를 갖음으로 Cardinality는 상당히 높다고 할 수 있다. Cardinality의 중요성높은 카디널리티를 가진 특성은 모델의 학습에 있어서 노이즈와 오버피팅을 유발 할 수 있어 주의가 필요하다. 또한 데이터의 전처리 부분이 중요해진다. 범주형 변수에 대해서 원하는 ouput이 수치형 변수일때 high Cardinality에 대해 다음과 같은 전략을 취할 수 있다. - 타겟 인코딩 (Target Encoding) 각 범주의 레이블..
차원의 저주(Curse of dimensionality)는 데이터의 차원이 증가함에 따라 발생하는 문제를 말한다. 데이터의 차원이 증가하면, feature space내에서 데이터 샘플들간의 공간상의 거리가 기하급수적으로 멀어지게 된다. 이는 공간 내에 데이터 포인트들이 sparse한 형태로 자리하게 만들며, sparse data를 학습한 모델은 train data의 예외적 상황까지 학습하여 일반화 성능이 떨어지게 된다. 모델이 데이터의 구조와 패턴을 학습하기 어렵게 만드는 문제를 일으키는 것이다. 따라서 데이터의 차원이 높아짐에 따라, 모델을 효과적으로 훈련시키기 위해서는 데이터가 지수적으로 필요하게 된다. 차원의 저주를 해결하기 위해서는 결국 데이터 특성(feature)를 적절히 조정해야 하는데, PC..
Stacking Stacking은 단일 모델의 예측값을 조합하여 최종적인 예측을 함으로써, 개별 모델의 강점을 활용하고 약점을 상쇄시키는 방법이다. 트리기반 모델은 데이터의 비선형 관계를 잘 포착하고, 선형 모델들은 데이터의 선형관계를 잘 포착한다. 이러한 모델의 예측 결과를 조합함으로써, 단일 모델이 놓칠 수 있는 정보를 포착하고자 하는 것이다. 먼저 Stacking은 위의 그림과 같이 진행된다. 각 level0에 위차한 각기의 learner(모델)들은 예측값을 생성하고, 이러한 예측값들을 결합하여 Stacked Dataset을 만든다. 이러한 Stacked Dataset을 Meta model이라고하는 level1에 있는 최종 모델이 다시 한번 예측을 수행하고, 이러한 예측의 결과를 최종적인 outpu..
범주형 변수의 인코딩 정형데이터를 다룰때, 머신러닝 알고리즘에 수치형 변수가 아닌 카테고리형 변수(범주형 변수)를 적용시키려면 반드시 범주형 변수를 숫자값으로 변환시키는 작업이 필요하다. 이 작업에서는 사이킷런에서 제공하는 아래와 같은 Encoder클래스를 사용한다. 그 중 범주형 변수의 인코딩의 가장 대표격인 원-핫 인코딩에 대해서 알아보자. 1. 원핫 인코딩이란? 원-핫 인코딩은 위의 그림과 같이 'color' 칼럼에 해당하는 'red,blue,green'을 다음과 같이 'color_red, color_blue, color_green'의 각 고유한 피쳐로 나누고 값 칼럼에 해당하는 값을 0 또는 1의 binary 값으로 매핑한다. 0의 값은 관찰 데이터에 해당 피쳐가 속하지 않는다는 뜻이고 1은 관찰..
Bias-Variance Decomposition은 머신러닝 모델의 일반화 오차(generalization error)를 분석하는데 사용되는 개념이다. 이는 오차를 세가지의 요소로 분해한다. 1. Bias(편향) 모델(estimator)의 예측(estimate)과 실제 값(target) 사이의 차이를 말한다. 모델이 학습 데이터에만 과도하게 맞춰진 오버피팅 상태에서 편향이 발생한다. 2. Variance(분산) 모델의 예측(estimate)의 변동성을 나타낸다. 모델이 학습 데이터에 언더피팅된 상태에서 분산이 증가하게 된다. 3. Noise(노이즈) 데이터 자체의 내재적인 불확실성이다. 모델이 제거할 수 없는 에러나 데이터 발생시 불특정한 이유에서 발생한 에러를 의미한다. 노이즈의 발생 원인은 다양할 수..
머신러닝, 딥러닝 관련 다양한 서적과 논문, 강의와 저널등에서 한국말로 "손실함수" 라는 표현에 대응 되는 영어 표현으로 왠지 줄여야만 할것 같은 녀석들, 'Loss function'과 'Cost function' 그리고 'objective function'이 등장한다. 도대체 이놈들의 차이는 뭐길래, 이름을 달리하여 쓰는걸까? ①Loss function : Loss function은 단일 데이터 포인트에 대한 모델의 오차를 측정하는 컨텍스트라고 보면 된다. 훈련 데이터로 예측한 값인 $\hat{y}$ 실제 $y$값간의 차이를 $Loss$라 하고 그 차이를 측정하는 방법인 Loss fuction으로 절댓값 손실, 제곱 손실 등이 있다. (위의 수식은 제곱 손실에 해당한다.) 일반적으로 회귀 문제(regr..