[Data Science] ML CheatSheet(수정중)

Data science CheatSheet

참고 사이트: 데이터사이언스 스쿨 https://datascienceschool.net/

개인 참고 정리용도

Data set split: train/ validation/ test

link: https://towardsdatascience.com/train-validation-and-test-sets-72cb40cba9e7

1) overview

  • train dataset: the sample of data used to fit the model
  • validation: the sample of data used to provide an unbiased evaluation of a model fit on the training dataset while tuning model hymerparams.
  • test dataset: used to provide an unbised evaluation of a final model fit on the training datset

2) ratio

  • validation: in proportion to the number of hyperparams

Numerical Optimization

Grid search vs Numerical Optimization

  • Grid search: 가능한 모든 x 대입
  • Numerical Optimization: 함수J 위치가 최적점에 도달할 때까지 x를 옮김

    • 세부알고리즘1: x위치가 최적점인지 확인
    • 세부알고리즘2: 다음번 x 위치 확인
  • Numerical Optimization 구현

    • 세부알고리즘1 구현(1): slop = 1차 도함수 = gradient vector = 0? (편미분의 경우 모든 변수에 대한 편미분값=0); oscillation 현상;
    • 세부알고리즘2 구현(1): 최급강하법(SGD, Steepest Gradient Descent), 현재 위치의 기울기만을 토대로 다음 위치 결정
      • param: stepsize
    • 세부알고리즘1 구현(2): 변형된 gradient vector; 2차 도함수 = 헤시안 행렬필요;= Newton 방법;setp size 불필요;목적함수가 2차함수와 비슷하면 빨리 수렴;헤시안 행렬 사람이 직접 입력
    • 세부알고리즘2 구현(2): Newton 방법
  • 기타: Quasi-Newton 방법; 2차 도함수 근사값을 수치적 계산(BFGS); 헤시안 불필요 / Conjuated gradient; 변형된 gradient vector

Commonly used:

  • Descent: adapted to convex cost function(Algorithm: steepest/conjugate descent, quasi-Newton, Newton)
  • Evolutionary: adapted to multi-modal cost function (Algorithm: genetic algorithm, evolution strategies, particle swarm, ant colony, simulated annealing)
  • Pattern search: adapted to noisy cost function(Algorithm: Nelder-Mead simplex, Torczon’s multidirectinal search)

flexibility

  • Generalize well across the different training sets
    Comes at a cost of higher variance. That’s why flexible models are generally associated with low bias
  • Perform better as complexity increases and/or # of data points increase (up to a point, where it won’t perform better)

MLE

  • 실현된 샘플을 발생시킬 가능성이 가장 높은 모수를 추정하는 방법

Sampling/Resampling/Cross validation

Resampling: 사용한 표본 데이터가 달라질 때 회귀분석/모델 결과가 어느정도 영향 받는지 확인

  • Sampling with and without replacement
  • Bootstrap(resample with replacement)
    • params: sample size(usually the same size as the original dataset), repetitions(large enough)
    • require big computation usage; hence use MLE and find coef confidence interval
    • MLE for finding weights: 표본데이터는 같은 확률분포에서 나온, 독립적인 값 -> 결합확률밀도 구함 = 가능도함수 -> 수치최적화
  • Cross validation: used to estimate the test error
    • train(train’, validation) / test
    • k-folds CV: split train’ into k folds -> fit model k times = validate k times

1. Classification metric

  • accuracy
  • recall/precision: imbalance data에서 중요. 일반적인 경우에는 ROC 커브 확인.
    • recall: TP / (TP + FN) -> 실제 positive 중에 정답(positive)
    • precision: TP / (TP + FP) -> 예측한 postive 중에 정답(positive)
    • F1: harmonic mean. attribute penalty to extreme value.
  • Threshold up & down
    • postive의 기준이 되는 threshold를 높이면(기준을 까다롭게), 틀린 정답을 내놓을 확률이 낮아짐(FP 감소)
      • 반면에, 실제로 postive이지만 기준이 너무 까다로워, negative로 판정(FN)되는 비율이 높아짐
      • 따라서 threshold up -> precision up; recall down;
    • 반대로 threshold를 낮추면(기준을 완화), positive로 예측되는 개체가 매우 많아지고, 이에 비례해서 실제 positive를 맞출 확률도 높아짐(요행히 맞춤). 하지만 positive로 잘못 판정한 경우도 증가(FP).
      • 따라서 threshold down -> precision down; recall up;
  • 참고 link: https://towardsdatascience.com/what-metrics-should-we-use-on-imbalanced-data-set-precision-recall-roc-e2e79252aeba

