Neo4j結合機器學習 預測金融詐欺

如何以 Neo4j 關聯圖形資料開啟反詐欺策略?
Neo4j結合機器學習 預測金融詐欺
文章目錄

Machine Learning — 詐欺犯預測

此章節會利用GDS 提供的Machine learning 工具,來預測客戶為詐欺犯的機率。

以下步驟為處理流程:

  1. 為一些客戶標記是否為詐欺犯
  2. 增加更多properties作為features (feature-engineering)
  3. 使用 FastRP 作為node embedding
  4. Train and Test Model
  5. Make prediction

1. 標籤是否為詐欺犯

在做機器學習時,我們必須給電腦一些有Label的數據去學習,但因為PaySim並沒有為客戶標示是否為詐欺犯,因此我們假設如果客戶有參與10筆以上詐騙交易,就有很大的概率為詐欺犯,我們把這些客戶標示為詐欺犯。並且把上一章節中我們找出的嫌疑詐欺犯標示為詐欺犯

另一方面,我們使用Lovain 算法為客戶分群,如果這個客戶群集裡有前面標示的詐欺犯比率小於0.065,把這些客戶標示為無辜者(非詐欺犯)

標籤是否為詐欺犯
Calculate Fraud fraction

2. 增加更多的Features

使用GDS裡的Degree、Page Rank、Triangle Count來為節點增加更多的features。
增加更多的Features
Add more features

3. 使用FastRP作為node embedding

使用GDS裡的FastRP 進行節點向量化,把節點跟節點之間的關聯向量化加入節點特徵中。

Node Embedding(節點嵌入)算法計算圖中節點的低維向量表示。這些向量,也被稱為嵌入,可用於機器學習。

快速隨機投影(Fast Random Projection, or FastRP)是隨機投影算法族中的一種節點嵌入算法。可以將n個任意維數的向量投影到O(log(n))維數中,並且仍然地保持節點之間的成對距離。

更多訊息參考:Fast Random Projection — Neo4j Graph Data Science

使用FastRP作為node embedding
FastRP embedding

4. Train and Test Model

這個步驟為創建我們的預測Model並且訓練這個Model,隨後測試Model準確度。
Train and Test Model
Create Model
Train and Test Model
Train and Test Model

5. Make Prediction

這個步驟,標籤前面我們沒標籤的Client,用剛剛訓練好的模型來預測這些Client是否為詐欺犯的機率。
預測這些Client是否為詐欺犯的機率
Label the data we want to predictions on
預測這些Client是否為詐欺犯的機率
Make the prediction and write to the database
預測這些Client是否為詐欺犯的機率
Possible Fraudster
預測這些Client是否為詐欺犯的機率
預測這些Client是否為詐欺犯的機率

第二部分總結:我們做了什麼?

綜上所述,我們使用GDS來建立模型與預測客戶是否為詐騙犯的機率的一些步驟:

  1. 建立部分客戶Label為詐欺犯或非詐欺犯,藉由使用Lovain算法來計算
  2. Feature Engineer (使用GDS裡的Degree、Page Rank、Triangle Count來為節點增加更多的features。)
  3. Node Embedding- FastRP算法
  4. Train and Test Model
  5. 利用訓練好的模型,預測圖中未標籤的客戶
使用Neo4j ML與平常我們做的ML主要差異為,我們能利用Neo4j裡的Graph Algorithm,像是中心性或是Node Embedding把圖裡面的特徵增加進我們的feature,簡單來說在特徵工程的過程中引入更多的基於圖的圖特徵,來增加模型的準確度。