Många upprepningar av ljud
I den här övningen börjar du med kanske den enklaste klassificeringstekniken: att beräkna medelvärdet över dimensioner i en datamängd och visuellt undersöka resultatet.
Du kommer att använda hjärtljudsdata som beskrevs i det föregående kapitlet. Vissa inspelningar är normala hjärtljud, medan andra är onormala. Kan du se skillnaden?
Två DataFrames, normal och abnormal, vardera med formen (n_times_points, n_audio_files), innehåller ljuddata för flera hjärtslag och finns tillgängliga i din arbetsyta. Samplingsfrekvensen är även laddad i variabeln sfreq. En hjälpfunktion för visualisering, show_plot_and_make_titles(), finns också tillgänglig i din arbetsyta.
Den här övningen är en del av kursen
Maskininlärning för tidsseriedata i Python
Övningsinstruktioner
- Skapa först tidsarrayen för dessa ljudfiler (alla filer har samma längd).
- Stapla sedan värdena från de två DataFrames (
normalochabnormal, i den ordningen) så att du får en enda array med formen(n_audio_files, n_times_points). - Använd slutligen den angivna koden för att loopa igenom varje listobjekt/axel och plotta ljudet över tid i motsvarande axelobjekt.
- Normala hjärtljud plottas i den vänstra kolumnen och onormala i den högra kolumnen.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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()