결측치 처리

선형보간법을 활용한 무작위 대치법

선형 보간법 (Linear interpolation)

  • 두 점 사이의 직선을 따라 값을 추정하는 방식
# 라인스페이스
def linspace(df, missing_idx):
    candidates = np.concatenate([
        np.linspace(2.5, 30, 20),
        np.linspace(30, 90, 100),
        np.linspace(90, 100, 10)
    ])
    df_line = df.copy()
    best = np.random.choice(candidates, size=len(missing_idx), replace=True)
    df_line.loc[missing_idx,  '상대 습도'] = best
    return df_line

정규분포 특성을 이용한 결측값 추정

def normal(df, missing_idx):
    candidate = np.random.normal(loc= 66.161889, scale= 21.146626, size=len(missing_idx)* 10)
    candidate = np.clip(candidate, 2.5, 100) # 상대습도 min : 2.5, max: 100 # 상대습도 min : 2.5, max: 100
    best = np.random.choice(candidate, size=len(missing_idx), replace=True)
    df_normal = df.copy()
    df_normal.loc[missing_idx, '상대 습도'] = best
    return df_normal

MAPE?

mean_absolute_percentage_error
링크텍스트

0개의 댓글