Классификация и разработка признаков

Машинное обучение для данных временных рядов на Python

Chris Holdgraf

Fellow, Berkeley Institute for Data Science

Всегда визуализируйте исходные данные перед обучением моделей

Машинное обучение для данных временных рядов на Python

Визуализируйте данные временного ряда!

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

Машинное обучение для данных временных рядов на Python

Какие признаки использовать?

  • Необработанные данные временного ряда слишком зашумлены для классификации
  • Необходимо рассчитать признаки!
  • Простой способ: суммируйте аудиоданные
Машинное обучение для данных временных рядов на Python

Машинное обучение для данных временных рядов на Python

Вычисление нескольких признаков

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,) 
Машинное обучение для данных временных рядов на Python

Обучение классификатора с помощью scikit-learn

  • Мы свернули двумерный набор данных (образцы × время) в несколько признаков одномерного набора (образцы)
  • Признаки можно объединить и использовать как входные данные для модели
  • Если каждый образец имеет метку, scikit-learn позволяет создать и обучить классификатор
Машинное обучение для данных временных рядов на Python

Подготовка признаков для 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)
Машинное обучение для данных временных рядов на Python

Оценка модели scikit-learn

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)  
Машинное обучение для данных временных рядов на Python

Давайте потренируемся!

Машинное обучение для данных временных рядов на Python

Preparing Video For Download...