낭만적(?) 일상/세미나, 교육

드립력으로 배우는 머신러닝 4주차 후기(F검정,상관,회귀)

Soo♥JJeong 2019. 5. 5. 02:34

드디어 '드립력으로 배우는 머신러닝 기초반'이 끝났다. 나는 2주차부터 수업에 들어서 3번의 수업에 참여했지만, 3번의 수업동안 엄청난 Input들이 있었다. 더 정확히는 기존에 내 머릿속에 산발적으로 있었던 지식의 파편들이 잘 엮어진 느낌이다. 이번 포스팅은 4주차 수업 내용 정리와 전체 수업에 대한 총평을 해보도록 하겠다.

 

 

이전 수업이 궁금하신 분은 클릭! (새창으로 열림)

 

2주차 : 표준편차, 분산의 정확한 정의, 허리둘레에 영향을 주는 변수 찾기

          https://soo-jjeong.tistory.com/89

 

3주차 : 월마트 엑셀데이터로 배우는 T검정, 영가설과 대립가설 세우기

          https://soo-jjeong.tistory.com/93

 

 

 

  

  4주차 수업 내용 : F검정, 상관분석, 회귀분석

 

1교시. F검정

3주차에서 배웠던 'holiday여부에 따른 매출 차이 분석'에서 차원은 1개(holiday여부)였고, 조건은 2개(holiday =T, F) 였다. 그런데 만약 문제가 '11,12,13년의 매출에 차이가 있는지 확인해봐라.'라고 주어졌다면, 차원은 1개(연도)이나, 조건이 3개(11,12,13년)로 바뀌게 된다. 이렇게 조건이 3개이상이면, T검정이 아닌 F 검정을 해야한다.

 

T검정은 α를 정함으로써 영가설이 참인데 기각되는 경우(제1종 오류)가 발생하는데, (즉, α레벨만큼 1종 오류의 가능성을 갖고 있음) 이 영가설 검증을 3번 할 경우 오류가 복리로 누적되기 때문이다.

 

F검정 = 분산분석 = ANOVA(ANalysis Of VAriance)

평균이 아닌 분산의 차이로 차이를 확인하는 알고리즘이다.

 

T검정의 영가설은 μ1 = μ2  였다면,

F검정의 영가설은 μ1 = μ2 = μ3 이다. (3개 집단이 모두 차이없다는 AND조건)

 

따라서, 저 중 어느 하나만 차이가 나도 기각이 된다. F 검정은 3개 집단 중 어느 집단과 어느 집단이 차이가 나는지 알려주지는 않는다. 정확하게 차이가 나는 집단을 확인하고 싶다면 T검정으로 확인을 해야한다. (SPSS 같은 통계패키지에서는 이것을 '사후검증'이라 부른다.)

 

          집단간 변산

F비 = -----------------

          집단내 변산

 

집단내 변산 = 집단간 변산이 같으면 전체 변산성은 1이 된다. 그리고 F 값이 3이 넘어가면 영가설이 기각될 확률이 높다. 그만큼 집단간 차이가 크다는 것이다.

 

 

 

Q. 엑셀 데이터 분석에는 분산분석이 3종류가 있다. 어떤 것을 쓰면 좋을까?

 

 엑셀 데이터분석 종류

 사용 예시

 분산분석 : 일원배치법

 차원 1개(연도), 조건 3개이상(11,12,13년)

 분산분석 : 반복있는 이원배치(동일집단)

 동일한 집단을 2번이상 측정했을 때

 분산분석 : 반복없는 이원배치(다른집단)

 차원이 2개이상일 경우(연도, 성별)

ex) 11,12,13년에 남녀별로 차이가 있는지

 

 

 

2교시. 상관분석

 

T검정, F검정은 얼마나 다른지를 봤다면, 얼마나 유사한지도 궁금하겠지? 그게 바로 상관분석이다. 상관분석은 유사도를 계산하는 것이다.

 

최근에는 유사도 계산을 많이 쓰는데, '추천'을 하는데 많이 쓰인다. 영상 추천은 코사인 유사도를 쓰는데, 데이터를 엄청난 차원으로 뿌려준다고 한다.

 

