R로 쉽게 시작하는 빅데이터 분석
이안용.박은수 지음 / 광문각출판미디어 / 2023년 8월
평점 :
장바구니담기


R은, 이 책 p39의 설명에 따르면 "통계를 포함한 데이터 분석 작업에 활용할 목적으로 개발된 프로그래밍 언어 중 하나"입니다. 가장 잘 알려진 프로그래밍 언어 중 C란 것도 있으니, 언어 이름이 알파벳 외자로 붙었다고 해서 이상할 건 없습니다. 짧게 잡아도 6년 전부터 이미 여러 회사들에서 이 R이란 걸 빅데이터 정리 업무에 활용하기 시작했으므로 그리 낯선 이름이 아닐 줄 압니다. R뿐 아니라 R 스튜디오까지 함께 깔아야 불편하지 않습니다. 

인터넷에서 어떤 계산 문제 하나를 내놓고 공연한 말싸움이 벌어지기도 하는데 사실은 연산기호의 우선순위에 따라 결과가 달라질 뿐이므로 정말 의미없습니다. 학교 다닐 때 주로 초등학교에서 배운 원칙이 머리에 더 깊이 남은 사람은 A라고 우기고, 실무에서 배운 바만 현재 염두에 담은 사람은 B라고만 주장하는데, 둘 다를 두루 배운 사람은 논쟁에 참여하지를 않습니다. 이 책 p41에 보면 괄호, 거듭제곱, 곱하기(나누기), 더하기, 빼기 순이라 나오는데(R뿐 아니라 대부분이 이렇습니다), 초교에서 가르칠 때는 괄호와 곱하기가 동순위이니 먼저 나온 순으로 계산하면 결과가 다를 수밖에 없죠.     

p12를 보면 맥킨지의 한 보고서를 인용하여 현 경제상황을 VUCA라고 규정했던 유명한 구절을 소개합니다. 표I-1에 그 핵심이 잘 요약되었으며, 또 하나의 잘 알려진 사례로 GE(제네럴 일렉트릭)의 가스터빈 엔진 날개에 있는 하나의 센서가 하루에 만드는 데이터가 무려 520Gb라고 하죠. 사정이 이런데 4차 산업혁명이나 AI의 도입을 마냥 경원시할 이유가 없습니다. 어차피 세상이 이처럼 대량의 데이터를 필수적으로 다뤄야 하는 방향으로 가는데, AI든 뭐든 자동화 시스템이 전면 도입되지 않고 사람으로만 갈 방법이 있겠습니까? 

이 책의 가장 큰 장점은, 빅데이터 시대에 왜 프로그래밍 언어 R이 직장인들의 필수 도구가 될 수밖에 없는지 그 이유를 차근차근 풀어 설명해 주며, R의 기초와 구조를 많은 예제를 들어 가며 최대한 쉽게 가르쳐 준다는 점입니다. p49를 보면 변수, 벡터, 함수의 뜻부터 알려 주는데 사실 이걸 모르는 독자는 거의 없겠지만 여튼 초심자를 배려하여 사소한 사항도 소홀히하지 않는 태도가 돋보입니다. 예제를 그냥 따라만 해 봐도, 변수 무엇에 무슨 값을 입력허고 무엇이 출력되며 구체적으로 어떤 과정이 실행되는지 쉽게 배울 수 있습니다.  

평균의 계산이야 어떤 종류든 간에 엑셀이 대신해 주겠지만(또, 개념을 아는 사람은 가중치까지 독자적으로 배분해 가며 직접 설계하겠지만) R을 이용해서 평균을 계산하는 방법이 p58 이하에 잘 나옵니다. 함수도 데이터형을 확인하거나 변환하는 함수가 각각 따로 있는데 표 II-4에 나온 10종의 함수들이 그것입니다. 얘네들은 특히 빅데이터를 다루는 환경에서 할 일이 많아지겠음을 누구라도 짐작할 수 있는데, 이런 과정을 보면서 독자로서 새삼 느낀 바는, 사람은 그저 능률이나 속도가 아니라 모든 걸 (대략이라도) 안 상황에서 위에서 감독하는 시야와 식견이 필요하겠구나 하는 점입니다. 안 그러면 어쩌다 버그가 발생했을 때 불편이 해결이 안 되는 생지옥이 됩니다.   

