# naver search confirm # markdown number and equation 데이터 과학을 시작하려는 분들께 //google adsense
본문 바로가기
인공지능 참고서

데이터 과학을 시작하려는 분들께

by 노마드분석가 2022. 11. 23.

교보문고 readITcon 2022에 기고한 컬럼이다. 

https://event.kyobobook.co.kr/detail/203827

박사 과정에 막 들어갔을 때, 세상은 빅데이터로 떠들썩했다. 오래전부터 존재했던 데이터 앞에 ‘빅’이 붙었을 뿐인데 모든 문제를 해결해줄 것만 같은 분위기였다. 비슷한 시기에 통계학과는 무슨 차이가 있는지가 사뭇 궁금했던 데이터과학도 유행했다. 데이터과학자는 현실에 존재하지 않는 유니콘이라고도 묘사됐는데 이는 바꿔 말하면 그만큼 희소가치가 있다는 뜻이므로 초보 학습자의 순진한 열정에 불을 질러 놓기도 했다.

 

그러던 어느 날 딥러닝이란 것이 세상을 강타했고 짧은 기간 동안 놀랄 만큼 진화를 거듭하더니 마침내 인공지능의 새로운 이름이 돼버렸다. 지능은 분석, 과학, 학습, 추론 이런 모든 지적 행위를 가능하게 하는 근본적인 능력이므로 당연히 이제는 인공지능을 공부하는 편이 더 현명한 선택 같아 보인다. 모든 것이 최근 10여 년 사이에 데이터를 둘러싸고 일어난 일이다.

이런 급격한 변화 속에서 이제 데이터 공부를 시작한 학습자나 데이터로 무엇인가 해봐야겠다고 생각하고 다른 IT 분야에서 건너온 사람들은 서로 비슷해 보이는 분야와 다양한 개념 간에 어떤 차이가 있는지 혼란스러움을 느낄지도 모르겠다.

 

예를 들어 회귀 분석(Regression Analysis)은 통계학 교과서의 필수 토픽이지만 데이터 분석, 데이터과학, 머신러닝을 다루는 책에서도 등장한다. 왜 동일한 개념을 다른 분야에서 배우는지, 각 분야마다 말하는 회귀 분석이 다른 것인지 의문이 들 수밖에 없다. 게다가 대부분의 기술서들은 다양한 형태의 데이터를 전처리하는 코드, 모델을 구축하는 데 필요한 여러 함수와 예시 코드로 잔뜩 채워져 있다. 머릿속에 생각만 있고 구현되지 않은 기술은 쓸모가 없으므로 이런 유형의 학습도 필수적이다. 한편 기술서가 아닌 통계 이론서들은 ‘수식’에 진심이다. 현기증 날 정도로 복잡한 수식으로 읽는 사람이 중도에 포기하도록 겁을 주기도 한다. 물론 이런 책도 다 필요하기 때문에 세상에 존재하는 법이다.

 

이렇게 장벽이 높아 보이는 데이터 분석 분야에 막 진입한 초보 학습자나, 실무보다는 의사결정에 필요한 수준의 지식 정도만 필요한 사람들은 대체 무엇을 어떻게 시작하면 좋을까? 어려운 질문이지만 우리가 어떤 것을 학습할 때는 배우고자 하는 본질에 충실한 것이 가장 도움이 될 것이라 생각한다.

 

데이터를 수집하고 분석하는 행위의 본질은 데이터의 변동성을 확인하고 변동성의 발생 확률을 가늠해 보는 일로 압축해서 설명할 수 있다. 이는 통계학, 머신러닝 등 분야가 달라도 변치 않는 속성이다. 그래서 복잡한 수식과 공식, 코딩을 공부하기 전에 자신이 해결하려는 문제를 변동성과 확률의 관점으로 전환해서 생각하는 방법부터 시작한다면, 학습을 지속하는 데 더욱 효과적일 테다. 중심을 잃지 않으면 어떻게든 목적지까지 도착할 수 있기 때문이다. 이렇게 문제를 ‘변동성’과 ‘확률’의 관계로 해석하는 것을 ‘통계적 사고’라고 부를 수 있다.

 

‘변동성’에는 두 가지 의미가 있다. 하나는 데이터 값이 서로 다르다는 뜻이다. 당연히 데이터의 값이 다르기 때문에 분석을 해야 할 이유가 생긴다. 엄밀하게는 변동성과 약간 다른 의미지만, 우리에게 익숙한 용어를 들자면 분산이나 표준편차를 생각해도 좋다. 변동성의 다른 의미는 ‘무작위성’이다. 동일한 여론 조사를 어제도 하고 오늘도 하면 둘은 약간 다르기 마련이다. 모든 샘플 데이터는 이런 변동성을 포함한다.