1.1. Visualization

  • confusion metrix
  • ROC curve: x; TPR(True Positive Rate), y; FPR(False Positive Rate)
    • TPR: 양성율(TP / TP + FN, senesitivity, recall), 암환자 진단하여 암이라고 예측
    • FPR: 위僞 양성율(FP / FP + TN = 1 - specificity, fall-out), 정상인을 진단하여 암이라고 예측
    • Threshold(cut-off)값을 변화시켰을 때의 point(FPR, TRP)을 plotting
      • parma값을 ascending=False로 sort
      • cut-off를 조정하면서 TPR & FPR값을 확인
      • TPR ascending=True/ FPR ascending=True로 sort -> plotting

cf. sensitivity: fraction of TP to all with desease / specificity: fraction of TN to all without desease

1.2. note: precision & recall vs ROC curve

  • small positive imbalanced data -> precision & recall 사용: 얼마나 잘 small size의 positive를 잘 찾아내는지 precision으로 확인가능. 즉 소수의 환자(positive)를 잘 분류해내면 지표가 높아짐. 반면에, ROC 중에서 fpr의 경우는 positive를 detect해낸 것을 지표로 반영 못함. 왜냐면 negative를 positive로 잘못 분류하지만 않으면 되기 때문. 즉, 정상인(negative)을 환자(positive)로 오분류하지 않으면 그냥 좋음.
  • both important or large size of positive = small size of negative = negative detection이 중요 -> ROC 사용
  • ROC curve is not a good visual illustration for highly imbalanced data, because the False Positive Rate ( False Positives / Total Real Negatives ) does not drop drastically when the Total Real Negatives is huge.
  • Whereas Precision ( True Positives / (True Positives + False Positives) ) is highly sensitive to False Positives and is not impacted by a large total real negative denominator.

2. Regression metric


다중공선성

  • 독립변수 일부가 다른 독립변수의 조합으로 표현되는 경우
  • 조건수가 증가(condition number)
    • 문제: 조건수 증가(공분산 행력의 가장 큰 고유치와 가장 작은 고유치의 비율)
    • 해결책: feature selection(VIF), feature extraction, 정규화

샘플 수와 기각역

  • 샘플수가 많아지면 기각역이 넓어진다
  • eg. t 통계량을 보자
    • 신뢰구간: $\bar{x} \pm t_{\alpha /2} \dfrac{s}{\sqrt{n}}$
    • 즉 샘플수가 많아지면 신뢰구간이 좁아진다
    • t 통계량: $t= \dfrac{\bar{x} - \mu_0}{s / \sqrt{n}}$
    • 즉 t 통계량은 샘플수가 많아질수록 커지므로 극단적인 값을 가질 가능성이 높아짐

confidence interval(feat. 점추정 vs 구간추정)

  • 신뢰구간이란, 점 추정치를 활용하여 계산한, 모평균 존재 가능 범위.
  • 신뢰도 95%라고 하는 것은, 표집을 100번해서 신뢰구간을 100개 만들면 그중에서 95개는 모평균을 포함한다는 의미
    • 표집을 100번 해서 구간을 만들었을 때, 해당 구간 안에 모수 mu가 존재하는 구간이 95개

feature selection

  • filter: 통계적 방법 사용. 피어슨 상관관계, ANOVA, 카이스퀘어
  • wrapper: feature add, remove를 통해 performance 측정
  • Embedded

