課程導論與動機

R 的詐欺偵測

Bart Baesens

Professor Data Science at KU Leuven

授課講師

picture_Bart.png

R 的詐欺偵測

授課講師

picture_BartTim.png

R 的詐欺偵測

授課講師

picture_BartTimSebastiaan.png

R 的詐欺偵測

什麼是詐欺?

詐欺是種不常見、深思熟慮、難以察覺、會隨時間演變,且常經過縝密組織的犯罪,形式多樣。

wolf_in_sheeps_clothing

R 的詐欺偵測

詐欺的影響

  • 詐欺很少見,但漏抓的代價極高!
  • 例:
    • 組織每年約有 5% 營收因詐欺流失
    • 企業每年因詐欺損失金額 > $3.5 trillion
    • 信用卡公司因詐欺每筆 $100 交易約損失 $0.07
    • 非壽險理賠中,詐欺約占 5–10%
R 的詐欺偵測

詐欺類型

  • 防制洗錢
  • 支票詐欺
  • 信用卡詐欺
  • 關務/報關詐欺
  • 仿冒品
  • 身分盜用
  • 保險詐欺
  • 房貸詐欺
  • 未交貨詐欺
  • 線上詐欺
  • 產品保固詐欺
  • 逃漏稅
  • 電信詐欺
  • 存貨竊盜
  • 票券詐欺
  • 交通運輸詐欺
  • 電匯詐欺
  • 勞工補償詐欺
R 的詐欺偵測

成功詐欺分析模型的關鍵特性

  • 統計準確度

robinhood

R 的詐欺偵測

成功詐欺分析模型的關鍵特性

  • 統計準確度
  • 可解釋性

minorityreport

R 的詐欺偵測

成功詐欺分析模型的關鍵特性

  • 統計準確度
  • 可解釋性
  • 合規性

regulatory

R 的詐欺偵測

成功詐欺分析模型的關鍵特性

  • 統計準確度
  • 可解釋性
  • 合規性
  • 經濟影響

dagobert

R 的詐欺偵測

成功詐欺分析模型的關鍵特性

  • 統計準確度
  • 可解釋性
  • 合規性
  • 經濟成本
  • 以資料驅動技術補強專家方法

manmachine

R 的詐欺偵測

詐欺偵測模型的挑戰

  • 類別不平衡
    • 例:信用卡詐欺通常 < 0.5%

haystack

R 的詐欺偵測

詐欺偵測模型的挑戰

  • 類別不平衡
    • 例:信用卡詐欺通常 < 0.5%
  • 營運效率
    • 例:信用卡決策時間 < 8 秒

flash

R 的詐欺偵測

詐欺偵測模型的挑戰

  • 類別不平衡
    • 例:信用卡詐欺通常 < 0.5%
  • 營運效率
    • 例:信用卡決策時間 < 8 秒
  • 避免干擾優良客戶

goodcustomer

R 的詐欺偵測

不平衡資料

  • 重大風暴後,某保險公司收到大量理賠申請。

    • 詐欺理賠標記為 1,合法理賠為 0。
  • 可用下列函式計算資料中的詐欺比例:

    • table()prop.table()
  • prop.table(table(...)) 求詐欺的比例

prop.table(table(fraud_label))
     0      1
0.9911 0.0089
R 的詐欺偵測

用圓餅圖呈現不平衡

labels <- c("no fraud", "fraud")
labels <- paste(labels, round(100 * prop.table(table(fraud_label)), 2), "%")
pie(table(fraud_label), labels, col = c("blue", "red"),
      main = "Pie chart of storm claims")

stormclaims

R 的詐欺偵測

混淆矩陣

用於評估詐欺偵測模型:

confusionmatrix

R 的詐欺偵測
  • 假設未使用任何偵測模型,所有申請皆視為合法:
predictions <- rep.int(0, times = nrow(claims))
predictions <- factor(predictions, levels = c("no fraud", "fraud"))
  • 套件 caretconfusionMatrix() 函式:
library(caret)
confusionMatrix(data = predictions, reference = fraud_label)
             Reference
 Prediction    0   1
            0 614  14
            1   0   0                                   
 Accuracy : 0.9777
R 的詐欺偵測

未偵測詐欺的總成本:理賠案例

  • 詐欺總成本定義為所有詐欺金額之和。
  • 若未偵測到任何詐欺,總成本為:
    > total_cost <- sum(claim_amount[fraud_label == "fraud"])
    > print(total_cost)
    
2301508
R 的詐欺偵測

一起來練習吧!

R 的詐欺偵測

Preparing Video For Download...