시작하기무료로 시작하기

이상치 처리

이번 연습 문제에서는 이상치(나머지 데이터와 너무 달라서 다른 "정상적인" 데이터와는 다르게 다뤄야 하는 데이터 포인트)를 처리해 보겠어요. 이전 연습 문제의 결과(시간에 따른 백분율 변화)를 사용해 이상치를 탐지합니다. 먼저 전체 시계열의 중앙값으로 이상치 데이터를 대체하는 함수를 작성하세요.

이 연습은 강의의 일부입니다

Python으로 배우는 시계열 데이터 Machine Learning

강의 보기

연습 안내

  • 입력 시리즈를 받아 다음을 수행하는 함수를 정의하세요:
    • 각 데이터 포인트가 시리즈 평균으로부터 떨어진 거리를 절댓값으로 계산한 뒤, 평균에서 표준편차의 세 배 이상 떨어진 데이터 포인트에 대한 불리언 마스크를 생성하세요.
    • 이 불리언 마스크를 사용해 이상치를 전체 시리즈의 중앙값으로 대체하세요.
  • 이 함수를 데이터에 적용하고, 제공된 코드를 사용해 결과를 시각화하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

def replace_outliers(series):
    # Calculate the absolute difference of each timepoint from the series mean
    absolute_differences_from_mean = np.abs(series - np.mean(series))
    
    # Calculate a mask for the differences that are > 3 standard deviations from zero
    this_mask = absolute_differences_from_mean > (np.____(series) * ____)
    
    # Replace these values with the median accross the data
    series[this_mask] = np.____(series)
    return series

# Apply your preprocessing function to the timeseries and plot the results
prices_perc = prices_perc.____
prices_perc.loc["2014":"2015"].plot()
plt.show()
코드 편집 및 실행