춘식이2
업글이✧
춘식이2
전체 방문자
오늘
어제
  • 분류 전체보기
    • Data Analysis
    • Python
    • SQL
    • Statistics

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • sql튜닝
  • coalesce
  • NULL
  • 데이터분석
  • excel
  • hackerrank
  • Apriori
  • Codility
  • SQL
  • python3
  • ifnull
  • pv
  • 장바구니분석
  • Python
  • NVL
  • rank함수
  • Jupyter
  • uv
  • 데이터디스커버리
  • window함수

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
춘식이2

업글이✧

베이지안 정리/ 회귀분석 (릿지, 라쏘) / 모델링 기법 / 상관분석
Data Analysis

베이지안 정리/ 회귀분석 (릿지, 라쏘) / 모델링 기법 / 상관분석

2022. 8. 19. 09:39

머신러닝 분류 알고리즘

학습 데이터(train data)로 피처와 레이블값(결정 값, 클래스 값)을 머신러닝 알고리즘 학습해 모델을 생성
> 생성된 모델에 새로운 데이터(test data) 값이 주어졌을 때 미지의 레이블 값(결정 값, 클래스 값)을 예측 시 사용하는 알고리즘
분류는 지도학습의 대표적인 유형
  1. 로지스틱회귀(Logistic regression) : 회귀라는 단어가 들어가지만 , 분류를 위한 모델입니다.
    종속변수 y와 한개이상의 독립변수 x와의 선형상관관계를 모델링하는 기법.
                     1번 2번 3번으로 바로 분류 X -> 1번과 1번이 아닌것 > 2번과 2번이 아닌것
    • 로지스틱 연속형을 인풋 데이터를 통해 이산형 아웃풋을 얻는, 바이너리 클래시피케이션 테스크에 사용되며
      바이너리 클래시피케이션은 두가지 값으로 분류해주는 것을 의미합니다.
      그리고 그 두가지 범주를 0이나 1로 표현하였기 때문에 시그모이드라는 함수를 사용해서 0에서 1사이의 확률 값을 만들어주었습니다.
      마지막으로 크로스앤트로피라는 방법을 사용해서 추정된 값과 참값 사이의 오차를 계산해주어 오차를 줄이도록 만들어 준 것입니다.
      독립변수와 종속변수의 선형 관계성에 기반한 알고리즘
    • 이름은 회귀이지만, 강력한 분류 알고리즘이다.
    • 선형/비선형 회귀방법은 연속형 input 데이터로 -> 연속형 output 데이터를 추정하는 알고리즘
    • 1 또는 0 을 도출하기 위해 시그모이드 라는 활성함수를 
    • 시그모이드 => 아웃풋이 0~1사이 값으로 도출하기 위해 사용했다
    • 로지스틱 알고리즘의 최종목표 : 참값과 예측값의 차이가 0이 되도록 오차를 줄이는 것
  2. 서포트벡터머신 : 데이터를 사상공간에 표현했을때 데이터의 경계사이에 선을 그어 최대 마진을 가지는 경계선을 가지는 알고리즘
    • 개별 클래스 간의 최대 분류 마진을 효과적으로 찾아주는 알고리즘
  3. 나이브베이즈(Naive Bayes) : 각각의 특성이 독립적이라고 가정하는 조건부 확률. 순진한 가정
    사전 확률을 구성하는 사건은 모두 독립사건이다.
  4. 의사결정나무(Decision Tree, 결정트리학습) : 상위 노드의 의사결정 규칙에 따라 하위 노드로 데이터를 나눠 나가며 분류나 예측을 수행해 나가는 모델
    • 데이터 균일도에 따른 규칙 기반의 알고리즘
    • 쉽고 유연하며, 스케일링이나 정규화의 영향이 적지만 과적합으로 인한 예측 성능 저하 문제가 발생할 수 있다.
    • 앙상블에 많이 사용된다.
  5. 랜덤포레스트 : 의사결정 나무의 앙상블 모델 
    *앙상블 (Ensemble)? 여러개의 모델을 학습시켜, 그 모델들의 예측결과를 활용하여 더 정확한 예측값을 구하는 모델이다
    앙상블 학습에는 배깅(나온결과를 투표 혹은 평균활용)과 부스팅의 방식이 있다
    • 여러 머신러닝 알고리즘들을 결합해 사용하는 알고리즘
    • 보통 약한 학습기인 결정트리를 이용한다.
  6. k- 최근접 이웃(K-nearest neighbor algorithm) : 새로운 데이터를 예측할때 훈련데이터셋에서 가장 가까운 이웃 데이터를 찾아 예측한다 여러개의 이웃데이터를 찾을 경우에는 더 많은 이웃을 따라간다

 


