Kayıp fonksiyonları Bölüm I

Python'da Machine Learning İş Akışları Tasarlama

Dr. Chris Anagnostopoulos

Honorary Associate Professor

KDD '99 cup veri kümesi

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
Python'da Machine Learning İş Akışları Tasarlama

Yanlış pozitifler ve yanlış negatifler

Etiketi ikileştirin:

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

Gaussian Naive Bayes sınıflandırıcıyı eğitin:

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

Python'da Machine Learning İş Akışları Tasarlama

Yanlış pozitifler ve yanlış negatifler

Etiketi ikileştirin:

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

Gaussian Naive Bayes sınıflandırıcıyı eğitin:

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

Etiket ile tahminin dört olası durumu vardır: ikisi de True, ikisi de False, etiket True iken tahmin False ve etiket False iken tahmin True. Son kombinasyon burada vurgulanmıştır.

Python'da Machine Learning İş Akışları Tasarlama

Yanlış pozitifler ve yanlış negatifler

Etiketi ikileştirin:

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

Gaussian Naive Bayes sınıflandırıcıyı eğitin:

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

Şimdi, etiket True iken tahminin False olduğu kombinasyon vurgulanmıştır.

Python'da Machine Learning İş Akışları Tasarlama

Yanlış pozitifler ve yanlış negatifler

Etiketi ikileştirin:

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

Gaussian Naive Bayes sınıflandırıcıyı eğitin:

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

Tahminin etiketlerle uyuştuğu iki durum şimdi vurgulanmıştır.

Python'da Machine Learning İş Akışları Tasarlama

Karışıklık matrisi

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

Bu veri kümesi için sözünü ettiğimiz dört kombinasyonun her biri için vaka sayılarını gösteren bir karışıklık matrisi.

Python'da Machine Learning İş Akışları Tasarlama

Skaler performans metrikleri

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)
Python'da Machine Learning İş Akışları Tasarlama

Yanlış pozitifler ve yanlış negatifler

Sınıflandırıcı A:

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

Sınıflandırıcı B:

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

cost = 10 * fp + fn
26
Python'da Machine Learning İş Akışları Tasarlama

Hangi sınıflandırıcı daha iyi?

Python'da Machine Learning İş Akışları Tasarlama

Preparing Video For Download...