레플리
글 수 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
제목 글쓴이 날짜 조회 수
가장 빨리 만나는 챗봇 프로그래밍 with Bot Framework file 깊은바다 2018-12-24 294
케라스 창시자에게 배우는 딥러닝 file 깊은바다 2018-11-25 405
핸즈온 머신러닝 file 깊은바다 2018-11-08 536
리얼월드 머신러닝 file 깊은바다 2018-10-20 294
파이썬 자연어 처리의 이론과 실제 file 깊은바다 2018-10-09 479
의료 인공지능 file 깊은바다 2018-10-08 260
처음 배우는 딥러닝 수학 file 깊은바다 2018-09-25 603
이것이 우리에게 딱 맞는 딥러닝 with 텐서플로 file 깊은바다 2018-09-15 272
커넥톰, 뇌의 지도 file 깊은바다 2018-09-11 259
마이크로소프트 봇 프레임워크 프로그래밍 file 깊은바다 2018-09-03 244
트랜스휴머니즘 file 깊은바다 2018-08-22 117
아무것도 모르고 시작하는 인공지능 첫걸음 file 깊은바다 2018-08-16 319
스마트한 인공지능 챗봇 개발 file 깊은바다 2018-08-13 286
파이썬과 케라스를 이용한 딥러닝/강화학습 주식투자 file 깊은바다 2018-07-13 593
누구나 쉽게 배우는 챗봇 서비스 file [1] 깊은바다 2018-07-10 509