1장. 머신러닝 프로세스와 기본 개념
용어 짚고 가기
머신러닝(machine learning)사람이 규칙을 적는 대신, 데이터에서 규칙을 찾도록 컴퓨터를 학습시키는 방법입니다. machine learning 은 "기계가 배운다"는 뜻입니다.지도학습(supervised learning)정답이 붙은 데이터로 배우는 방식입니다. 이 장의 실습이 모두 지도학습입니다. supervised 는 "감독을 받는"이라는 뜻으로, 정답이 선생님처럼 배움을 이끈다는 데서 왔습니다.비지도학습(unsupervised learning)정답 없이 데이터끼리의 닮은 점만으로 무리를 짓거나 구조를 찾는 방식입니다. unsupervised 는 "감독 없는"이라는 뜻입니다.배송 지연(delivery delay)주문한 물건이 약속한 날보다 늦게 도착한 것입니다. 이 장의 배송 데이터에서는지연열에 1(늦음)과 0(정시)으로 적혀 있고, 모델이 맞히려는 답입니다. delay 는 "늦어짐"이라는 뜻입니다.분류(classification)정해진 몇 가지 답 가운데 하나를 고르는 문제입니다. "이 주문은 늦게 올까, 제때 올까(지연인가, 정시인가)"가 분류입니다. classification 은 class(갈래)로 나눈다는 뜻입니다.회귀(regression)숫자 하나를 맞히는 문제입니다. "며칠 걸릴까"가 회귀입니다. regression 은 "되돌아감"이라는 뜻으로, 부모와 자식의 키를 견주다 자식의 키가 평균 쪽으로 되돌아가는 현상을 연구한 데서 붙은 이름입니다.특성(feature)모델에 넣는 입력 열입니다. 거리, 날씨, 주문시각 같은 것입니다. 피처라고도 하고, 코드에서는 보통X에 담습니다. feature 는 "생김새, 특징"이라는 뜻입니다.레이블(label)모델이 맞혀야 하는 정답 열입니다. 이 장에서는 늦게 왔는지를 1과 0으로 적은지연열이고, 코드에서는 보통y에 담습니다. label 은 "꼬리표"라는 뜻입니다.정답 누출(leakage)예측할 때는 알 수 없는 정보가 특성에 섞여 들어가 점수가 부풀려지는 실수입니다. leakage 는 "새어 나감"이라는 뜻입니다.모델(model)데이터에서 찾은 규칙을 담고 있는 계산식입니다. model 은 "본보기, 작게 본뜬 모형"이라는 뜻입니다.학습(training)모델이 데이터를 보고 규칙을 찾는 과정입니다. scikit-learn 에서는fit입니다. train 은 "훈련하다", fit 은 "맞추다"라는 뜻으로, 모델을 데이터에 맞춘다는 말입니다.예측(prediction)학습한 모델로 새 데이터의 답을 내는 일입니다. scikit-learn 에서는predict입니다. predict 는 pre(미리)와 dict(말하다)가 붙은 말입니다.학습용 데이터(training data)모델이 보고 배우는 데이터입니다. training 은 "훈련"이라는 뜻입니다.검증용 데이터(validation data)모델의 설정을 고를 때 쓰는 데이터입니다. 시험용과 따로 둡니다. validation 은 "타당한지 확인하기"라는 뜻입니다.시험용 데이터(test data)학습에 쓰지 않고 남겨 두었다가 마지막에 성적을 매기는 데이터입니다. test 는 "시험"이라는 뜻입니다.과적합(overfitting)학습용 데이터를 외워 버려서 처음 보는 데이터에서는 성적이 떨어지는 상태입니다. over(지나치게)와 fitting(맞추기)을 붙인 말입니다.의사결정나무(decision tree)"거리가 먼가?", "비가 오나?" 같은 예·아니요 질문을 차례로 이어 가며 답을 내는 모델입니다. 질문이 갈라지는 모양이 나무를 닮아 붙은 이름입니다. decision 은 "결정", tree 는 "나무"라는 뜻입니다.기준선(baseline)아무것도 배우지 않은 단순한 답의 성적입니다. 모델은 이보다 나아야 쓸모가 있습니다. baseline 은 견줄 때 바탕이 되는 "기준 선"이라는 뜻입니다.혼동행렬(confusion matrix)실제 답과 예측을 2×2 표로 엇갈려 센 것입니다. confusion 은 "헷갈림", matrix 는 "행렬(가로세로로 늘어놓은 표)"이라는 뜻으로, 모델이 무엇을 무엇과 헷갈렸는지 보여 준다는 데서 왔습니다.정확도(accuracy)전체 가운데 맞힌 비율입니다. accuracy 는 "정확함"이라는 뜻입니다.정밀도(precision)모델이 "늦게 온다"고 예측한 주문 가운데 실제로 늦은 주문의 비율입니다. 헛경보가 적을수록 높습니다. precision 은 "정밀함, 꼼꼼함"이라는 뜻입니다.재현율(recall)실제로 늦은 주문 가운데 모델이 "늦게 온다"고 미리 잡아낸 비율입니다. 늦는 주문을 빠짐없이 찾을수록, 곧 놓친 것이 적을수록 높습니다. recall 은 "다시 불러내다"라는 뜻으로, 찾아야 할 것을 얼마나 불러냈는지를 말합니다.F1 점수(F1 score)정밀도와 재현율을 하나로 묶은 점수입니다. 둘의 조화평균이라, 둘 가운데 낮은 쪽에 더 끌려갑니다. 1 은 정밀도와 재현율에 같은 무게를 둔다는 뜻입니다.기준값(threshold)모델이 낸 "늦을 확률"이 몇 이상이면 늦는다(지연)고 볼지 정하는 선입니다. 임곗값이라고도 합니다. threshold 는 "문턱"이라는 뜻입니다.MAE(Mean Absolute Error)평균 절대 오차입니다. Mean(평균), Absolute(절댓값), Error(오차)의 머리글자입니다. 빗나간 크기(오차의 절댓값)를 평균 낸 값으로, 예측이 평균 얼마나 빗나가는지를 정답과 같은 단위로 알려 줍니다.RMSE(Root Mean Squared Error)평균 제곱근 오차입니다. Root(제곱근), Mean(평균), Squared(제곱한), Error(오차)의 머리글자입니다. 오차를 제곱해 평균 낸 뒤 제곱근을 씌운 값으로, 크게 빗나간 것을 더 무겁게 봅니다.scikit-learn파이썬의 대표적인 머신러닝 라이브러리입니다. 불러올 때 이름은sklearn입니다. SciPy 에 덧붙이는 도구 모음(SciPy Toolkit, 줄여서 scikit)에 learn(배우다)을 붙인 이름입니다.