본문 바로가기

교육 및 세미나

[멀티캠퍼스]어서와 데이터는 처음이지 - (3)미래 예측을 위한 기초 개념

두 데이터가 유사한지 알아보려면?

▣ 1차시_많은 사람들이 오해하고 있는 그 단어! 상관분석

# orientation
예측을 어떻게 한다는거야...
예측, 정확히 무엇을 어떻게 하는 것인가?

# 상관분석의 목적
상관분석 ...? 데이터 간의 유사도를 구하기 위해서 필요
유사도 : 추천서비스(알고리즘)

# 유사도를 정의하는 방법
    1. 두 데이터 혹은 세 개 이상 데이터 간 떨어진 거리 = 거리가 멀면 '유사도가 낮다'
    2. 원점에서 데이터까지 각도, 코사인 각도 두 데이터 사이의 각도가 작을수록 가까운 데이터(코사인 유사도)
    3. 데이터 변화 패턴(변화량) 

# pearson-r

<정리>
1. 상관분석(Correlation)의 목적 : 데이터 간의 유사도를 구하는 것
2. 유사도 정의 방법
    - 거리, 원점에서의 각도, 데이터의 변화 패턴 등 다양한 방법으로 유사도를 정의하고 구할 수 있으며, 각 방법마다 쓰임새가 다름
3. Pearson-r
    - 데이터의 변화량, 즉 변화 패턴을 이용하여 유사도를 계산하는 알고리즘
    - 줄여서 r 이라고 부름
    - 유사도 분석의 가장 기초이자 가장 널리 쓰이는 알고리즘

▣ 2차시_유사하다는 것은 무엇인가?(1) - 상관분석(pearson-r) 기초

# Pearson-r 상관값

     공분산: 서로 같이 변하는 정도(시그마xy)                                                                                                  변화 패턴이 일치하는 변화량의 총량
r = -------------------------------                                                                                                                             ----------------------------------
     분산: 서로 각기 변하는 정도(루트 시그마x제곱(x데이터의 분산=> 델타x)*시그마y제곱)                              변화량의 총량

변화량의 개념 = 분산의 개념

분산이 크다 => 데이터들이 평균에 많이 떨어져있다. => 데이터 변화량이 크다 => 분산이 크다
분산이 작다 => 데이터 간의 거리가 줄어든다 => 데이터 변화량이 작다

* 두 데이터의 변화 패턴이 동일한 구간의 변화량만 계산
* 공통된 변화량의 총량, 공통된 분산(공분산)

# Pearson-r 쉽게 이해하기
벤다이어그램 => A와 B 교집합 / A와 B 합집합 => A와 B 교집합 max일 때, A=B 이다
* A와 B 교집합은 A와 B 함집합 값을 넘어설 수 없다.
* 이 비율의 최대값은 1을 넘을 수 없다.
==> Pearson-r은 항상 최대값이 1이 된다.

<정리>
1. Pearson-r 상관분석
    - 데이터 간의 변화 패턴으로 유사도를 구함
    - 두 데이터의 변화 패턴이 일치할수록 두 데이터는 유사한 데이터가 됨
2. Pearson-r 수치
    - 공분산/분산 으로 그 수치를 구하며, 계산된 수치의 최댓값은 1임
    - r=1이면 유산도가 100%라는 의미임

▣ 3차시_유사하다는 것은 무엇인가?(2) - 데이터로 직접 확인하기

# Pearson-r 과 데이터 패턴의 관계
Q1. 만약 rxy(X,Y 두 데이터 간의 r값)=1 이라면, Y 데이터는 어떤 패턴이어야 할까요?
Q2. 만약 rxy=0 이라면, Y데이터는 어떤 패턴이어야 할까요?
Q3. 만약 rxy=-1 이라면, Y데이터는 어떤 패턴이어야 할까요?

# rxy = 1 인 경우
기울기 : 양의 값(+)
Y=ax+b
rxy = 1

<정리>
1. 두 데이터 X, Y의 상관인 rxy=1이 나오면 두 데이터 X, Y 의 유사도는 100%란 의미임
2. rxy=1인 경우, 가장 이해하기 쉬운 두 데이터 X, Y간의 관계성은 Y=X형태의 관계임
3. Y=X 이외에도 기울기가 + 로 바뀌거나 절편이 어떠한 값으로 바뀌어도 항상 rxy=1이 됨
    - 기울기가 양의 값이고, 두 데이터를 정확히 선형(1차 방정식)으로 나타낼 수 있다면, Pearson-r 로 계산되는 두 데이터의 유사도는 100% 가 됨

▣ 4차시_유사하다는 것은 무엇인가?(3) - 상관값에 따른 데이터의 관계성

