Naturalny współczynnik trafności
W tym ćwiczeniu ponownie skorzystasz z danych dotyczących transakcji kartą kredytową. Cechy i etykiety są podobne do tych z poprzedniego rozdziału, a zbiór danych jest silnie niezbalansowany. Masz już do dyspozycji cechy X oraz etykiety y – oba jako tablice NumPy.
Na początek sprawdź, jak częste są oszustwa w zbiorze danych. Pozwoli ci to zrozumieć, jaka jest "naturalna dokładność" – czyli taka, którą uzyskalibyśmy, gdybyśmy wszystkie transakcje klasyfikowali jako niezłudne. Ważne jest, żeby wiedzieć, jaki poziom dokładności trzeba "pobić", by uzyskać lepsze przewidywania niż przez bezczynność. W kolejnych ćwiczeniach stworzysz pierwszy klasyfikator lasu losowego do wykrywania oszustw. Będzie on służył jako model "bazowy", który postarasz się ulepszyć w następnych ćwiczeniach.
To ćwiczenie jest częścią kursu
Wykrywanie oszustw w Pythonie
Instrukcje do ćwiczenia
- Policz łączną liczbę obserwacji, obliczając długość tablicy etykiet
y. - Policz przypadki niezłudne w danych, używając wyrażenia listowego na
y; pamiętaj, żeyjest tablicą NumPy, więc.value_counts()nie jest tu dostępne. - Oblicz naturalną dokładność, dzieląc liczbę przypadków niezłudnych przez łączną liczbę obserwacji.
- Wydrukuj wynik w procentach.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Count the total number of observations from the length of y
total_obs = ____
# Count the total number of non-fraudulent observations
non_fraud = [i for ____ ____ ____ if i == 0]
count_non_fraud = non_fraud.count(0)
# Calculate the percentage of non fraud observations in the dataset
percentage = (float(____)/float(____)) * 100
# Print the percentage: this is our "natural accuracy" by doing nothing
____(____)