분산분석Anova/카이스퀘어

  • 범주형 독립변수 간 평균 비교(종속변수: 연속): ANOVA
    • eg. 교육 타입에 따른(X:A, B), 치태지수(y: 연속)
  • 범주형 변수 간 연관성 검정: 카이제곱 검정
    • eg. 인종에 따른(X1:A, B, C,…), 각 정당 지지율(X2: p1, p2, …)
    • 위 예시에서 변수는 인종, 정당
  • 두 변수가 연속형: pearson상관분석

레버리지

  • 실제 종속변수 y가 $\hat{y}$에 미치는 영향. predicted값을 실제값 y자신에게 끌어당기는 정도
  • $\hat{y}_i = h_{i1}y_1 + h_{i2}y_2 + \cdots + h_{ii}y_i + \cdots + h_{iN}y_N$
    • $\hat{y}=Hy$ (H: 영향도 행렬)
    • 이상적 case:영향도 행렬의 대각성분 $h_{ii}=1$
    • 불가능: $\sum_{i}^N h_{ii} =$ 모수의 갯수($w_0, w_1, \cdots$)
    • 샘플갯수N > 모수갯수

아웃라이어

  • 잔차가 큰 데이터
  • cook’s distance: 잔차와 레버리지 모두 큰 데이터 구함

엔트로피

  • 평균 정보량
  • $-\Sigma p(x_i) \log{x_i}$

조건부 엔트로피

  • 정보량 가중 평균
  • $H[Y|X] = -\Sigma p(x_i)H[Y|X=x_i]$

크로스 엔트로피

  • 추정 확률분포 비교
  • 분류 모형의 성능 측정
  • 다른 정도를 측정: 다르면 값이 커짐 -> loss function
    • Y=0, $-log(1-\mu)$
    • Y=1, $-log(\mu)$
    • 틀리면 상기 값이 커짐
  • 크로스 엔트로피 loss fucntion은 binary classification에 활용됨
    • 정답에 대한 probability가 얼마인지에 따라 loss 값이 달라짐
    • 정답에 대한 확률이 높을수록 loss값은 작음 eg. 0.1 -> 2.3, 0.6 -> 0.51

의사결정 나무

  • 독립변수X 중 하나를 선택
  • Threshold 설정
  • X=True/False로 Child Node를 생성
  • IG[Y, X] = H[Y] - H[Y|X]
  • eg. 스팸 메일 필터를 위해 키워드 X1, X2, X3

랜덤포레스트

  • 여러개의 트리 생성 -> voting

과적합

  • 데이터의 랜덤한 노이즈까지 fitting되어 발생
    • 랜덤한 노이즈: 관찰되지 않은 변수로 인해 발생. 예컨대, y: bmi지수, x: 운동한 기간이라고 할 때, 개별적 신체 차이로 인해 같은 운동기간이라고 하더라도 차이가 존재함.
  • 다항회귀(polynomial Regression)에서는 차수가 높아질수록 계수의 값이 커짐

과적합 해결방법

  • 모델을 그대로 유지한다면(curveness가 높은 모델을 유지) -> 데이터를 늘린다.
  • 정규화: 페널티항 추가
    • 리지Ridge회귀: 계수의 제곱합(intercept는 제외: intercept 선택의 문제로 귀착되므로.)
    • 라쏘Lasso(Least Absolute Shrinkage and Selection Operator): 계수의 절대합
    • Elastic Net: 계수의 절대값 & 제곱 합 동시에 제약조건
  • Lasso vs Ridge:
    • Ridge는 하나의 feature coef를 급격히 줄임
    • Lasso는 feature 전체의 coef를 다같이 줄임
  • Ridge(L1 regulrization):$cost=\sum e_i^2 + \lambda \sum |w_i|^2$
  • Lasson(L2 regulrization):$cost=\sum e_i^2 + \lambda \sum |w_i|$
  • Elastic Net(L1 + L2 regulrization):$cost=\sum e_i^2 + \lambda_1 \sum |w_i| + \lambda_2 \sum w_i^2$

선형회귀의 가정

  • 잔차residulas는 iid(independent and identically distributed):
    • 독립변수x에 독립/ 잔차 분포가 일정(등분산성)/ 정규분포
  • 실제 Data가 많을 때는, 잔차의 정규분포와 등분산성은 충족시키기 어렵지만, 충족시키지 않아도 성능은 괜찮음.

