1. Nauka
  2. /
  3. Kursy
  4. /
  5. Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Connected

ćwiczenie

Łącząc wszystko razem

Oprócz potoku wykrywania anomalii opartego na uczeniu przez podobieństwo, który utworzyłeś w poprzednim ćwiczeniu, chcesz dodać obsługę podejścia opartego na cechach – z użyciem jednoklasowej SVM. Postanawiasz wyekstrahować dwie cechy: długość ciągu znaków oraz numeryczne kodowanie pierwszej litery ciągu, uzyskane za pomocą funkcji LabelEncoder() opisanej w rozdziale 1. Aby zapewnić uczciwe porównanie, wyniki oceny anomalii przekażesz do obliczenia AUC. Zaimportowano już: LabelEncoder(), roc_auc_score() jako auc() oraz OneClassSVM. Dane są dostępne jako ramka danych pandas o nazwie proteins, zawierająca dwie kolumny – label i seq – oraz dwie klasy: IMMUNE SYSTEM i VIRUS. Dopasowany detektor LoF jest dostępny jako lof_detector.

Instrukcje

100 XP
  • Dla ciągu znaków s, len(s) zwraca jego długość. Zastosuj tę funkcję do kolumny seq, aby utworzyć nową kolumnę len.
  • Dla ciągu znaków s, list(s) zwraca listę jego znaków. Skorzystaj z tego, aby wyodrębnić pierwszą literę każdej sekwencji, a następnie zakoduj ją za pomocą LabelEncoder().
  • Wyniki LoF znajdują się w atrybucie negative_outlier_factor_. Oblicz ich AUC.
  • Dopasuj jednoklasową SVM do ramki danych zawierającej tylko kolumny len i first. Wyodrębnij wyniki i oceń zarówno wyniki LoF, jak i wyniki SVM za pomocą AUC.