hold-out-validation 은 중요한 데이터가 train:valid 가 7:3이라면 중요한 데이터가 3에만 있어서 제대로 학습되지 못하거나 모든 데이터가 학습에 사용되지도 않습니다. 그래서 모든 데이터가 학습과 검증에 사용하기 위해 cross validation을 합니다.
cross validation은 속도가 오래걸린다는 단점이 있기도 하지만 validation의 결과에 대한 신뢰가 중요할 때 사용합니다. 예를 들어 사람의 생명을 다루는 암여부를 예측하는 모델을 만든다거나 하면 좀 더 신뢰가 있게 검증을 해야겠죠.
hold-out-validation 은 한번만 나눠서 학습하고 검증하기 때문에 빠르다는 장점이 있습니다. 하지만 신뢰가 떨어지는 단점이 있습니다. hold-out-validation 은 당장 비즈니스에 적용해야 하는 문제에 빠르게 검증해보고 적용해 보기에 좋습니다.
cross validation 이 너무 오래 걸린다면 조각의 수를 줄이면 좀 더 빠르게 결과를 볼 수 있고 신뢰가 중요하다면 조각의 수를 좀 더 여러 개 만들어 보면 됩니다.
타이타닉 데이터는 이미 답이 공개가 되어있기 때문에 치팅(답을 베껴서 제출)이 많습니다.
피처엔지니어링을 많이 하면 많이 할 수록 점수가 올라갈 것 같지만 내려갈 때가 더 많을 수도 있습니다.
점수를 올리고 내리는데 너무 집중하기 보다는 일단은 다양한 방법을 시도해 보는 것을 추천합니다.
다양한 사례를 탐색해 보는 것을 추천합니다.
팀을 꾸릴 때는 도메인 전문가, 프로그래머, 데이터 사이언티스트, 데이터 엔지니어 등으로 팀을 꾸립니다.
점수를 올리기 위해서는 EDA를 꼼꼼하게 하고 우리가 예측하고자 하는 정답이 어떤 피처에서 어떻게 다른 점이 있는지 특이한 점은 없는지 탐색해 보는게 중요합니다.
경진대회 이름에 demand 가 들어가면 대부분 수요예측 문제입니다
결측치가 있어 보일때 만약 상관이 커보인다면 결측치를 전처리 해줄 수도 있겠죠. 큰 상관이 있어보이지는 않습니다. 습도에 상관없이 자전거 대여량이 많습니다.
MAE
MSE
RMSE
파이(π)도 숫자만 보면 3.14159... 처럼 그냥 보면 아무 의미없어 보이는 숫자지만 사실은 원의 둘레, 넓이 등을 계산할때 도움을 주는 것 처럼,
자연상수 (e)는 자연의 연속 성장을 표현하기 위해 고안된 상수입니다.
100%의 성장률을 가지고 1회 연속 성장할 때에 얻게되는 성장량을 의미합니다.
로그를 취하기 전에 모든 값에 1을 더해서 가장 작은 값이 될 수 있는 0이 1이 되도록 더해주는 이유는 마이너스 값이 나왔는데 MSE를 계산한다면 어떻게 될까요?
-> 의도치 않은 큰 오차가 나올 수 있기 때문에 가장 작은 값이 될 수 있는 0에 1을 더해서 마이너스 값이 나오지 않게 합니다.
train 의 최솟값은 1이지만 test 의 예측값이 0이 나올 수도 있기 때문입니다.
예를 들어서
실제값: 90, 예측값: 100 일 때
RMSE = 10
RMSLE = 0.1042610...
실제값: 9,000, 예측값: 10,000 일 때
RMSE = 1,000
RMSLE = 0.1053494...
RMSLE의 한계는 상대적 에러를 측정하기 때문에
예를 들자면 1억원 vs 100억원의 에러가 0원 vs 99원의 에러와 같다 라고 나올 수 있습니다.
그리고 RMSLE는 실제값보다 예측값이 클떄보다, 실제값보다 예측값이 더 작을 때 (Under Estimation) 더 큰 패널티를 부여합니다.
배달 시간을 예측할때 예측 시간이 20분이었는데 실제로는 30분이 걸렸다면 고객이 화를 낼 수도 있을겁니다. 이런 조건과 같은 상황일 때 RMSLE를 적용할 수 있을 것입니다.
1) 2억원짜리 집을 4억으로 예측
2) 100억원짜리 집을 110억원으로 예측
Absolute Error 절대값의 차이로 보면 1) 2억 차이 2) 10억 차이
Squared Error 제곱의 차이로 보면 1) 4억차이 2) 100억차이
Squared Error 에 root 를 취하면 absolute error 하고 비슷해 집니다.
비율 오류로 봤을 때 1)은 2배 잘못 예측, 2)10% 잘못 예측