Biến đổi dữ liệu thô
Ở chương trước, bạn đã tính rolling mean. Trong bài tập này, bạn sẽ định nghĩa một hàm tính phần trăm thay đổi của điểm dữ liệu mới nhất so với trung bình của một cửa sổ các điểm dữ liệu trước đó. Hàm này sẽ giúp bạn tính phần trăm thay đổi trên một cửa sổ trượt.
Đây là một dạng chuỗi thời gian ổn định hơn và thường hữu ích trong Machine Learning.
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
Hướng dẫn bài tập
- Định nghĩa hàm
percent_changenhận vào một chuỗi thời gian và thực hiện:- Trích toàn bộ giá trị trừ giá trị cuối cùng của chuỗi đầu vào (gán cho
previous_values) và chỉ lấy giá trị cuối cùng của chuỗi thời gian (gán cholast_value). - Tính phần trăm chênh lệch giữa giá trị cuối cùng và trung bình của các giá trị trước đó.
- Trích toàn bộ giá trị trừ giá trị cuối cùng của chuỗi đầu vào (gán cho
- Dùng cửa sổ trượt kích thước 20, áp dụng hàm này cho
prices, và trực quan hóa 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.
# Your custom function
def percent_change(series):
# Collect all *but* the last value of this window, then the final value
previous_values = series[:____]
last_value = series[-1]
# Calculate the % difference between the last value and the mean of earlier values
percent_change = (____ - np.mean(previous_values)) / np.mean(previous_values)
return percent_change
# Apply your custom function and plot
prices_perc = prices.rolling(20).____
prices_perc.loc["2014":"2015"].plot()
plt.show()