베이즈 정리(Bayes' Theorem)

베이즈 정리

사후확률 = 우도 * 사전확률 / 증거

조건부 확률 ; 사건 B가 일어난 상태에서 A사건이 일어날 확률

 

예시) 광고라는 단어가 들어갔을떄, 스팸메일일 확률

P(스팸|광고) = P(광고|스팸) * P(스팸)   = 4/20 * 20/100    = 0.8

                            P(광고)                              5/100

 

광고라는 단어가 들어가면 80%가 스팸메일이다.

 

베이지안 통계(Bayesian Statistics)

 

 

베이지안 

실제로 관측된 데이터를 사용하여 확률 분포를 고려

 


 

회귀분석(Regression Analysis)

- 독립변인이 종속변인에 영향을 미치는지 알아보고자 할때 실시하는 분석방법
- 단순 선형 회귀 분석은 독립변수 X(설명변수) 에 대하여 종속변수 Y(반응변수) 들 사이의 관계를 수학적 모형을 이용하여 규명하는 것
- 목적 : 이미 알고있는 표본 데이터를 통해 모집단의 분포를 추정

- 회귀(regression) 의 사전적 의미 ?
go back to an earlier and worse condition (옛날의 대표적인 상태로 돌아감

 

(예시) 몸무게 = a*키 + b
키 = 독립변수
몸무게 = 종속변수

회귀의 기본원리

선형 회귀 모델의 직선과 실제 값 사이의 차를 뜻하는 residual error를 최소화 시키는 것이다

x값에 따라 여러 y값이 나오겠지만, 결국 추론된 직선으로 회귀할 것이다

 

회귀분석에서의 통계 검정

  1. 만들어진 회귀모형이 유의한지
    • 유의한 예측모형인가?
       - 주어진 모든 변수들이 함께 어느 정도 예측변수의 변량을 설명(예측)하는가?
      - 결정계수 R2의 크기에 대해 F분포로 결정
  2. 회귀계수들이 유의한지
    • 어떤 예측 변수들이 유의한지 
      - 각 독립변수(X)의 회귀 계수(a)가 유의한가??
      - t- 검정을 사용

 

정규화(Regularization)

<첫번째 그림>을 보면 직선 방정식을 이용하여 선을 그었습니다.
데이터와 직선의 차이가 꽤 나네요. 정확한 예측은 아닙니다.
이런 경우를 underfitted 또는 high bias 라고 합니다. 
bias가 큰 모델은 test data를 위한 학습이 덜 된 것이 원인이고,
이는 train data와 test data간의 차이가 너무 커서 train data로만 학습한 모델은 test data를 맞출수가 없는 것
<두번째 그림>이 가장 좋은 모델이라고 말할 수 있습니다. 어느정도 데이터에 적합하면서 bias와 variance에 대해서도 적절합니다.
<세번째 그림>을 보면 현재 데이터로는 잘 맞겠지만 다른 데이터를 사용한다면 정확한 예측을 하지 못합니다. 이런 경우는 overfitting 또는 high variance 라고 합니다. variance가 큰 모델은 train data에 over-fitting된 것이 원인이고, 이는 너무 train data에 fitting된 모델을 만들어서 test data에서 오차가 발생한 것을 의미합니다.

 

Bias와 Variance

Bias와 Variance = 모델의 loss 또는 error
  * Bias : 참 값들과 추정 값들의 차이(or 평균간의 거리) => <추정값의 평균>과 <참 값>들간의 차이
  * Variance : 추정 값들의 흩어진 정도 => <추정 값의 평균>과 <추정 값>들간의 차이 => loss
                      => 참값과는 관계없이 추정값들의 흩어진 정도만 의미!

 

(a) 가장 좋은 모델
(b) 추정 값들을 평균한 값은 참 값과 비슷한데(bias가 작은데), 추정 값들의 variance가 커서 loss가 큰 모델
(c) bias가 크고, variance가 작은 모델
(d) bias, variance 둘 다 큰 모델

 

Train data , Test data

train data와 test data 관점에서 살펴보도록 하겠습니다.

train data에서는 (a)와 같은 결과 이었는데(train loss가 작았는데),

test data를 넣어보니 (b),(c),(d)의 결과가 나왔다고 해 보겠습니다.

3 가지 모두 train data에서는 loss가 작았는데 test data에 적용해 보니 loss가 커졌습니다

 

(b),(c),(d)모두 에러가 크지만 서로 다른 유형의 에러

(b) variance가 큰 (b)모델 / train data에 over-fitting된 것이 원인이고, 이는 너무 train data에 fitting된 모델을 만들어서 test data에서 오차가 발생
(c) bias가 큰 (c) 모델은 test data를 위한 학습이 덜 된 것이 원인이고, 이는 train data와 test data간의 차이가 너무 커서 train data로만 학습한 모델은 test data를 맞출수가 없는 것입니다. 만일, (c) 그림이 train data에 대한 것이라면 train data에 대해 under-fitting 즉, 학습이 덜 된 모델이라고 할 수 있습니다.
(d) 는 둘 다의 경우로 생각할 수 있겠습니다.

 

선형 회귀분석에서 중요한 가정

  1. 선형성 : 종속변수(Y)와 독립변수(X) 사이에는 선형관계가 있다
    종속변수와 독립변수 사이에 비션형 관계가 있고 선형회귀모델이 적합하지 않고 예측이 실제와는 거리가 멀다는 결정적인 가정
  2. 정규성 : Residual error는 정규분포로 가정
  3. 동질성 : 잔차(오류)는 X의 일정한 분산을 가짐

 

 회귀 

  1. 단순회귀(선형회귀) = X ~ Y => y = ax+b
  2. 다항회귀 => y = ax**2 + bx + c
  3. 다중회귀 : 이렇게 단순히 두개의 관계를 구하는게 아니라 Real World에서는 여러개의 요소 가 Y에 영향 미칠수있
    • X1, X2, X3 ... ~ Y
    • y = ax1 + bx2 + cx3 ...
      • 어떤 회사 주식이 있다고 하면, x가 '금리'뿐만이 아니라, => 금리, 환율 , 경쟁사 이슈 등 수많은 요소가 들어가는게 대다수이겠죠?
    • y = w1x1 + w2x2 + w3x3 ...
      • w = weight = 가중치 = 얼마나 x가 중요한지
    • 다중회귀의 문제점?
      • 기본적으로 "과적합"에 취약함
      • y = w1x1 + w2x2 + w3x3 ...
      • w1 , w2, ... , w100 까지도 될수도있음 -> Real World에서 영향을 미치는 변수는 100만개도 넘을거기 때문에
      • 따라서 !! "규제" 해야될 필요성이 있다
      • 규제 = Regulation
        • (예시) 독립변수는 5개만해, 그래야 알아먹지!!
      • W1**2 + W2**2 + W3**3  + ... < "특정 숫자"
      • |W1| + |W2| + |W3| + ... < "특정 숫자"

Ridge regression (릿지 리그레션)

  • W1**2 + W2**2 + W3**3  + ... < "특정 숫자"
  • 비중(weight) 하나하나 영향력을 크게 매기고 싶으면 사용 -> 왜냐? 제곱이기 때문에 효과가 그대로 감, 낮은  웨이트느 ㄴ확죽어 센 웨이트는 확 세게 보임, 

Lasso regression(라쏘 리그레션)

  • |W1| + |W2| + |W3| + ... < "특정 숫자"
  • 요곤 상태적으로 순함, 실제로 해봤을떄 이 회귀가 적합하겠다 하는 걸 판단해야지

상관분석(Correlation Analysis)

두 변수 간에 어떤 선형적 관계를 가지는 지 분석하는 기법으로 상관계수를 이용하여 측정한다.

상관계수 (Correlation Coefficient)

상관계수(correlation coefficient)

상관계수 r=x와 y가 함께 변하는 정도 / x와 y가 각각 변하는 정도

상관계수(correlation coefficient)

r=0 의미

상관이 전혀없다

선형의 상관관계가 아니다 (두 변수가 곡선관계이면 상관분석으로 설명할 수없다)

 

상관계수의 종류

■ 피어슨 : 
■ 켄달 : 
■ 스피어만 :  

 

참고
https://modulabs-biomedical.github.io/Bias_vs_Variance

https://stellarway.tistory.com/8

https://ek-koh.github.io/categories/

'Data Analysis' 카테고리의 다른 글

휴리스틱(Heuristic) vs 알고리즘(Algorithm)  (0) 2022.08.23
[데이터분석 용어 정리] PV, UV, MAU, DAU  (0) 2022.06.29
[IT용어] 오버엔지니어링과 하드코딩  (0) 2022.06.29
데이터 디스커버리 플랫폼 (Data Discovery Platform)  (0) 2022.06.28
[데이터 직군 비교] 비즈니스 애널리스트, 데이터분석가, 데이터사이언티스트, 데이터엔지니어 비교, 차이  (0) 2022.06.27
    'Data Analysis' 카테고리의 다른 글
    • 휴리스틱(Heuristic) vs 알고리즘(Algorithm)
    • [데이터분석 용어 정리] PV, UV, MAU, DAU
    • [IT용어] 오버엔지니어링과 하드코딩
    • 데이터 디스커버리 플랫폼 (Data Discovery Platform)
    춘식이2
    춘식이2

    티스토리툴바