글 수 108

리얼월드 머신러닝

조회 수 216 추천 수 0 2018.10.20 14:13:30


161776926.jpg

 

http://www.yes24.com/24/Goods/53565521

 

 

 

보통 머신러닝 책은 학습 알고리즘의 원리나 구현 방법에 대해서 설명하는 것이 대부분입니다. 하지만 여기서는 전체적인 프로세스와 모델의 평가 방법에 주안점을 두는 편입니다. 또한 데이터에서 적합한 특성을 선택하고 하이퍼파라미터을 튜닝함으로써 성능을 높이는 방법을 자세히 다루고 있습니다. 이미 머신러닝 알고리즘을 알고있고 어느정도 구현을 할 수 있는 분들이 좀 더 실력을 높이는데 도움이 될 것 같습니다.

 

특히 실전 예제들을 통해 배운 내용을 적용하는 부분이 좋았습니다. 예를 들어, 뉴욕 택시 운행 데이터에는 승차/하차 시간 및 장소, 인원, 이동거리, 요금 등의 항목이 있습니다. 이를 사용하여 승객이 팁을 줄지 예측하는 모델을 만드는데, 한번에 끝나는게 아니라 특성을 정제하고 추가하면서 정확도를 높이는 방법을 단계적으로 보여줍니다.

 

 

 

그리고 모델을 평가하는데 많이 사용되는 ROC(Receiver Operating Characteristic) 곡선을 설명한 것도 유용했습니다. 이런 내용은 보통 다른 책에서는 자세히 다루지 않습니다.

 

True/False를 구별하는 바이너리 모델일 경우 민감도(sensitivity)와 특이도(specificity)를 측정합니다. 민감도는 실제로 True를 True로 판단하는, 특이도는 실제 False를 False로 판단하는 비율을 말합니다. 당연히 민감도와 특이도는 모두 높을 수록 좋습니다. 하지만 적용 문제에 따라서 어느쪽이 더 높아야 하는지 다를 수 있습니다.

 

예를 들어, 암환자를 판단하는 경우 민감도가 높아야 합니다. 정상인을 암이 있다고 잘못 예측을 해도 정밀 검사로 아니라는 것을 알 수 있어 큰 문제는 없습니다. 하지만 암이 있는 사람을 없다고 판단해버리면 환자의 생명이 매우 위험해질 수 있습니다. 반대로 스팸 메일의 경우 특이도가 높은게 좋습니다. 민감도가 높아 정상 메일을 스팸으로 판단해 삭제해 버리는 것보다, 스팸을 정상으로 분류하여 그냥 사람이 보고 지우는게 더 낫습니다.

 

ROC 커브는 모델에서 True/False를 판단하는 역치(threshold)를 0~1까지 조정하면서 모든 경우에 대해서 민감도와 특이도를 구합니다. 그리고 사진처럼 민감도와 1-특이도로 그래프를 그립니다. 곡선의 아래 부분을 AUC(Area Under Curve)라고 부르는데 이 면적이 클 수록 모델의 성능이 높다고 할 수 있습니다.

List of Articles
제목 글쓴이 날짜 조회 수
자연어 텍스트 처리를 통한 검색 시스템 구축 file 깊은바다 2019-06-30 197
만화로 쉽게 배우는 선형대수 file 깊은바다 2019-06-29 198
21세기를 위한 21가지 제언 file 깊은바다 2019-06-23 83
수학의 아름다움 - 자연어처리 알고리즘 file 깊은바다 2019-06-04 258
로봇 설계자 신시아 브리질 file 깊은바다 2019-05-26 116
머신러닝 비즈니스 - 애저 머신러닝 스튜디오 file 깊은바다 2019-04-30 144
자연어 처리 쿡북 with 파이썬 file 깊은바다 2019-04-15 276
PyTorch를 활용한 강화학습/심층강화학습 실전 입문 file 깊은바다 2019-03-17 316
텐서플로와 머신러닝으로 시작하는 자연어 처리 file 깊은바다 2019-02-28 413
대학에 가는 AI VS 교과서를 못 읽는 아이들 file 깊은바다 2019-02-28 198
머신러닝 탐구생활 file 깊은바다 2019-01-31 265
수학 없이 배우는 데이터 과학과 알고리즘 file 깊은바다 2019-01-10 222
가장 빨리 만나는 챗봇 프로그래밍 with Bot Framework file 깊은바다 2018-12-24 219
케라스 창시자에게 배우는 딥러닝 file 깊은바다 2018-11-25 292
핸즈온 머신러닝 file 깊은바다 2018-11-08 382