Joonas' Note
Joonas' Note
Loss 또는 모델 output이 NaN인 경우 확인해볼 것 본문
Numeric Error
결과값이나 학습 도중에 log(x)를 씌우면 NaN으로 가는 경우. 즉, x가 음수가 나오는 경우가 있는 지?
log1p 등으로 해결할 수도 있지만 계산 과정에서 음수가 나오지 않는지 수식을 다시 확인한다.
Learning rate
learning rate가 커서 gradient discent 단계에서 아예 튕겨져 나갔을수도 있다.
데이터셋에 NaN이 섞인 경우
왜인지 모르겠는데 종종 pandas에서 fillna()가 먹히지 않는 경우가 있었다.
아래 스크립트로 N/A, NaN 등의 값이 있는 지 확인한다.
def get_na_df(df):
na_df = df.isna().sum()
na_cols = na_df[na_df > 0].index
return df[df.isna().any(axis=1)][na_cols]
채우는 방법은 여러 가지가 있는데, fillna()가 계속 안 먹혀서 ffill(), bfill()을 써서 억지로 채웠다. (좋은 방법은 아니라고 생각)
ffill(): 빈 데이터 값을 앞쪽의 데이터로 채우고, bfill()은 뒤쪽의 데이터로 채운다.
df = df.ffill().bfill()
참고
'AI' 카테고리의 다른 글
[강화학습 메모] Proximal Policy Optimization (PPO, 2017) (0) | 2023.03.11 |
---|---|
[강화학습 메모] A3C (Asynchronous A2C, 2016) (0) | 2023.03.10 |
[강화학습 일지] DQN Tutorial 살펴보기 (0) | 2023.01.13 |
[부동산 가격 예측] LightGBM에서 DNN Regression으로 (0) | 2022.04.21 |
[PyTorch] Tensor, NumPy, Pandas 타입 표 (0) | 2022.04.19 |
Comments