Naturlig träffsäkerhet
I den här övningen arbetar du återigen med kreditkortstransaktionsdata. Särdragen och etiketterna liknar data från föregående kapitel, och datamängden är kraftigt obalanserad. Du har redan tillgång till särdragen X och etiketterna y, som båda är NumPy-arrayer.
Först behöver du undersöka hur vanlig bedrägeriet är i datamängden, för att förstå vad den "naturliga noggrannheten" är – det vill säga om vi skulle förutsäga allt som icke-bedrägeri. Det är viktigt att förstå vilken nivå av "noggrannhet" du behöver "slå" för att uppnå en bättre förutsägelse än att inte göra något alls. I de följande övningarna skapar du din första slumpskogsklassificerare för bedrägeridetektering. Den kommer att fungera som den "baslinjemodell" som du sedan försöker förbättra i kommande övningar.
Den här övningen är en del av kursen
Bedrägeridetektering i Python
Övningsinstruktioner
- Räkna det totala antalet observationer genom att ta längden på dina etiketter
y. - Räkna antalet icke-bedrägerfall i datan med hjälp av listomfattning på
y. Observera attyär en NumPy-array, så.value_counts()kan inte användas här. - Beräkna den naturliga noggrannheten genom att dividera antalet icke-bedrägerfall med det totala antalet observationer.
- Skriv ut procentandelen.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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
____(____)