데이터의 변화 패턴을 보고 유사도(상관)을 구하는데 두 데이터가 상관이 낮으면 머신러닝을 하더라도 결과가 잘 나오지 않는다. 최근 빅데이터가 화두가 되면서 많이 때려넣으면 넣을수록 분석이 더 정확하다는 얘기를 하는 사람도 있는데, 제대로 된 데이터가 아닌게 들어갔을 때의 변화 패턴도 고려해야하므로, 정확도가 더 떨어진다. 따라서 최대한 적은 변수를 사용하고 변수 내 데이터도 깔끔해야하는 것이 기본중의 기본이다. (이게 Feature Selection!)

 

 

 

 

                        같이 변하는 패턴                     

Pearson R = ----------------------------

                    서로 각기 변하는 정도

 

                   공분산       A∩B

               = --------- = ----------

                    분산         A∪B   

 

 

 

이제 상관분석의 해석을 알아보자. 상관계수는 -1부터 1까지 있는데, 상관의 강도는 절대값으로 표기한다. 부호는 방향성만 의미하는 것이다.

 

 

|R| ≥ 0.7 이면 높은 상관으로 보고, |R| ≤ 0.3이면 낮은 상관으로 본다.

 

를 '설명량'이라고 부르는 이유!

높은 상관의 기준이 되는 0.7의 제곱은 0.49이므로 50%이상을 설명할 수 있다는 것이고, 낮은 상관의 기준이 되는 0.3의 제곱은 0.09이므로 10%도 설명하지 못한다.  

 

 

 

 

 

3교시. 예측모델, 회귀분석

선형회귀란, '어떤 선을 최적이라고 할 것인가?'에 대한 답을 찾는 것이다. 즉, 데이터의 관계성을 정확히 설명할 수 있는 방정식을 찾는 것이라고 할 수 있다. 그리고 이 선을 찾는 방법을 '알고리즘'이라고 부른다.

 

어떤 점이 있는 상태에서 랜덤하게 선을 하나 긋고, 예측값-실제값 = 예측오차를 다 구해보자. 이 오차 평균이 최소가 되는 이 최적이다. 그런데, 막상 무게중심점을 찾으면 너무 많다. 이 때에는 이 오차를 (편차라고 생각하고) 제곱해보자. 제곱한 값을 최소로 한다고 하여, 이 방법이 바로 최소제곱법이다.

 

 

[회귀식을 찾는 파이썬 코드 : 학습횟수가 2천번쯤되니 기울기2, 절편0에 수렴함]

 

 

 

 

회귀분석은 아래와 같이 3개로 분류할 수 있다.

1. 단순 vs 중다(=다중)회귀 : input 갯수가 1개이면 단순회귀, 2개이상이면 다중회귀이다.

2. 선형 vs 비선형 회귀 : 회귀식이 선형이면 선형회귀, 선형이 아닌 변곡점이 생기면 비선형 회귀이다.

3. 로지스틱 회귀 : 0,1 이진분류로 나온다.

 

 

 

 

  드립력으로 배우는 머신러닝 기초반 4주 수강 총평!

 

2주차보다 3주차가, 그리고 3주차보다 이번 4주차가 수업시간이 더 빨리 지나갔다. 학교다닐 때 통계 수업을 이렇게 배웠었다면 정말 재밌게 배우고 오래오래 기억에 남았을것 같다. 그때는 왜 그렇게 통계를 어렵게 알려주셨던지.. 그래도 이렇게나마 나에게 맞는 수업을 찾아서 얼마나 다행인지 모른다.  

 

나의 파편화된 지식을 잘 엮어준 수업. '드립력으로 배우는 머신러닝 기초반'. 이 수업은 숫자를 다루는 모든 사람이 들어야할 필수 과목이 되어야 한다. 업무를 하는 사람뿐만 아니라 업무를 지시하는 사람도 꼭 알아야할 내용이다.

 

이제 약간의 휴식기를 갖고 5월 19일부터 '기초아니야'반을 수강하게 되었다. 이 수업은 일찍 등록하면 할수록 할인율이 높은 신기한 수강료 방식이다. 그리고 친구와 함께 수강하면 5%할인, 4주동안 조별 활동 1등을 한 조에게 5%할인을 해준다. (우리조가 1등했는데, 난 이미 '기초아니야'반 수업을 결제해서 할인을 못받은게 아쉽다.)

 

ds스쿨, 패스트캠퍼스에서도 파이썬을 배웠지만 흥미를 못가진 나. 이번 드립력 강사님은 파이썬을 어떻게 알려줄지 기대가 된다.