Repetări multiple ale sunetelor
În acest exercițiu, vei începe cu una dintre cele mai simple tehnici de clasificare: calcularea mediei pe dimensiunile unui set de date și inspecția vizuală a rezultatelor.
Vei folosi datele despre bătăile inimii descrise în capitolul anterior. Unele înregistrări reprezintă activitate cardiacă normală, iar altele reprezintă activitate anormală. Hai să vedem dacă poți identifica diferența.
În spațiul de lucru ai disponibile două DataFrame-uri, normal și abnormal, fiecare cu forma (n_times_points, n_audio_files), care conțin înregistrările audio ale mai multor bătăi de inimă. De asemenea, frecvența de eșantionare este stocată într-o variabilă numită sfreq. O funcție auxiliară de vizualizare, show_plot_and_make_titles(), este și ea disponibilă în spațiul de lucru.
Acest exercițiu face parte din cursul
Machine Learning pentru Date de Tip Șir de Timp în Python
Instrucțiuni pentru exercițiu
- Mai întâi, creează matricea de timp pentru aceste fișiere audio (toate au aceeași lungime).
- Apoi, combină valorile celor două DataFrame-uri (
normalșiabnormal, în această ordine), astfel încât să obții un singur array cu forma(n_audio_files, n_times_points). - În final, folosește codul furnizat pentru a parcurge fiecare element din listă / axă și a reprezenta grafic semnalul audio în funcție de timp pe axa corespunzătoare.
- Bătăile normale vor fi reprezentate în coloana din stânga, iar cele anormale în coloana din dreapta.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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()