레플리
글 수 126

리얼월드 머신러닝

조회 수 294 추천 수 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
제목 글쓴이 날짜sort 조회 수
오토노미 제2의 이동 혁명 file 깊은바다 2020-02-23 219
다양한 봇빌더를 이용한 똑똑한 챗봇 만들기 file 깊은바다 2020-01-21 339
자연어 처리와 컴퓨터 언어학 file 깊은바다 2019-12-30 534
한국어 임베딩 file 깊은바다 2019-12-11 583
에이트 - 인공지능에게 대체되지 않는 나를 만드는 법 file 깊은바다 2019-12-10 261
안녕, 인간 file 깊은바다 2019-11-10 287
머신러닝 실무 프로젝트 file 깊은바다 2019-10-18 919
음성 사용자 인터페이스 디자인 file 깊은바다 2019-09-29 223
알파고를 분석하며 배우는 인공지능 file 깊은바다 2019-09-22 348
보이스봇 챗봇 디자인 file 깊은바다 2019-09-13 333
밑바닥부터 시작하는 딥러닝 2 file [2] 깊은바다 2019-09-07 499
영어학습을 위한 인공지능 챗봇 활용 및 제작 file 깊은바다 2019-08-12 336
파이썬을 이용한 머신러닝, 딥러닝 실전 앱 개발 file [2] 깊은바다 2019-08-12 577
만화로 쉽게 배우는 회귀분석 file 깊은바다 2019-08-05 419
인공지능을 위한 수학 file 깊은바다 2019-07-29 768