R로 배우는 데이터 분석 첫 걸음 : 기초 문법부터 데이터 마이닝 실습까지 강좌의 맛보기 강의입니다.
11장 정형 데이터 마이닝에 대해서 해보도록 하겠습니다. ADsP 시험은 데이터 마이닝 중에 정형 데이터 마이닝만 포함하고 있어요. ADP를 가야 정형이 아닌 비정형 데이터 마이닝까지 들어가 있고요. 저희 시험은 일단 정형 데이터 마이닝까지 들어가 있습니다. 범위가 데이터 마이닝을 다른 말로 저희가 기계학습, 머신러닝이라고 부를 수 있고요. 종류를 먼저 살펴보면 크게 보면 지도학습, 비지도학습, 강화학습이 있어요. 지도학습은 슈퍼바이즈드 러닝이라고 얘기를 하고요. 정답이 있는 것을 공부를 시키는 거죠. 공부를 시켜서 훈련을 시킨 다음에 그리고 나서 새로운 값이 들어왔을 때 예측을 하는 것을 지도학습이라고 그래요. 말 그대로 감독을 받는 거죠. 그래서 정답이 있는 거 갖고 공부한다고 슈퍼바이즈드라고 그런 거고요. 비지도학습 같은 경우에 정답이 없는 데이터를 공부하는 거죠. 그래서 어떤 기존에 정답이 있는 걸 넣어주지 않아요. 그럼에도 불구하고 그 데이터 간의 유사성, 연관성 이런 걸 파악해서 좋은 예측들을 좀 해줄 수 있죠. 그래서 이게 비지도학습에 해당되는 부분이고요. 강화학습은 저희 시험범위에는 들어가지 않지만 머신러닝의 종류 중에 하나 들어가 있는 거긴 하거든요. 그래서 저희가 주로 게임 짤 때 많이 쓰는 그런 머신러닝 기법인 거고요. 보상 시스템으로 학습하는 방법이에요. 그래서 게임을 짤 때 저희가 원하는 방향이 있다면 원하는 방향으로 갔을 때만 보상을 해주는 거죠. 그래서 그런 보상들을 잘 받기 위해서 보상을 잘 받기 위해서 그런 쪽으로 발전해 나가는 것들을 점점점점 개발해 나가는 게 바로 이제 강화학습이라고 생각하시면 되겠죠. 크게 우리는 기계학습, 다시 말하면 데이터 마이닝에서는 지도학습과 비지도학습만 볼 건데요. 지도학습을 또 나누는 게 굉장히 중요해요. 지도학습에서 이미 저희가 회귀를 지금 하고 왔거든요. 그래서 회귀는 통계학에서 뒷부분 했지만 다시 머신러닝에서도 똑같은 회귀를 다뤄요. 그래서 지금 정형 데이터 마이닝은 저희가 회귀를 하고 넘어왔기 때문에 범위에선 빠져 있지만 회귀 자체도 지도학습이긴 해요. 저희가 종속변수 Y가 결국 종속변수 Y라고 하죠. Y가 수치형 데이터, 연속형 수치형 데이터는 저희가 회귀를 가는 거죠. 예측할 때 Y가 뭐죠? 범주형 데이터, 단지 구분하는 거예요. 암이냐, 암이 아니냐, 살았냐, 죽었냐 이런 것들을 구분만 하는 것은 분류라고 얘기하는 거고요. 회귀선 같은 걸 그려서 X값이 새로 들어왔을 때 Y핏이 얼마야? 예측해 주는 거니까 이게 회귀였죠. 그래서 회귀는 이미 했어요. 저희가 단순 선형 회귀, 다중 선형 회귀, 설명변수 하나일 때, 두 개일 때 이렇게 했고요. 지금 남은 거는 지도학습 중에 분류 부분이 여기 진도에 남아 있고요. 그리고 비지도학습, 지도학습이 아닌 비지도학습 같은 경우에는 정답이 없는 상태에서 그냥 칼럼들, 사실 변수들 값만 입력받거든요. 그러니까 종속변수가 없는 거죠. 종속변수, 설명변수를 나누는데 굳이 여긴 나눌 필요가 없이 그냥 변수들만 있는 거예요. 그런 변수들을 가지고 저희가 유의미한 어떤 패턴을 찾아내는 거죠. 그 중에 가장 많이 쓰는 게 클러스터링 기법이고 군집화라고 저희가 얘기를 해요. 군집화 하고 또 하나 더 배운 게 연관 분석 기억나시죠? 장바구니 분석 이런 것도 있고요. 좀 전에 배웠던 다변량 분석 중에 주성분 분석 있죠? 이런 것도 모두 다 어디에 해당되냐면 사실은 비지도학습에 해당되는 거예요. 지도학습에 해당되는 게 아니고 데이터 마이닝은 세 가지로 쪼갤 수 있다. 지도학습, 비지도학습, 강화학습인데 저희가 지도학습과 비지도학습만 이 분야에서는 저희 시험범위에서는 다루고 있다고 보시면 될 것 같습니다. 정형 데이터 마이닝은 크게 두 가지로 쪼갭니다. 지도학습과 비지도학습으로 쪼개고요. 지도학습은 정답이 있는 데이터를 학습해서 예측하는 방법이고요. 지도학습의 종류는 분류와 회귀가 있어요. 그래서 종속변수가 범주형 데이터이면 저희가 분류로 들어가는 거고요. 종속변수가 연속형 데이터면 회귀로 예측하는 거죠. 비지도학습은 정답 라벨이 없는 데이터를 가져다가 비슷한 특징, 연관성이 있는 특징 또는 유사한 특징을 찾아서 군집하고 새로운 데이터에 대한 결과를 예측하는 방법이고요. 비지도학습에서는 군집, 연관, 주성분 분석 이렇게 종류가 있습니다. 정형 데이터 마이닝은 저희가 지도학습, 비지도학습 나누는 거고요. 지도학습이 다시 회귀하고 분류가 나누는데 회귀는 앞에서 했기 때문에 분류 부분만 여기서는 다뤄보도록 하겠습니다. 분류는 당연히 지도학습 중에 해당되는 거죠. 레이블이 다시 말하면 종속변수 Y가 범주형 데이터일 때 들어가는 방법이라고 보시면 되겠습니다. 학습 방법이고요. 분류 알고리즘에는 굉장히 많죠. 회귀 중에 유일하게 로지스틱 회귀라고 붙는 것은 저희가 이제 회귀 자체가 원래 무한대에서 무한대까지 저희가 예측을 하는 건데 그거를 1하고 0 사이로 이제 바꿔주면서 분류를 할 수 있는 방법을 저희가 선택한 거죠. 그래서 이게 바로 로지스틱 회귀고요. 특히 이항분류 두 가지를 분류할 때 굉장히 좀 효과가 좋다라고 많이 그 정평이 나 있는 알고리즘이어서 로지스틱 회귀가 있어요. 회귀 중에 유일하게 분류하는 알고리즘은 로지스틱 회귀밖에 없으니까 기억을 좀 해주시고요. 결정 트리가 가장 유명하죠. 사실은 디시전 트리라고 해서 의사결정 트리가 분류 알고리즘 가장 기본적인 알고리즘이고요. 이걸 이용해서 저희가 앙상블 같은 것도 하죠. 나무가 하나인 건 트리라고 하지만 나무가 여러 그루 모인 건 앙상블 학습법이라고 해서 굉장히 여러 가지 기법이 있죠. 그리고 최근접법도 있고요. 그다음에 신경망 주어진 데이터에 대해서 저희가 분류 모델을 적용하면 반드시 한 가지 분류 모델만 나오지는 않고요. 굉장히 여러 가지 분류 알고리즘이 있어서 모델이 많이 나와요. 그럼 그런 분류 모델 중에 우리 데이터에 가장 적합하고 가장 정확도 있게 잘 분류해 주는 모델을 저희가 판별해 내야겠죠. 그럼 판별해 내는 기준이 되는 다시 말하면 분류 모델의 평가 기준이 되는 수치들이 좀 있습니다. 그 수치들이 다 어디서 나오냐면 혼동 행렬에서 나와요. 오차 행렬표라고 부르기도 하고요. 컨퓨전 매트릭스라고 합니다. 그래서 여기 보시면 컨퓨전 매트릭스가 크게 이제 네 가지 공간을 가지는데요. 네 가지 분할 영역을 가지는데 보시면 실제 값들이에요. 실제 값이 포지티브 하냐 네거티브 하냐에 따라서 또 예측한 게 저희가 이제 모델 보고 모델 가지고 저희가 분류 모델을 만들어 놓으면 새로운 데이터가 들어왔을 때 예측해야 되잖아요. 그래서 예측한 것이 포지티브이냐 네거티브이냐에 따라서 저희가 이제 네 가지 분명히 나오게 되는 거죠. 그래서 보시면 이게 크게 여러 가지 수치 중에 가장 분류 모델 할 때는 정말 중요한 수치가 혼동행렬에서 정확도 어큐러시가 나오는데요. 어큐러시가 가장 많이 쓰여요. 일단은 그래서 어큐러시란 뭐냐면 실제 값도 참인데 그 다음에 예측한 것도 참이야 그래서 포지티브 포지티브 양쪽이 다 포지티브 한 거 잘 맞춘 거죠 실제는 거짓인데 맞출 때도 예측했을 때도 거짓이었어요 잘 맞춘 거죠 그래서 TP와 TN 같은 경우 잘 맞춘 거니까 전체 분에 TP하고 TN이 올라간 것들이 정확한 예측수가 되는 거니까 요걸 바로 어큐러시라고 하는 거예요 맞는 걸 맞는다 그러고 틀린 걸 틀리다 그러는 거를 요거를 저희가 합한 거를 정확도라고 말하는 거고요 정확도가 높다면 아무래도 분류 모델의 평가 지표가 굉장히 좋은 게 되는 거죠. 정확도 가장 높으면 1이 되겠죠. 정확히 100% 맞추는 거고요. 거의 그런 거는 분류 모델에서 아주 쉬운 데이터는 그럴 수 있지만 좀 어렵고 복잡한 실무 데이터는 분류의 정확도가 100이 되긴 쉽지 않아요. 다시 말해 1이 되긴 쉽지 않죠. 그래서 되도록 높은 모델을 선택할 때 그때 기준이 된다고 생각하시면 좋겠습니다. 두 번째 기준이 혼동행렬에서 또 나오는데요. 재현율, 민감도에요. 실제 데이터가 트루인 것 중에 실제 데이터가 트루인 것 중에 진짜 트루라고 예측한 거예요. 특히 의사들이 저희가 암 환자를 진단해서 암이에요 라고 진단한 확률에서는 재현율이 좋아야 된다 또 민감도가 좋아야 된다는 얘기가 재현율 민감도 같은 얘기고요. 실제 데이터가 참인 것 중에 실제 데이터가 참인 것 중에 예측한 것도 잘한 거죠. 예측을 암이라고 잘해줬어요. 그래서 이게 높아야 이제 좋은 의사인 거죠. 암을 잘 진단하는 좋은 의사가 되는 거죠. 이런 것들을 저희가 리콜 내지는 민감도라고 얘기합니다. 또 한 가지 지표가 정밀도인데요. 프리시전은 모델이 트루라고 예측한 것 중에 진짜예요 아까는 실제 값이었고요 지금은 모델이 트루라고 예측한 것 중에 실제로 트루인 비율을 말하는 거고 이게 정밀도라는 얘기죠 여러 번 저희가 시도해 봐서 정밀도가 높다면 좋은 모델이 되기 때문에 프리시전도 나오는데 정밀도와 재현율은 트레이드오프 관계, 상충 관계가 있어요. 하나가 높으면 하나가 낮고요. 둘 다 좋을 수가 없다는 게 상충 관계, 트레이드오프 관계라고 얘기를 했었죠. 조화평균을 찾은 것입니다. 정밀도와 재현율의 조화평균을 만들어낸 것입니다. 분모는 더하고 위에는 이만큼 곱해서 다 곱해주시면 조화평균이 됩니다. 보통은 수치를 볼 때 정확도를 1번 보는 것 같아요. 어큐러시를 먼저 보고 기초 문법부터 데이터 마이닝 실습까지 모델이 거짓이라고 예측한 것 중에 실제로 거짓인 비율이거든요. 그래서 이 특이도를 가지고 저희가 뭐를 만들 수 있냐면 ROC 곡선을 만들 수가 있어요. 그래서 ROC 곡선은 저희가 말하는 그 진짜 양성 비율이 바로 민감도를 얘기하는 리콜이고요. 가짜 양성 비율이 1-특이도. 아까 실제 포지티브인데 진짜 트루를 하고 잘못 예측한 비율이거든요. 그래서 1-특이도 이렇게 해서 두 개를 가로, 세로로 만든 다음에 가짜 양성 비율, 진짜 양성 비율이니까 실제로 이 벽에 가깝다는 얘기는 뭐냐면 우리가 말하는 여기 있는 True, 진짜 양성 비율 민감도가 높아야 잘 예측하는 거니까요. 좋은 예측률을 볼 수가 있고 ROC를 보는 게 아니고요. ROC는 곡선이에요. 곡선을 보는 거고 실제는 뭐를 보고 평가하는 거냐면 AUC라 그래서 ROC 밑에 있는 면적 있죠. 에어리어 언더 커브라 그래서 이 밑에 있는 면적이 넓으면 넓을수록 좋은 모델이라 볼 수가 있어요 여기서 보시면 이제 중간 지점에 대각선을 만들어 놨는데 이렇게 되는 거 아래 면적은 50% 겠죠 그러니까 분류기를 만들었는데 반은 맞고 반은 틀리다 그러면 좋은 모델이 절대 아니죠 절도는 기준이 기준 이것보다 높아야 되는 거죠 저희도 찍어도 뭐 둘 중에 하나 이런 거지만 그런 거 말고 50% 보다 높아야 되니까 예를 들면 A는 요만큼 올라갔고 B는 여기 있다 그러면 A 면적이 훨씬 더 넓을 수가 많죠 면적이 그래서 A가 더 좋은 모델이에요 라고 이렇게 할 수 있는 부분이라고 생각하시면 되겠습니다 A가 B가 C가 이렇게 모델을 평가하고 모델을 좋은 모델을 평가할 때 저희가 쓰는 기준이 바로 AUC예요 ROC 자체가 중요한 게 아니고 AUC가 중요합니다 ROC 밑에 곡선 밑에 면적이고요 그러면 뭐가 가장 좋냐 AUC가 면적 1, 전체가 다 차지하는, 벽을 타고 올라가는 이게 바로 뭐가 됩니까? 저희가 말하는 AUC 면적 1에 가까울수록 좋은 모델이라고 볼 수 있는 평가 기준이 되는 거죠.
