首頁 » (三) Neo4j 結合機器學習 預測金融詐欺
- 作者 | 洪堂瑋 Tangwei Hung
Neo4j結合機器學習 預測金融詐欺
文章目錄
Machine Learning — 詐欺犯預測
此章節會利用GDS 提供的Machine learning 工具,來預測客戶為詐欺犯的機率。
以下步驟為處理流程:
- 為一些客戶標記是否為詐欺犯
- 增加更多properties作為features (feature-engineering)
- 使用 FastRP 作為node embedding
- Train and Test Model
- Make prediction
1. 標籤是否為詐欺犯
在做機器學習時,我們必須給電腦一些有Label的數據去學習,但因為PaySim並沒有為客戶標示是否為詐欺犯,因此我們假設如果客戶有參與10筆以上詐騙交易,就有很大的概率為詐欺犯,我們把這些客戶標示為詐欺犯。並且把上一章節中我們找出的嫌疑詐欺犯標示為詐欺犯。
另一方面,我們使用Lovain 算法為客戶分群,如果這個客戶群集裡有前面標示的詐欺犯比率小於0.065,把這些客戶標示為無辜者(非詐欺犯)
2. 增加更多的Features
使用GDS裡的Degree、Page Rank、Triangle Count來為節點增加更多的features。
3. 使用FastRP作為node embedding
使用GDS裡的FastRP 進行節點向量化,把節點跟節點之間的關聯向量化加入節點特徵中。
Node Embedding(節點嵌入)算法計算圖中節點的低維向量表示。這些向量,也被稱為嵌入,可用於機器學習。
快速隨機投影(Fast Random Projection, or FastRP)是隨機投影算法族中的一種節點嵌入算法。可以將n個任意維數的向量投影到O(log(n))維數中,並且仍然地保持節點之間的成對距離。
4. Train and Test Model
這個步驟為創建我們的預測Model並且訓練這個Model,隨後測試Model準確度。
5. Make Prediction
這個步驟,標籤前面我們沒標籤的Client,用剛剛訓練好的模型來預測這些Client是否為詐欺犯的機率。
第二部分總結:我們做了什麼?
綜上所述,我們使用GDS來建立模型與預測客戶是否為詐騙犯的機率的一些步驟:
- 建立部分客戶Label為詐欺犯或非詐欺犯,藉由使用Lovain算法來計算
- Feature Engineer (使用GDS裡的Degree、Page Rank、Triangle Count來為節點增加更多的features。)
- Node Embedding- FastRP算法
- Train and Test Model
- 利用訓練好的模型,預測圖中未標籤的客戶
使用Neo4j ML與平常我們做的ML主要差異為,我們能利用Neo4j裡的Graph Algorithm,像是中心性或是Node Embedding把圖裡面的特徵增加進我們的feature,簡單來說在特徵工程的過程中引入更多的基於圖的圖特徵,來增加模型的準確度。