r squared(coefficient of determination)


Covariance vs Pearson Correalation: 평균제거 분산의 평균 vs 편차로 나눔

  • Cov: measure the degree to which two variables are linearly associated.
    • $Cov[X, Y] = E[(X-E[X])(Y-E[Y])]$
    • sample covariance $s_{xy} = \dfrac{1}{N} \Sigma_{i}^{N}(x_i - \bar{x})(y_i - \bar{y})$
  • Corr: scaled Cov: range[-1, 1]
    • $\rho[X, Y] = \dfrac{Cov[X, Y]}{\sqrt{Var[X] \cdot Var[Y]}}$
    • sample corr $r_{xy} = \dfrac{s_xy}{\sqrt{s_x^2 s_y^2}}$

표준오차


중심극한정리

  • (기댓값과 분산이 동일한 분포(분포 모양은 달라도 됨) + 서로 독립인 확률변수) N개 추출한 표본들의 표본평균(또는 합)
  • 샘플이 충분히 크고, 시행횟수가 충분히 크면, 표본평균의 분포는 정규분포를 따름. eg.10개 확률변수에서 100 샘플 추출하면, 100개 표본평균은 정규분포에 가까워짐.

  • 확률론과 통계학에서, 중심 극한 정리(中心 極限 定理, 영어: central limit theorem, 약자 CLT)는 동일한 확률분포를 가진 독립 확률 변수 n개의 평균의 분포는 n이 적당히 크다면 정규분포에 가까워진다는 정리이다.

  • (위키백과:[https://ko.wikipedia.org/wiki/%EC%A4%91%EC%8B%AC\\_%EA%B7%B9%ED%95%9C\\_%EC%A0%95%EB%A6%AC])

  • 유용성:

    • The assumption that data is from a normal distribution simplifies matters but seems a little unrealistic. Just a little work with some real-world data shows that outliers, skewness, multiple peaks and asymmetry show up quite routinely. We can get around the problem of data from a population that is not normal. The use of an appropriate sample size and the central limit theorem help us to get around the problem of data from populations that are not normal.
    • Thus, even though we might not know the shape of the distribution where our data comw large of a sample is necessary for a given situation.es from, the central limit theorem says that we can treat the sampling distribution as if it were normal. Of course, in order for the conclusions of the theorem to hold, we do need a sample size that is large enough. Exploratory data analysis can help us to determine how large of a sample is necessary for a given situation.

OLS/MLE

  • OLS: 결정론적 선형회귀분석
    • 잔차 제곱합RSS의 gradient vector를 구하고, 이를 0으로 만드는 w값을 구하자
    • $\hat{y} = Xw$
    • $e=y - \hat{y}$
    • $RSS = e^Te$ ; $\dfrac{dRSS}{dw}=0$;
    • X가 full rank이면, 즉 각 feature를 제대로 입력했다면 답이 나옴
      • full rank: 모든 벡터가 선형독립(어떤 하나의 벡터도 다른 벡터들의 선형결합이 아님)
      • $w^* = (X^TX)^{-1}X^Ty$
  • MLE: 가중치의 오차범위를 구할 수 있음. 즉, 가중치의 예측치 $\hat{w}$ 를 정규분포로 상정하기 때문에, 표준오차std err, confidence interval 구할 수 있음.

회귀분석의 검정통계량 F

  • 귀무가설: 모든 회귀계수 = 0, 모든 변수는 설명력이 없다
  • 전체모형 vs 축소모형의 성능비교 가능
  • 변수의 중요도 비교: 전체 모형 vs 각 변수 하나를 뺸 모형의 성능 비교 = 각 독립 변수의 영향력을 측정 가능

회귀식 잔차 정보

  • Durbin-Watson 검정법: 잔차 자기상관성()시계열 자료에 중요함)
  • Omnibus: normality
  • condition No.: 공분산 행렬 $X^TX$의 가장 큰 고유치와 가장 작은 고유치 비율

최빈값/중앙값/평균

  • outlier가 존재 -> 영향 많이 받는 순서: 평균 > 중앙값 > 최빈값

확류분포의 모멘트: 특징값

  • 1차:기댓값 / 2차:분산 / 3차:왜도(Skewness) / 4차:첨도(Kurtosis)

1종오류 vs 2종오류

  • 1종오류
    • 실제: 귀무가설O / 대립가설X -> 오류: 귀무가설X / 대립가설O -> 위험함: 기존 공정(귀무가설) 포기하고 신규 공정(대립가설) 실시했으나, 효과없음. 비용 발생.
  • 2종오류
    • 1종오류와 반대; 실제: 귀무가설X / 대립가설O -> 오류: 귀무가설O / 대립가설X

Ensemble

  • 크게 취합aggregation과 부스팅boosting 방법론
  • 취합: 다수결(여러 다른 모델 조합), 배깅(bootstrap aggregating, 같은 모형&모수, 부트스트랩 resampling방법을 ML에 적용), 랜덤포레스트
    • 배깅: 트레이닝 데이터를 랜덤 선택 <- 방법: 샘플 replacement or not/ Feature replacement of not
    • 랜덤포레스트: 배깅 방법으로 여러개 decision tree를 만들고 voting
  • 부스팅: 에이다부스트, 그레디언트 부스트; sequential하게 모델 생성
    • 부스팅은 기본적으로 이전 committee에서 맞추지 못한 데이터에 penalty를 크게 주고 -> 그것을 맞춘 모델을 committee에 편입
    • $C_m = C_{m-1} \cup k_m = \{ k_1, k_2, \ldots, k_m \}$

Decision Tree 의사결정나무

  • 최적의 분할이 아닐 수 있음. 45도로 최정결정경계가 있다면, 축에 수평한 분할을 계속 해야 함.

A/B test

  • 주의
    • 사안을 비슷한 사용군에게 동시에 노출
    • 적정 샘플사이즈와 통계적 유의도 확인
    • 테스트는 고객에 대한 새로운 정보를 주어야 함
  • 필요한 샘플 사이즈 확인(related to effect size)
    • underpower: tpye2 error 위험 증가
    • overpower: type1 error 위험 증가
  • p-value는 단지 어느정도의 유의도로 귀무가설을 기각하는지 알려줌. 얼마나 차이가 나는지 모름.
    • “with 95% confidence level, we can reject the null hypothesis”. And then, you have to explain that this declaration is very different from “this hypothesis is better than the other with 95% probability”, which is the very sentence they really want to hear from you.
  • 베이지안 기법은 몇 %의 확률로 얼마만큼 더 효과가 있는지 보여줌

검정력statical power

  • Statistical Power is the probability that a statistical test will detect differences when they truly exist. Think of Statistical Power as having the statistical “muscle” to be able to detect differences between the groups you are studying, or making sure you do not “miss” finding differences.

  • In many efficacy studies we are looking at the differences between a treatment group (e.g., using a product) and a control group (e.g., not using a product). If our treatment is truly different than the control we want to make sure that our statistical test will detect that difference. This is where Statistical Power comes in. We want to make sure that we have enough Statistical Power to ensure that we find the differences if they are there.

(링크: http://www.segmeasurement.com/content/what-statistical-power-and-why-it-important)


기초 검정(4가지): 이항검정, 카이제곱 검정, 단일 표본 t test, 독립 표본 t test

  • 이항 검정 (Binomial test): 이항분포의 모수가 예상 모수와 일치하는가?
  • 카이 제곱 검정 (Chi-square test)
    • 카테고리분포가 exp와 일치하는가?
    • 두 확률변수가 독립인가?
  • 단일 표본 t-검정 (One-sample t-test): 정규분포인 표본에 대해 기댓값 mu인지 검정?
  • 독립 표본 t-검정 (Independent-two-sample t-test): 독립적인 정규 분포에서 나온 두 집단 기댓값이 같은가?
  • 대응 표본 t-검정 (Paired-two-sample t-test)
  • 분산 검정 (Chi squared variance test)
  • 등분산 검정 (Equal-variance test)
  • 정규성 검정 (Normality test)
  • Kolmogorov-Smirove test: 두 표본이 같은 분포인지 검정

카이제곱 검정

goodness of fit test / test of independence / test of homogeneity

1) 적합도 검정(goodness of fit test): 카테고리분포의 모수를 검정(귀무가설: 모수가 각각 1/N) eg. 주사위

- 카테고리분포: X_1:1, X_2:2, X_3:3, X_4:4 -> one hot encoding [1,0,0,0], ..., [0,0,0,1] -> $cat(x; \theta) = \prod_{k=1}^{K} \mu_k^{x_k}​$

2) 독립성 검정(test of independence): 두 개 요인 서로 연관 있는지 검증.(범주형 확률변수 X, Y가 독립/상관관계 가지는 검증)

