Klassificering och funktionsextraktion

Maskininlärning för tidsseriedata i Python

Chris Holdgraf

Fellow, Berkeley Institute for Data Science

Visualisera alltid rådata innan du tränar modeller

Maskininlärning för tidsseriedata i Python

Visualisera din tidsseriedata!

ixs = np.arange(audio.shape[-1])
time = ixs / sfreq
fig, ax = plt.subplots()
ax.plot(time, audio)

Maskininlärning för tidsseriedata i Python

Vilka särdrag ska man använda?

  • Rå tidsseriedata innehåller för mycket brus för klassificering
  • Vi behöver beräkna särdrag!
  • En enkel start: sammanfatta din ljuddata
Maskininlärning för tidsseriedata i Python

Maskininlärning för tidsseriedata i Python

Beräkna flera särdrag

print(audio.shape)
# (n_files, time)
(20, 7000) 
means = np.mean(audio, axis=-1)
maxs = np.max(audio, axis=-1)
stds = np.std(audio, axis=-1)

print(means.shape)
# (n_files,)
(20,) 
Maskininlärning för tidsseriedata i Python

Träna en klassificerare med scikit-learn

  • Vi har komprimerat ett 2D-dataset (sampel × tid) till flera särdrag i ett 1D-dataset (sampel)
  • Särdragen kan kombineras och användas som indata till en modell
  • Om varje sampel har en etikett kan vi använda scikit-learn för att skapa och träna en klassificerare
Maskininlärning för tidsseriedata i Python

Förbered särdragen för scikit-learn

# Import a linear classifier
from sklearn.svm import LinearSVC

# Note that means are reshaped to work with scikit-learn
X = np.column_stack([means, maxs, stds])
y = labels.reshape(-1, 1)
model = LinearSVC()
model.fit(X, y)
Maskininlärning för tidsseriedata i Python

Utvärdera din scikit-learn-modell

from sklearn.metrics import accuracy_score

# Different input data
predictions = model.predict(X_test)  

# Score our model with % correct
# Manually
percent_score = sum(predictions == labels_test) / len(labels_test)  
# Using a sklearn scorer
percent_score = accuracy_score(labels_test, predictions)  
Maskininlärning för tidsseriedata i Python

Nu kör vi en övning!

Maskininlärning för tidsseriedata i Python

Preparing Video For Download...