다른 언어에서도 그렇지만 매개변수 times 대신에 each를 사용할 수 있습니다(p63). 벡터에서 여러 개의 값을 추출하는 방법도 나오는데(p64), 벡터라는 게 다른 게 아니라 샐러리 벡터, 매출액 벡터, 이익 벡터 처럼 각 수치의 종류를 사람, 거래처, 월(月) 등에 따라 여러 차원을 만들어 수(數)들의 묶음을 만들어 처리하는 수단입니다. 공대생이나 상경계라면 학부 3학년(수학 전공이라면 2학년)쯤에 선형대수학(linear algebra)을 들었을 텐데 그게 이렇게 응용되는 모습을 보면 신기하죠. 손으로 일일이 계산하지 않고(공학용 계산기라 해도 마찬가지), 이렇게 프로그래밍 함수로 대량 계산이 해결되는 과정을 보면 4차 산업혁명 시대가 무엇을 향해 나아가는지 짐작이 가능합니다. 사실 벡터니 행렬(=매트릭스)이니 함수니 하는 건 고교 이과 과정에서도 다 배우는 바이며 공부 제대로 한 사람은 이미 그 단계에서 이 정도 내용이 다 이해 가능합니다. 

이 방대한 과정이라는 게 하나의 자료를 다른 포맷으로 변형하고 그 구조에 따라 갖가지로 변환하는 게 핵심인데, 저 앞 표 I-1에서는 VUCA 시대의 특징 중 하나로 비정형 자료의 처리와 해석을 들었습니다. 그러나 사실 완벽하게 부정형이라면 컴퓨터가 어떻게 알아먹겠습니까. 이걸 적절한 창의성과 재치, 상황 적응력을 발휘하여 정형 자료로 변환하는 건 결국 사람의 몫이며 따라서 창의력과 융통성을 지닌 인재는 미래에 오히려 더 높은 가치를 지니는 것입니다. 물론 통계와 프로그래밍 언어에 대한 기본 소양은 있어야 하겠습니다. 

데이터도 탐색적 데이터 분석(p133)이 있으며 다중 변수 사이의 상관 관계(p141)를 분석해야 할 때가 있습니다. p142에 나오는 대로 (높은) 상관관계가 곧 인과관계를 뜻하는 게 아니며, 두 집합(범주)가 상당 부분 겹친다고 하여 충분조건, 필요조건 관계가 어느 하나라도 성립하는 게 아닌 성질과도 비슷합니다. 자료를 다뤄 보면 전혀 상식이 미치지 못하던 곳에서 인과관계가 추정되기도 하며 통계 수치가 과연 무엇을 뜻하는지에 대해서는 인간의 통찰과 숙려가 더 필요해지는 영역이 너무도 많습니다. 

결측값(p143. missing value)은 이 책에서 "데이터 수집 저장 과정에서 값을 얻지 못하는 경우 발셍한다"고 설명합니다. 실무에서 이 결측값의 처리는 담당자에게 많은 고민을 부릅니다. 특히 매트릭스와 데이터 프레임에서 결측값이 생겼을 시(N/A. not available) 어떤 절차를 밟아야 하는지는 p145 이하에 잘 설명됩니다. 특히 제가 도움을 받은 건 p151 이하에 설명된, "재현 가능한 결과가 필요한 경우"였습니다. 그래프도 엑셀보다 여기서 더 다양한 포맷으로 작성할 수 있죠. 

p191에는 고차 다항식 적용과 분산 분석이 설명됩니다. 주로 쓰이는 건 ANOVA 함수인데, 단 4단계만으로, 키(height) 변수의 p-value가 0.05보다 아주아주아주 작다는 걸 판명하고 통계적으로 유의미함을 선언하는 과정은 통쾌하기까지 합니다. 목재의 지름, 키를 통해 부피를 예측하는 사례를 통해 공부하는 다중선형회귀 문제도 아주 쉽게 설명되었습니다. 

많은 이들은 R을 이용해 디지털 영상도 분석할 수 있다는 사실에 놀랍니다. 이 내용은 특히 올컬러 도판이 함께하기 때문에 이해가 더욱 쉽습니다. 경계 검출이 미분 컨볼루션(derivative of convolution)을 통해 이뤄지는 과정은 책으로만 봐도 신기합니다. p263 이하에는 OpenCV를 이용한 웹캠 연동이 설명되는데, 바로 뒤에 나오는 TensorFlow 사용법까지 함께 공부하면 언어 R의 강력한 기능에 대해 새삼 놀라게 됩니다. 

부록에 나오는 R과 챗GPT의 촘촘한 결합도 매우 유익합니다. 

*출판사에서 제공한 도서를 읽고 솔직하게, 주관적으로 작성한 후기입니다.

댓글(0) 먼댓글(0) 좋아요(1)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo