導數型特徵:tempogram
清理資料的一個好處,是能讓你計算更進階的特徵。比方說,你先前做的包絡線(envelope)計算,就是在萃取速度(tempo)與節奏(rhythm)特徵時常用的技巧。這個練習中,你會用 librosa 來為心跳聲資料計算一些速度與節奏特徵,並再次訓練一個模型。
請注意,librosa 的函式通常只對 numpy 陣列運作,而不是對 DataFrame。因此我們會用 .values 屬性,將 Pandas 的資料以 Numpy 陣列的形式存取。
本練習屬於課程
Python 的時間序列資料機器學習
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Calculate the tempo of the sounds
tempos = []
for col, i_audio in audio.items():
tempos.append(lr.beat.____(y=i_audio.values, sr=sfreq, hop_length=2**10))
# Convert the list to an array so you can manipulate it more easily
tempos = np.array(tempos)
# Calculate statistics of each tempo
tempos_mean = tempos.____(axis=-1)
tempos_std = tempos.____(axis=-1)
tempos_max = tempos.____(axis=-1)