샘플 데이터에는 현실 세계의 변동성이 포함되며, 분석가는 샘플 데이터를 통해 현실 세계의 전체 모습을 추정하려고 한다. (출처: CourseKata - Statistics and Data Science,  https://bit.ly/3WBsdPh )

 

데이터 분석의 다른 속성은 확률이다. 통계학, 데이터과학, 머신러닝은 모두 확률 개념이 개입돼 있다. 극단적으로 말해 확률을 사용하지 않는다면 분석은 단순한 사칙연산에 불과하다. 데이터 분석에서 확률은 데이터에서 측정된 변동성이 발생할 가능성을 추측하는 데 필요하다.

이제 변동성과 확률이라는 속성을 이용해 현실 문제를 통계적으로 바라보는 예를 들어보자. 어떤 회사에서 UI가 다른 두 버전의 웹사이트 A와 B를 만들어 테스트를 거친 후, 최종적으로 어떤 버전을 선택할지 결정해야 한다고 가정해보자. 새로운 사이트의 목표는 재방문 비율 또는 특정 링크에 대한 클릭 비율일 수 있다. 결론을 내리기 위해 방문자들에게 일주일간 무작위로 A, B를 노출시키고 접속 데이터를 분석한다. 그러면 A, B 사이트는 각기 재방문 비율 또는 클릭 비율 값을 얻게 될 것이고 두 사이트의 값은 아마도 차이가 있을 것이다.

 

A/B 테스트는 확률 통계에서 다루는 매우 고전적인 문제다. (출처: 위키피디어,  https://ko.wikipedia.org/wiki/A/B_테스트 )

 

차이를 발견했으니 다음은 확률을 도입해야 한다. 만약 A가 B보다 아주 크다면 나중에 동일한 테스트를 반복하는 경우 차이의 크기는 다를 수 있어도 A가 B보다 크다는 사실 자체는 바뀌지 않을 가능성이 높다. 따라서 변동성의 여지는 있지만 확률적으로 A가 B보다 더 좋다고 결정하는 것이 안전하다. 그런데 둘 간의 차이가 크지 않다면 이 차이에는 변동성이 존재하므로 다음에 동일한 테스트를 하면 결과가 뒤집어질지도 모를 일이다. 그래서 쉽사리 A, B 중에서 어느 하나를 선택할 수 없다.

 

그렇다면 둘 사이에 어느 정도 차이가 있어야 A로 결정하거나, 또는 어느 쪽도 선택하지 못하는 것일까? 이 기준을 정하기 위해서는 차이(분산)와 확률(확률분포)을 이용한 복잡한 계산에 돌입해야 한다. 교과서나 이론서들은 이런 계량적인 방법을 자세히 다루고, 기술서는 간단하게 계산해주는 함수를 알려준다.

 

변동성과 확률만큼 중요한 문제가 데이터의 정합성이다. 만약 동전을 100번 던졌을 때 앞면이 연속해서 99번 나올 확률을 생각해보라고 하면 누구나 아주 희박하다고 대답할 것이다. 그렇게 추정하는 이유는 100번 중 99번이라는 데이터가 정상적으로 얻어낼 데이터라는 전제가 있기 때문이다. 정상적으로 얻은 결과가 그럴 확률은 아주 낮다. 마찬가지로 앞의 사례에서 A가 B보다 아주 큰 값을 얻었을 때 의사결정을 위한 확률을 도입하기 위해서는 A, B 데이터가 정상적으로 얻어진 것인지, 즉 아무런 문제도 없고 적합한 데이터인지 검증이 필요하다. 하지만 통계 교과서는 A, B에서 얻은 데이터에 대해 아무런 문제가 없다고 가정한 뒤 수식을 맘껏 전개하고, 기술서는 데이터를 전처리한 후 확률을 계산하는 함수에 집어넣는 코드를 깨알같이 제시한다. 그런데 데이터에 문제가 있다면 이런 복잡한 수식과 몇 천 줄의 코딩은 모두 헛수고인 셈이다. 책에서 다루지는 않지만 현실에서는 흔하게 발생하는 일이다. 따라서 통계적 사고의 첫 단계는 데이터의 정합성을 따져보는 일부터 시작된다.

 

데이터 공부를 시작하겠다고 결심은 했지만 넘쳐나는 정보와 화려해 보이는 여러 모델과 방법론 앞에서 헤매고 있다면 우선 현실에서 부딪힐 수 있는 다양한 문제를 통계적으로 생각하고, 문제에 적합한 데이터가 무엇인지 알아보는 눈을 기르는 것부터 시작하는 편이 좋다. 물론 그런 내용을 친절하게 설명해주는 교재나 강의가 흔하지 않다. 그럼에도 학습자의 의지가 강력하다면 길은 열려 있다. 아마도 이 글을 끝까지 읽은 사람이라면 충분히 가능할 것이다.

 

반응형

댓글