自然命中率
在這個練習中,你會再次使用信用卡交易資料。特徵與標籤與上一章相似,而這份資料高度不平衡。我們已經提供了可用的特徵 X 與標籤 y,兩者都是 NumPy 陣列。
首先,你需要先瞭解詐欺在資料集中的比例,進而推算如果把所有案例都預測為非詐欺時的「自然準確率」。理解這個基準很重要,因為你需要知道要「超越」哪個「準確率」門檻,才能比什麼都不做更好。在接下來的練習中,你將建立第一個用於詐欺偵測的隨機森林分類器。它會作為你接下來要持續改進的「基準」模型。
本練習屬於課程
Fraud Detection in Python
練習說明
- 透過取得標籤
y的長度來計算觀測值的總數。 - 使用
y的串列生成式來計算資料中的非詐欺案例;請記得y是 NumPy 陣列,因此此處不能使用.value_counts()。 - 以非詐欺案例數除以觀測值總數,計算自然準確率。
- 印出百分比。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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
____(____)