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

Nhiều lần lặp lại của âm thanh

Trong bài tập này, bạn sẽ bắt đầu với kỹ thuật phân loại có lẽ đơn giản nhất: lấy trung bình theo các chiều của một tập dữ liệu và quan sát trực quan kết quả.

Bạn sẽ dùng dữ liệu nhịp tim được mô tả ở chương trước. Một số bản ghi là hoạt động nhịp tim bình thường, trong khi số khác là hoạt động bất thường. Hãy xem bạn có thể nhận ra sự khác biệt hay không.

Hai DataFrame, normalabnormal, mỗi cái có dạng (n_times_points, n_audio_files) chứa âm thanh của nhiều nhịp tim, đã có trong không gian làm việc của bạn. Ngoài ra, tần số lấy mẫu đã được nạp vào biến sfreq. Một hàm vẽ tiện dụng show_plot_and_make_titles() cũng có sẵn trong không gian làm việc của bạn.

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

  • Đầu tiên, tạo mảng thời gian cho các tệp âm thanh này (tất cả có cùng độ dài).
  • Sau đó, xếp chồng giá trị của hai DataFrame lại với nhau (normalabnormal, theo thứ tự đó) để bạn có một mảng duy nhất có dạng (n_audio_files, n_times_points).
  • Cuối cùng, dùng đoạn mã đã cung cấp để lặp qua từng phần tử danh sách/trục và vẽ tín hiệu âm thanh theo thời gian trên đối tượng trục tương ứng.
  • Bạn sẽ vẽ nhịp tim bình thường ở cột bên trái và nhịp tim bất thường ở cột bên phải

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.

fig, axs = plt.subplots(3, 2, figsize=(15, 7), sharex=True, sharey=True)

# Calculate the time array
time = np.arange(____) / ____

# Stack the normal/abnormal audio so you can loop and plot
stacked_audio = np.hstack([____, ____]).T

# Loop through each audio file / ax object and plot
# .T.ravel() transposes the array, then unravels it into a 1-D vector for looping
for iaudio, ax in zip(stacked_audio, axs.T.ravel()):
    ax.plot(time, iaudio)
show_plot_and_make_titles()
Chỉnh sửa và Chạy Mã