- eg. 흡연과 음주의 상관관계
- 통계량: $\dfrac{(관측값-기대값)^2}{기대값}$
- 귀무가설: 독립
- 원래 독립인데 표본오차 때문에 이런 결과?

독립표본 t 검정 independent two sample t-test

  • 두 정규 분포의 기댓값이 동일한지 검사
  • 등분산 여부 모르면 equal_val=False
  • sample 수가 적으면 tpye2 error 확률 높아짐X

베타분포

(link: https://issactoast.com/113)

  • a, b 두 개 모수. a, b,의 조합으로 분포의 모형 이룸
    • a > 1: 값이 증가할수록 왼쪽 꼬리는 0에 가까워짐(x 축에 가까워짐, 왼쪽 꼬리가 축 처짐)
    • a < 1: 값이 감소할수록 왼쪽 머리는 더 가팔라짐(y 축에서 멀어짐, 왼쪽 머리가 축 처짐)
    • 이하는 0.5 기준 대칭
    • b > 1: 값이 증가할수록 오른쪽 꼬리는 0에 가까워짐(x 축에 가까워짐, 오른쪽 꼬리가 축 처짐)
    • b < 1: 값이 감소할수록 오른쪽 머리는 더 가팔라짐(y 축에서 멀어짐, 오른쪽 머리가 축 처짐)
  • 0, 1에 국한됨
  • binary 확률변수의 베이지안 모수 추정에 사용됨

베이지안 모수추정

  • 주어진 데이터 $p(\mu | x_1,…, x_n)$를 기반으로 모수값이 가질 수 있는 모든 가능성의 분포를 계산
  • eg. 베르누이 분포의 모수추정($\mu$): 사전분포는 베타분포

    • $p(\mu)$는 모수의 사전prior분포
    • 모수 $\mu$는 0 ~ 1의 값을 가지므로, 베타분포를 사전분포로 정하자
    • 사후분포의 분모 부분을 계산하지 않기 위해, 특별한 형태의 $P(\mu)$사전분포 사용 = 베타분포
    • 베타분포 hyper params는 보통 a=1, b=1
    • 사전분포 $P(\mu) \propto \mu^{a-1}(1-\mu)^{b-1}$
      • beta 분포를 따르는 확률변수 $\mu​$
    • 가능도함수 likelihood는 베르누이 분포의 곱(joint pdf) -> $p(x_1, …, x_N | \mu) = \prod_{i=1}^N \mu^{x_i}(1-\mu)^{1-x_i}​$
      • 샘플이 업데이트 되면, 모수의 분포(likelihood)가 업데이트됨
      • $a_{update} = \text{num of 1} + a_{current}$
      • $b_{update} = \text{num of 0} + b_{current}​$
      • -> 따라서 정보가 더 들어올수록 모수는 업데이트됨
    • 데이터가 많아질수록 첨도가 높아지며 정확성이 증대됨
      • 베이즈 정리 -> $p(\mu | x_1, …, x_n) \propto \mu^{n_1 + a -1}(1-\mu)^{n_0 + b -1}​$
      • cf. conjugate Prior: 사전분포와 사후분포가 동일한 분포족(함수 형태가 같은 확률밀도함수)에 속함
  • cf. MLE vs Likelihood link: https://medium.com/datadriveninvestor/maximum-likelihood-estimation-v-s-bayesian-estimation-bfac171a8b85

< !-- add by yurixu 替换Google的jquery并且添加判断逻辑 -->