Bắt đầu ngayBắt đầu miễn phí

Xử lý giá trị ngoại lai

Trong bài này, bạn sẽ xử lý các giá trị ngoại lai — những điểm dữ liệu khác biệt quá mức so với phần còn lại, nên cần được xử lý khác với các điểm dữ liệu "trông có vẻ bình thường". Bạn sẽ dùng đầu ra từ bài trước (tỷ lệ phần trăm thay đổi theo thời gian) để phát hiện ngoại lai. Trước tiên, bạn sẽ viết một hàm thay thế các điểm dữ liệu ngoại lai bằng giá trị trung vị của toàn bộ chuỗi thời gian.

Bài tập này là một phần của khóa học

Machine Learning cho Dữ liệu Chuỗi thời gian bằng Python

Xem khóa học

Hướng dẫn bài tập

  • Định nghĩa một hàm nhận vào một series và thực hiện:
    • Tính khoảng cách trị tuyệt đối từ mỗi điểm dữ liệu tới giá trị trung bình của series, rồi tạo một mặt nạ boolean cho các điểm nằm cách trung bình ba lần độ lệch chuẩn.
    • Dùng mặt nạ boolean này để thay thế các giá trị ngoại lai bằng trung vị của toàn bộ series.
  • Áp dụng hàm này lên dữ liệu của bạn và trực quan hóa kết quả bằng đoạn mã đã cho.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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()
Chỉnh sửa và Chạy Mã