Phân loại và trích xuất đặc trưng

Machine Learning cho Dữ liệu Chuỗi thời gian bằng Python

Chris Holdgraf

Fellow, Berkeley Institute for Data Science

Luôn trực quan hóa dữ liệu thô trước khi huấn luyện mô hình

Machine Learning cho Dữ liệu Chuỗi thời gian bằng Python

Trực quan hóa dữ liệu chuỗi thời gian!

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

Machine Learning cho Dữ liệu Chuỗi thời gian bằng Python

Dùng đặc trưng nào?

  • Dùng dữ liệu chuỗi thời gian thô quá nhiễu để phân loại
  • Cần tính các đặc trưng!
  • Bắt đầu đơn giản: tóm tắt dữ liệu âm thanh
Machine Learning cho Dữ liệu Chuỗi thời gian bằng Python

Machine Learning cho Dữ liệu Chuỗi thời gian bằng Python

Tính nhiều đặc trưng

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,) 
Machine Learning cho Dữ liệu Chuỗi thời gian bằng Python

Huấn luyện bộ phân loại với scikit-learn

  • Vừa thu gọn bộ dữ liệu 2D (mẫu x thời gian) thành vài đặc trưng của bộ dữ liệu 1D (mẫu)
  • Có thể kết hợp các đặc trưng và dùng làm đầu vào cho mô hình
  • Nếu có nhãn cho từng mẫu, bạn có thể dùng scikit-learn để tạo và huấn luyện bộ phân loại
Machine Learning cho Dữ liệu Chuỗi thời gian bằng Python

Chuẩn bị đặc trưng cho 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)
Machine Learning cho Dữ liệu Chuỗi thời gian bằng Python

Chấm điểm mô hình scikit-learn của bạn

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)  
Machine Learning cho Dữ liệu Chuỗi thời gian bằng Python

Cùng luyện tập nào!

Machine Learning cho Dữ liệu Chuỗi thời gian bằng Python

Preparing Video For Download...