[TIL] 22.11.10

문종현·2022년 11월 10일
0

TIL

목록 보기
36/119
post-custom-banner

👉 오늘 한 일

  • 위클리 키워드 정리
  • 8주차 과제 : diamonds EDA 연습

위클리 키워드 : 평가지표 비교

RMSE와 비교해서 RMSLE가 가진 장점

1. 아웃라이어에 강건해진다.

RMSLE는 아웃라이어에 강건(Robust)하다.

예를 들어, 예측값 = 67, 78, 91, 실제값 = 60, 80, 90일 때, RMSE = 4.242, RMSLE = 0.6466으로 나온다.

예측값 = 67, 78, 91, 102, 실제값 = 60, 80, 90, 750일 때 RMSE = 374.724, RMSLE = 1.160으로 나온다. 750이라는 아웃라이어 때문에 RMSE는 굉장히 증가했지만 RMSLE의 증가는 미미하며, RMSLE는 아웃라이어가 있더라도 값의 변동폭이 크지 않다. 따라서 RMSLE는 아웃라이어에 강건하다고 말할 수 있다.

2. 상대적 Error를 측정해준다.

예측값과 실제값에 로그를 취해주면 로그 공식에 의해 아래와 같이 상대적 비율을 구할 수 있다.

https://k.kakaocdn.net/dn/barO61/btqz4V5zWAb/YxSVBnnZeTlNAlsmNCvGi1/img.png

예측값 = 100, 실제값 = 90일 때, RMSLE = 0.1053, RMSE = 10이고, 예측값 = 10,000, 실제값 = 9,000일 때, RMSLE = 0.1053, RMSE = 1,000이다.

위와 같이 값의 절대적 크기가 변하더라도 상대적 크기가 동일하다면 RMSLE 값도 동일하다. 반면, 상대적 크기가 동일하더라도 절대적 크기가 변하면 RMSE 값은 변한다. 따라서 RMSE와 달리 RMSLE는 예측값과 실제값의 상대적 Error를 측정해준다.

3. Under Estimation에 큰 패널티를 부여한다.

RMSLE는 Over Estimation보다 Under Estimation에 더 큰 패널티를 부여하게 된다. 즉, 예측값이 실제값보다 클 때보다 예측값이 실제값보다 작을 때 더 큰 패널티를 부여한다.

예측값 = 600, 실제값 = 1,000일 때 RMSE = 400, RMSLE = 0.510이고

예측값 = 1,400, 실제값 = 1,000일 때 RMSE = 400, RMSLE = 0.33이다.

예측값과 실제값의 차이는 둘 다 400이다. Over Estimation이든 Under Estimation이든 RMSE값은 동일하다. 하지만 RMSLE는 Under Estimation일 때 (즉, 예측값이 실제값보다 작을 때) 더 높은 페널티가 주어진다. 예를 들어, 배달 음식을 시킬 때 30분이 걸린다고 했는데 실제로 20분이 걸리는 건 큰 문제가 되지 않지만, 30분이 걸린다고 했는데 40분이 걸리면 고객이 컴플레인을 할 가능성이 높다. 이럴 때 RMSLE를 적용할 수 있다.

diamonds EDA

이런 방식으로 열마다 다르게 정렬 가능

  • df.sort_values(["carat", "depth"], ascending=[False, True]).head(5)

새로운 컬럼 만들기

df.loc[df["price"] < 900, "category"] = "low"
df.loc[df["price"] > 5000, "category"] = "high"
df["category"] = df["category"].fillna("medium")

plotly 복습

marginal_ 파라미터로 여러 그래프 겹치기 가능

  • px.scatter(df, x="carat", y="price", color="color", marginal_x="box", marginal_y="violin")

facet_col 파라미터로 컬럼에 따른 서브플롯 생성

  • px.histogram(df, x="color", color="cut", facet_col="cut")

histfunc 파라미터로 컬럼의 산술식 지정 가능

  • px.histogram(df, x="cut", y="price", histfunc="avg")

Kaggle House Price 필사

타겟변수 분석 -> 피처 엔지니어링의 흐름

  • 타겟 변수가 오른쪽으로 꼬리가 김(right skewed)
  • 정규분포 형태로 만들어주어야 회귀 모델 학습에 유리
profile
자라나라 새싹새싹🌱
post-custom-banner

0개의 댓글