# rxy = -1 일 때 데이터는?
# Pearson-r 특성 정리
기울기가 (+)이기만 하고 선형(1차방정식)으로 나타낼 수만 있으면 절편에 관계없이 rxy=1이다.
기울기가 (-)이기만 하고 선형(1차방정식)으로 나타낼 수만 있으면 절편에 관계없이 rxy=-1이다.

# rxy = 0 일 때 데이터는?
랜덤

<정리>
1. -1 ≤ Pearson-r ≥ 1
2. Pearson-r에서의 부호(-,+)는 증가함수인지 감소함수인지 그 방향성만을 알려줌
3. 상관 강도, 즉 유사도의 강한 정도는 |r|(절대값)을 이용하여 나타냄
4. rxy=0 인 경우 두 데이터 x,y 는 유사도가 0이란 뜻이며, 산포도를 그렸을 때 원형을 나타내게 됨

데이터로 예측을 하려면?

▣ 5차시_오해하지 말자 결과는 결과일뿐! - 상관값의 해석

# 상관강도의 기준
기준값(일반적인 기준)
|r|<0.3     : 낮은 상관
0.3<=|r|<0.7 : 보통
0.7<=|r|        : 아주 큰 상관 

신장과 체중은 관계성(유사도)이 있는가?
r=0.7 관계성이 아주높다
혈액형과 성격의 상관관계
별자리와 성격의 상관관계
=> r=0.1

# R의 제곱(스퀘어) : 결정계수(설명력)
Pearson-r 제곱 = R 스퀘어
r = 0.7 R의 제곱 = 0.49 = 49%

# 상관관계의 해석
r =1 
아이스크림 판매량 : 여름 ^ 겨울 내려가
익사자수    : 여름 ^ 겨울 내려가
데이터의 변화 패턴 유사해..-> Pearson-r -> r2 높게 나와 예를 들어 r =1
아이스크림 판매량이 익사자수의 원인이다

목적 정의
인과 관계 <--- 실험
상관관계는 인과관계를 알려주지 않는다.

<정리>
1.
    |r|<0.3 : 낮은 상관 (변수 간 관계성(유사도)이 거의 없음)
    0.3<=|r|<0.7 : 보통 (변수 간 관계성이 어느 정도는 있다고 봄)
    0.7<=|r| : 매우 강한 상관(아주 높은 관계성이 있다고 봄)
2. R의 제곱(스퀘어) : 결정계수 또는 설명력이라고 함
                     r을 제곱하여 구해내는 수치임
                     예측 모델의 적합도나 변수간의 설명력(%)을 나타내는 것으로 주로 사용함
3. 상관관계는 인과관계를 알려주지 않음

▣ 6차시_예측을 해보자(1) - 회귀, Data-fitting, Modeling

# 데이터 변화 패턴과 예측
상관과 회귀는 별도의 알고리즘이 아니다.
상관 : 데이터 간의 변화 패턴으로 유사도(관계성)를 찾는 것
회귀 : 정의된 변화 패턴을 이용해서 데이터 간의 관계성을 가장 잘 나타내는 방정식을 찾는 것
상관 -> 회귀 (1+1)

# Modeling & Data-fitting
회귀분석(Regression)
주어진 데이터의 관계성을 가장 잘 설명하는 방정식

# 관계성을 가장 잘 설명하는 선

<정리>
1. 상관과 회귀
- 서로 떨어진 별도의 분석이 아니라, 1+1임
- 상관의 결과가 당연히 회귀에 영향을 미침

2. 상관과 회귀의 목적
- 상관 : 데이터의 변화패턴을 기반으로 한 유사도 계산
- 회귀 : 상관으로 구한 데이터 간의 관계성을 가장 잘 설명하는 방정식 도출

3. 회귀 = Data-fitting=Modeling
주어진 데이터의 관계성을 가장 잘 설명하는 방정식을 찾는다는 점에서 동일한 용어임

▣ 7차시_예측을 해보자(2) - 최적의 선을 찾는 방법, 최소제곱법

# Model 과 Parameter
Model : 원하는 목표 방정식(Y=AX+B)
Parameter : Model 을 구하기 위해 반드시 필요한 변수(기울기와 절편)

# 최소 제곱법(LMS)
오차(원래값 - 방정식 값)의 평균의 제곱
오차의 부호를 없애려면 절대값 or 제곱

    1. 최적의 Model : (실제값 - 예측값)을 오차로 정의하고, 모든 데이터의 오차를 다 구한다.
    2. 오차를 일일이 다 제곱하고 그 제곱 오차의 평균을 구한다.
    3. 제곱 오차의 평균이 가장 작은 것이 최적의 Model이다.
Least(최소)
M..

