Veel herhalingen van geluiden
In deze oefening begin je met misschien wel de eenvoudigste classificatietechniek: middelen over dimensies van een gegevensset en het resultaat visueel bekijken.
Je gebruikt de hartslagdata uit het vorige hoofdstuk. Sommige opnames bevatten normale hartslagactiviteit, andere abnormale activiteit. Eens kijken of je het verschil kunt zien.
Twee DataFrames, normal en abnormal, elk met de vorm (n_times_points, n_audio_files) en met het audio van meerdere hartslagen, zijn beschikbaar in je werkruimte. Ook is de bemonsteringsfrequentie geladen in een variabele sfreq. Een handige plotfunctie show_plot_and_make_titles() is ook beschikbaar in je werkruimte.
Deze oefening maakt deel uit van de cursus
Machine Learning voor tijdreeksgegevens in Python
Oefeninstructies
- Maak eerst de tijdarray voor deze audiobestanden (alle audio's hebben dezelfde lengte).
- Stapel daarna de waarden van de twee DataFrames (
normalenabnormal, in die volgorde) zodat je één array krijgt met de vorm(n_audio_files, n_times_points). - Gebruik tot slot de gegeven code om door elk lijstitem/as te loopen en het audiosignaal in de bijbehorende as over de tijd te plotten.
- Je plott normale hartslagen in de linkerkolom en abnormale in de rechterkolom
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
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()