НачатьНачать бесплатно

Многократные повторения звуков

В этом упражнении вы начнёте с одного из самых простых методов классификации: усреднения по измерениям набора данных и визуального анализа результата.

Вы будете работать с данными сердцебиения, описанными в предыдущей главе. Часть записей отражает нормальную активность сердечного ритма, другие — аномальную. Попробуйте найти различия.

В вашем рабочем пространстве доступны два DataFrame — normal и abnormal — каждый с формой (n_times_points, n_audio_files), содержащие аудиозаписи нескольких ударов сердца. Кроме того, частота дискретизации загружена в переменную sfreq, а вспомогательная функция построения графиков show_plot_and_make_titles() также доступна в вашем рабочем пространстве.

Это упражнение является частью курса

Машинное обучение для данных временных рядов на Python

Посмотреть курс

Инструкции к упражнению

  • Сначала создайте массив времени для этих аудиофайлов (все записи имеют одинаковую длину).
  • Затем объедините значения двух DataFrame (normal и abnormal, именно в таком порядке), чтобы получить единый массив формы (n_audio_files, n_times_points).
  • Наконец, используйте предоставленный код для перебора каждого элемента списка / оси и постройте график аудиосигнала по времени в соответствующем объекте оси.
  • Нормальные сердечные ритмы отображайте в левом столбце, аномальные — в правом.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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()
Редактировать и запускать код