Dịch chuyển dữ liệu

Thiết kế quy trình Machine Learning bằng Python

Dr. Chris Anagnostopoulos

Honorary Associate Professor

Dịch chuyển dữ liệu là gì?

Dataset elec:

  • Dữ liệu 2 năm.
  • class=1 là giá tăng so với 24 giờ trước, 0 là giảm.
   day    period  nswprice  ...    vicdemand  transfer  class
0    2  0.000000  0.056443  ...     0.422915  0.414912      1
1    2  0.553191  0.042482  ...     0.422915  0.414912      0
2    2  0.574468  0.044374  ...     0.422915  0.414912      1

[3 rows x 8 columns]
Thiết kế quy trình Machine Learning bằng Python

Cụ thể “dịch chuyển” là gì?

Hai lớp trong không gian 2 chiều, ngăn bởi biên quyết định cong.

Thiết kế quy trình Machine Learning bằng Python

Cụ thể “dịch chuyển” là gì?

Hai lớp trong 2 chiều với biên quyết định cong; bên cạnh là ảnh có vị trí lớp tương tự nhưng biên quyết định khác dạng.

Thiết kế quy trình Machine Learning bằng Python

Cửa sổ

Cửa sổ trượt

window = (t_now-window_size+1):t_now
sliding_window = elec.loc[window]

Dataset chỉ tô đậm các điểm dữ liệu gần đây.

Cửa sổ mở rộng

window = 0:t_now
expanding_window = elec.loc[window]

Một dataset hiển thị trên terminal.

Thiết kế quy trình Machine Learning bằng Python

Phát hiện dịch chuyển dữ liệu

# t_now = 40000, window_size = 20000
clf_full = RandomForestClassifier().fit(X, y)
clf_sliding = RandomForestClassifier().fit(sliding_X, sliding_y)
# Dùng dữ liệu tương lai làm test
test = elec.loc[t_now:elec.shape[0]]
test_X = test.drop('class', 1); test_y = test['class']
roc_auc_score(test_y, clf_full.predict(test_X))
roc_auc_score(test_y, clf_sliding.predict(test_X))
0.775
0.780
Thiết kế quy trình Machine Learning bằng Python

Kích thước cửa sổ

for w_size in range(10, 100, 10):
    sliding = arrh.loc[
      (t_now - w_size + 1):t_now
    ]
    X = sliding.drop('class', 1)
    y = sliding['class']
    clf = GaussianNB()
    clf.fit(X, y)
    preds = clf.predict(test_X)
    roc_auc_score(test_y, preds)

Đồ thị AUC theo kích thước cửa sổ tăng đến cực đại 0,83 tại cửa sổ 50 rồi giảm.

Thiết kế quy trình Machine Learning bằng Python

Dịch chuyển miền (domain)

Dataset arrhythmia:

   age  sex  height  ...    chV6_TwaveAmp  chV6_QRSA  chV6_QRSTA  class
0   75    0     190  ...              2.9       23.3        49.4      0
1   56    1     165  ...              2.1       20.4        38.8      0
2   54    0     172  ...              3.4       12.3        49.0      0
3   55    0     175  ...              2.6       34.6        61.6      1
4   75    0     190  ...              3.9       25.4        62.8      0

[5 rows x 280 columns]
Thiết kế quy trình Machine Learning bằng Python

Nhiều dữ liệu không phải lúc nào cũng tốt hơn!

Thiết kế quy trình Machine Learning bằng Python

Preparing Video For Download...