랜덤포레스트 안에 트리의 개수가 100개가 기본값이라면 그 내부에서도 트리를 100개를 만들기 때문에 디시전트리를 사용할 때보다 속도가 더 걸림
hold-out-validation 을 사용했을 때 중요한 데이터가 train:valid 가 7:3이라면 중요한 데이터가 3에만 있어서 제대로 학습되지 못하거나 모든 데이터가 학습에 사용되지도 않음. 그래서 모든 데이터가 학습과 검증에 사용하기 위해 cross validation을 하게 됨.
평가 기준 : RMSLE(Root Mean Squared Logarithmic Error)
데이터 필드 먼저 살펴보기
💡EDA
hist로 데이터의 분포를 먼저 살펴봄
scatterplot으로 예측변수와 다른 설명변수와의 상관을 확인할 수 있음
💡 RMSLE(Root Mean Squared Logarithmic Error)
log를 취할 때 1을 더하는 이유?
np.log(x+1)
== np.log1p(x)
np.log()
의 밑은 자연상수(e)임로그를 취하면 skewed 값이 덜 skewed하게 됨(조금 더 정규분포에 가까워지기도 함)
파이(π)도 숫자만 보면 3.14159... 처럼 그냥 보면 아무 의미없어 보이는 숫자지만 사실은 원의 둘레, 넓이 등을 계산할때 도움을 주는 것 처럼, 자연상수 (e)는 자연의 연속 성장을 표현하기 위해 고안된 상수임. 100%의 성장률을 가지고 1회 연속 성장할 때에 얻게되는 성장량을 의미함
RMSLE는 예측과 실제값의 "상대적" 에러를 측정
실제값: 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를 적용할 수 있을 것. 혹은 부동산 가격과 같이 최솟값과 최댓값의 차이가 큰 값에도 주로 사용됨.
RMSE와 RMSLE 차이
데이콘
-> 모델 학습에서 평가 데이터셋 활용하면 Data Leakage로 test로 인코딩을 하면 안됨