Hàm mất mát Phần I

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

Dr. Chris Anagnostopoulos

Honorary Associate Professor

Bộ dữ liệu KDD '99 cup

kdd.iloc[0]
kdd.iloc[0]
duration                         51
protocol_type                   tcp
service                        smtp
flag                             SF
src_bytes                      1169
dst_bytes                       332
land                              0
...
dst_host_rerror_rate              0
dst_host_srv_rerror_rate          0
label                          good
Thiết kế quy trình Machine Learning bằng Python

Dương tính giả vs âm tính giả

Nhị phân hóa nhãn:

kdd['label'] = kdd['label'] == 'bad'

Huấn luyện Gaussian Naive Bayes:

clf = GaussianNB().fit(X_train, y_train)
predictions = clf.predict(X_test)
results = pd.DataFrame({
    'actual': y_test,
    'predicted': predictions
})

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

Dương tính giả vs âm tính giả

Nhị phân hóa nhãn:

kdd['label'] = kdd['label'] == 'bad'

Huấn luyện Gaussian Naive Bayes:

clf = GaussianNB().fit(X_train, y_train)
predictions = clf.predict(X_test)
results = pd.DataFrame({
    'actual': y_test,
    'predicted': predictions
})

Có bốn cấu hình nhãn so với dự đoán: cả hai Đúng, cả hai Sai, nhãn Đúng nhưng dự đoán Sai, và nhãn Sai nhưng dự đoán Đúng. Tổ hợp sau cùng được tô sáng.

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

Dương tính giả vs âm tính giả

Nhị phân hóa nhãn:

kdd['label'] = kdd['label'] == 'bad'

Huấn luyện Gaussian Naive Bayes:

clf = GaussianNB().fit(X_train, y_train)
predictions = clf.predict(X_test)
results = pd.DataFrame({
    'actual': y_test,
    'predicted': predictions
})

Giờ đây, tổ hợp nhãn Đúng và dự đoán Sai được tô sáng.

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

Dương tính giả vs âm tính giả

Nhị phân hóa nhãn:

kdd['label'] = kdd['label'] == 'bad'

Huấn luyện Gaussian Naive Bayes:

clf = GaussianNB().fit(X_train, y_train)
predictions = clf.predict(X_test)
results = pd.DataFrame({
    'actual': y_test,
    'predicted': predictions
})

Hai trường hợp dự đoán trùng với nhãn được tô sáng.

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

Ma trận nhầm lẫn

conf_mat = confusion_matrix(
    ground_truth, predictions)
array([[9477,   19],
       [ 397, 2458]])
tn, fp, fn, tp = conf_mat.ravel()
(fp, fn)
(19, 397)

Ma trận nhầm lẫn, đếm số trường hợp cho bốn tổ hợp đã nêu trên với bộ dữ liệu này.

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

Chỉ số hiệu năng vô hướng

accuracy = 1-(fp + fn)/len(ground_truth)

recall = tp/(tp+fn)
fpr = fp/(tn+fp)
precision = tp/(tp+fp)
f1 = 2*(precision*recall)/(precision+recall)
accuracy_score(ground_truth, predictions)
recall_score(ground_truth, predictions)
precision_score(ground_truth, predictions)
f1_score(ground_truth, predictions)
Thiết kế quy trình Machine Learning bằng Python

Dương tính giả vs âm tính giả

Bộ phân loại A:

tn, fp, fn, tp = confusion_matrix(
    ground_truth, predictions_A).ravel()
(fp,fn)
(3, 3)
cost = 10 * fp + fn
33

Bộ phân loại B:

tn, fp, fn, tp = confusion_matrix(
    ground_truth, predictions_B).ravel()
(fp,fn)
(0, 26)

cost = 10 * fp + fn
26
Thiết kế quy trình Machine Learning bằng Python

Bộ phân loại nào tốt hơn?

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

Preparing Video For Download...