# 오차 제곱 평균(MSE)
Mean Squared Error
MSE가 작다 = 오차가 작다 = 예측력이 높다

RMSE Root(루트) Mean Squared Error
예측 모델의 정확도
RMSE 가 작으면 좋은 model 이다

<정리>
1. Model과 Parameter
- Model : 회귀의 목적인 방정식
- Parameter: Model을 구해내는데 필요한 매개변수(기울기와 Y절편)
→ 'Model 을 구하라' = '최적의 Parameter 를 찾아내라'
2. 최소제곱법(LMS)
- 실제 데이터 - 예측 결과 = 오차
- 오차를 제곱하여 평균 내어 오차 제곱 평균을 구한 후, 이것을 최소로 만들면 최적이라고 할 수 있음
3. 오차 제곱 평균(MSE)
- 이 수치는 제곱 되어있기 때문에 이것이 제곱근을 구한 것이 RMSE 임
- RMSE 는 예측모델의 정확도를 나타내는데 많이 쓰임
- RMSE 가 낮을수록 오차 평균이 적다는 의미 = 좋은 예측모델

▣ 8차시_예측을 해보자(3) - 회귀의 종류

# Simple vs. Multiple regression
목적 : 온도(X1)와 습도(X2)와 아이스크림 판매량(Y) 예측하기
Y = AX1 + BX2 + C
Input 변수 1개 => 단순회귀(Simple regression)
Input 변수 2개 이상 => 다중(중다) 회귀(Multiple regression)

필요없는 변수는 최대한 줄이는 것이 좋다
예측 성능이 높을 것으로 기대되는 변수만 선택
상관이 높은 것 = 예측쳑이 높아짐
온도와 아이스크림 판매량 과 습도와 아이스크림 판매량 둘 중에 상관 관계가 더 높은 변수 선택

# Linear vs. Non-linear regression
데이터의 패턴
1차 방정식 선형회귀(linear regression)
2차 이상의 방정식 비선형회귀 (non-linear regression)

단순선형회귀(simple)

# Logistic regression
로지스틱 회귀
너무 복잡해서 넘어감..

<정리>
1. 입력변수 개수에 따라 Simple regression 과 Multiple regression 으로 나눌 수 있음
2. 모델링 해야 하는 방정식 차수에 따라 Linear regression 과 Non-linear regression 으로 나뉨
3. 데이터 분석의 목적이 예측 또는 분류인지에 따라 나뉨 : 분류의 경우 Logistic regression(로지스틱 회귀)를 씀

▣ 9차시_아, 이제야 이해할 수 있다 - 회귀분석 vs. 머신러닝

# 전통적 회귀 방정식
변화 패턴에 기반해서 최적의 방정식을 찾는 것

# 머신러닝
전통적인 회귀, 머신러닝 -> 최소 제곱법 사용

머신러닝으로 모델링하는 과정
    1. Y = AX +B 와 같은 학습 목표를 정해준다.
    2. A, B 에 랜덤으로 초기값을 주고 아무렇게나 선을 그리게 한다.
    3. MSE 를 일일이 계산해가면서, 최적값을 찾도록 학습시킨다.

<정리>
1. 전통적인 회귀
- 최소 제곱법에 따른 최적의 선을 주어진 공식을 이용하여 구했음
- 공식 Y=AX+B에서
    A=r*Sy/Sx
    B=Y_-A*X_
2. 머신 러닝
- 예측 모델을 만들 때 목적은 회귀와 완전히 동일함, 즉 모델의 Parameter를 찾는 것
- 사람이 유도한 공식을 쓰는 것이 아니라 스스로 노가다, 즉 '학습'을 통해 최적의 Parameter를 알아서 찾음

예측 모델 만들기 실습

▣ 10차시_예측 모델 만들기 실습(1) - 전통적 방식의 선형 회귀 모델

<정리>
1. 선형회귀 : 최소제곱법(LMS) 이용
2. Python 에서 단순선형회귀 코드를 실행하면 데이터 간의 관계를 가장 잘 설명하는 방정식, 즉 Model의 Parameter(기울기와 Y절편)을 찾을 수 있음
3. 전통적인 선형회귀 코드는 데이터만 바꿔주면 스스로 공식을 찾아 최적의 선이 어떤 방정식인지 알려줌

▣ 11차시_예측 모델 만들기 실습(2) - 머신러닝을 이용한 선형 회귀 모델

1. 전통적인 회귀와 머신러닝의 공통점
    - 목표 : 최적의 방정식, Parameter 를 찾는 것
    - 알고리즘 : 최소제곱법(LMS) 사용
2. 전통적인 회귀와 머신러닝의 차이점
    - 구현 : 사람이 유도한 방정식 vs. 기계가 노가다로 직접 학습