[Pyod] 신용카드거래 사기탐지

Author

신록예찬,김보람

Published

February 1, 2024

ref: https://pyod.readthedocs.io/en/latest/pyod.models.html#all-models

1. Imports

import pandas as pd
import numpy as np
import sklearn
import pickle 
import time 
import datetime
import warnings
warnings.filterwarnings('ignore')
%run functions.py
with open('fraudTrain.pkl', 'rb') as file:
    fraudTrain = pickle.load(file)    

pyod에 random_state 매개변수가 명시되어 있지 않다..? 클래스 작성해야 하는뎀..

2.

시도1(0.3 / 0.05)

pyod(*pyod_preprocess(fraudTrain, 0.3, 0.05))
model time acc pre rec f1 auc graph_based method throw_rate train_size train_cols train_frate test_size test_frate hyper_params
0 ABOD 0.743859 0.950050 0.000000 0.000000 0.000000 0.500000 False pyod 0.3 14014 [amt] 0.407164 6006 0.04995 None
1 COPOD 0.004163 0.749417 0.138138 0.766667 0.234097 0.757589 False pyod 0.3 14014 [amt] 0.407164 6006 0.04995 None
2 ECOD 0.003983 0.719447 0.116768 0.703333 0.200285 0.711814 False pyod 0.3 14014 [amt] 0.407164 6006 0.04995 None
3 GMM 0.081038 0.706294 0.093785 0.563333 0.160799 0.638572 False pyod 0.3 14014 [amt] 0.407164 6006 0.04995 None
4 HBOS 0.001769 0.949717 0.000000 0.000000 0.000000 0.499825 False pyod 0.3 14014 [amt] 0.407164 6006 0.04995 None
5 IForest 0.192958 0.824842 0.187188 0.750000 0.299601 0.789388 False pyod 0.3 14014 [amt] 0.407164 6006 0.04995 None
6 INNE 0.446902 0.663337 0.075862 0.513333 0.132189 0.592278 False pyod 0.3 14014 [amt] 0.407164 6006 0.04995 None
7 KDE 4.664011 0.845155 0.213115 0.780000 0.334764 0.814290 False pyod 0.3 14014 [amt] 0.407164 6006 0.04995 None
8 KNN 0.016148 0.816683 0.176755 0.730000 0.284600 0.775620 False pyod 0.3 14014 [amt] 0.407164 6006 0.04995 None
9 LODA 0.055909 0.949717 0.000000 0.000000 0.000000 0.499825 False pyod 0.3 14014 [amt] 0.407164 6006 0.04995 None
10 LOF 0.039346 0.511988 0.051483 0.503333 0.093412 0.507888 False pyod 0.3 14014 [amt] 0.407164 6006 0.04995 None
11 MAD 0.001590 0.961205 0.646288 0.493333 0.559546 0.739569 False pyod 0.3 14014 [amt] 0.407164 6006 0.04995 None
12 MCD 0.005407 0.847486 0.215867 0.780000 0.338150 0.815517 False pyod 0.3 14014 [amt] 0.407164 6006 0.04995 None
13 OCSVM 8.828208 0.808525 0.171561 0.740000 0.278545 0.776064 False pyod 0.3 14014 [amt] 0.407164 6006 0.04995 None
14 PCA 0.002485 0.454545 0.020619 0.213333 0.037603 0.340280 False pyod 0.3 14014 [amt] 0.407164 6006 0.04995 None
15 ROD 1.912571 0.583417 0.027062 0.210000 0.047945 0.406525 False pyod 0.3 14014 [amt] 0.407164 6006 0.04995 None

시도2(0.3 / 0.005)

pyod(*pyod_preprocess(fraudTrain, 0.3, 0.005))
model time acc pre rec f1 auc graph_based method throw_rate train_size train_cols train_frate test_size test_frate hyper_params
0 ABOD 0.790581 0.995005 0.000000 0.000000 0.000000 0.500000 False pyod 0.3 14014 [amt] 0.426431 6006 0.004995 None
1 COPOD 0.004297 0.722611 0.015976 0.900000 0.031395 0.810860 False pyod 0.3 14014 [amt] 0.426431 6006 0.004995 None
2 ECOD 0.004096 0.712121 0.013738 0.800000 0.027012 0.755840 False pyod 0.3 14014 [amt] 0.426431 6006 0.004995 None
3 GMM 0.081272 0.703130 0.010609 0.633333 0.020868 0.668407 False pyod 0.3 14014 [amt] 0.426431 6006 0.004995 None
4 HBOS 0.002180 0.994672 0.000000 0.000000 0.000000 0.499833 False pyod 0.3 14014 [amt] 0.426431 6006 0.004995 None
5 IForest 0.191778 0.831335 0.026037 0.900000 0.050609 0.865495 False pyod 0.3 14014 [amt] 0.426431 6006 0.004995 None
6 INNE 0.446586 0.739927 0.014575 0.766667 0.028607 0.753230 False pyod 0.3 14014 [amt] 0.426431 6006 0.004995 None
7 KDE 4.659985 0.835498 0.026680 0.900000 0.051823 0.867587 False pyod 0.3 14014 [amt] 0.426431 6006 0.004995 None
8 KNN 0.015647 0.805361 0.020219 0.800000 0.039441 0.802694 False pyod 0.3 14014 [amt] 0.426431 6006 0.004995 None
9 LODA 0.052696 0.994672 0.000000 0.000000 0.000000 0.499833 False pyod 0.3 14014 [amt] 0.426431 6006 0.004995 None
10 LOF 0.039103 0.494339 0.003632 0.366667 0.007192 0.430823 False pyod 0.3 14014 [amt] 0.426431 6006 0.004995 None
11 MAD 0.001591 0.984682 0.177083 0.566667 0.269841 0.776724 False pyod 0.3 14014 [amt] 0.426431 6006 0.004995 None
12 MCD 0.005513 0.835997 0.026759 0.900000 0.051973 0.867838 False pyod 0.3 14014 [amt] 0.426431 6006 0.004995 None
13 OCSVM 8.806761 0.776557 0.019062 0.866667 0.037303 0.821386 False pyod 0.3 14014 [amt] 0.426431 6006 0.004995 None
14 PCA 0.002498 0.419414 0.000866 0.100000 0.001718 0.260509 False pyod 0.3 14014 [amt] 0.426431 6006 0.004995 None
15 ROD 2.116950 0.561605 0.001150 0.100000 0.002274 0.331961 False pyod 0.3 14014 [amt] 0.426431 6006 0.004995 None

시도3(0.2 / 0.05)

pyod(*pyod_preprocess(fraudTrain, 0.2, 0.05))
model time acc pre rec f1 auc graph_based method throw_rate train_size train_cols train_frate test_size test_frate hyper_params
0 ABOD 1.089382 0.950050 0.000000 0.000000 0.000000 0.500000 False pyod 0.2 21021 [amt] 0.264307 9009 0.04995 None
1 COPOD 0.005572 0.855256 0.223803 0.768889 0.346693 0.814343 False pyod 0.2 21021 [amt] 0.264307 9009 0.04995 None
2 ECOD 0.005368 0.806971 0.151056 0.620000 0.242926 0.718401 False pyod 0.2 21021 [amt] 0.264307 9009 0.04995 None
3 GMM 0.060378 0.807193 0.136646 0.537778 0.217920 0.679568 False pyod 0.2 21021 [amt] 0.264307 9009 0.04995 None
4 HBOS 0.002657 0.949828 0.000000 0.000000 0.000000 0.499883 False pyod 0.2 21021 [amt] 0.264307 9009 0.04995 None
5 IForest 0.234232 0.902209 0.306726 0.760000 0.437061 0.834843 False pyod 0.2 21021 [amt] 0.264307 9009 0.04995 None
6 INNE 0.611838 0.872239 0.228084 0.653333 0.338125 0.768541 False pyod 0.2 21021 [amt] 0.264307 9009 0.04995 None
7 KDE 11.152488 0.905206 0.313653 0.755556 0.443286 0.834315 False pyod 0.2 21021 [amt] 0.264307 9009 0.04995 None
8 KNN 0.022491 0.894439 0.283865 0.731111 0.408950 0.817069 False pyod 0.2 21021 [amt] 0.264307 9009 0.04995 None
9 LODA 0.079147 0.949828 0.000000 0.000000 0.000000 0.499883 False pyod 0.2 21021 [amt] 0.264307 9009 0.04995 None
10 LOF 0.052867 0.662893 0.055040 0.355556 0.095323 0.517303 False pyod 0.2 21021 [amt] 0.264307 9009 0.04995 None
11 MAD 0.001746 0.963370 0.647783 0.584444 0.614486 0.783868 False pyod 0.2 21021 [amt] 0.264307 9009 0.04995 None
12 MCD 0.006672 0.908980 0.325142 0.764444 0.456233 0.840512 False pyod 0.2 21021 [amt] 0.264307 9009 0.04995 None
13 OCSVM 21.034422 0.905428 0.314233 0.755556 0.443864 0.834432 False pyod 0.2 21021 [amt] 0.264307 9009 0.04995 None
14 PCA 0.002800 0.667999 0.027520 0.164444 0.047149 0.429459 False pyod 0.2 21021 [amt] 0.264307 9009 0.04995 None
15 ROD 2.927619 0.688534 0.017609 0.095556 0.029737 0.407633 False pyod 0.2 21021 [amt] 0.264307 9009 0.04995 None

시도4(0.2 / 0.005)

pyod(*pyod_preprocess(fraudTrain, 0.2, 0.005))
model time acc pre rec f1 auc graph_based method throw_rate train_size train_cols train_frate test_size test_frate hyper_params
0 ABOD 1.117140 0.995005 0.000000 0.000000 0.000000 0.500000 False pyod 0.2 21021 [amt] 0.283574 9009 0.004995 None
1 COPOD 0.005460 0.837829 0.024194 0.800000 0.046967 0.819009 False pyod 0.2 21021 [amt] 0.283574 9009 0.004995 None
2 ECOD 0.005273 0.805639 0.016988 0.666667 0.033131 0.736502 False pyod 0.2 21021 [amt] 0.283574 9009 0.004995 None
3 GMM 0.084992 0.804973 0.013636 0.533333 0.026593 0.669835 False pyod 0.2 21021 [amt] 0.283574 9009 0.004995 None
4 HBOS 0.013717 0.994672 0.000000 0.000000 0.000000 0.499833 False pyod 0.2 21021 [amt] 0.283574 9009 0.004995 None
5 IForest 0.233216 0.908647 0.042353 0.800000 0.080447 0.854596 False pyod 0.2 21021 [amt] 0.283574 9009 0.004995 None
6 INNE 0.602069 0.869131 0.027500 0.733333 0.053012 0.801573 False pyod 0.2 21021 [amt] 0.283574 9009 0.004995 None
7 KDE 11.247169 0.903985 0.040359 0.800000 0.076841 0.852253 False pyod 0.2 21021 [amt] 0.283574 9009 0.004995 None
8 KNN 0.021748 0.893884 0.033777 0.733333 0.064579 0.814012 False pyod 0.2 21021 [amt] 0.283574 9009 0.004995 None
9 LODA 0.074052 0.994672 0.000000 0.000000 0.000000 0.499833 False pyod 0.2 21021 [amt] 0.283574 9009 0.004995 None
10 LOF 0.051361 0.660340 0.004926 0.333333 0.009709 0.497657 False pyod 0.2 21021 [amt] 0.283574 9009 0.004995 None
11 MAD 0.001771 0.981352 0.144509 0.555556 0.229358 0.769523 False pyod 0.2 21021 [amt] 0.283574 9009 0.004995 None
12 MCD 0.006396 0.908314 0.042204 0.800000 0.080178 0.854429 False pyod 0.2 21021 [amt] 0.283574 9009 0.004995 None
13 OCSVM 20.091513 0.902875 0.039911 0.800000 0.076030 0.851696 False pyod 0.2 21021 [amt] 0.283574 9009 0.004995 None
14 PCA 0.002813 0.669331 0.002037 0.133333 0.004012 0.402677 False pyod 0.2 21021 [amt] 0.283574 9009 0.004995 None
15 ROD 3.435893 0.744145 0.000442 0.022222 0.000867 0.384996 False pyod 0.2 21021 [amt] 0.283574 9009 0.004995 None

시도5(0.2 / 0.0005)

pyod(*pyod_preprocess(fraudTrain, 0.2, 0.0005))
model time acc pre rec f1 auc graph_based method throw_rate train_size train_cols train_frate test_size test_frate hyper_params
0 ABOD 1.130075 0.999556 0.000000 0.00 0.000000 0.500000 False pyod 0.2 21021 [amt] 0.285524 9009 0.000444 None
1 COPOD 0.005504 0.835942 0.002027 0.75 0.004043 0.792990 False pyod 0.2 21021 [amt] 0.285524 9009 0.000444 None
2 ECOD 0.005274 0.805528 0.001710 0.75 0.003413 0.777776 False pyod 0.2 21021 [amt] 0.285524 9009 0.000444 None
3 GMM 0.072600 0.804529 0.000569 0.25 0.001134 0.527388 False pyod 0.2 21021 [amt] 0.285524 9009 0.000444 None
4 HBOS 0.002512 0.999223 0.000000 0.00 0.000000 0.499833 False pyod 0.2 21021 [amt] 0.285524 9009 0.000444 None
5 IForest 0.237714 0.908314 0.003623 0.75 0.007212 0.829192 False pyod 0.2 21021 [amt] 0.285524 9009 0.000444 None
6 INNE 0.621015 0.879898 0.001848 0.50 0.003683 0.690033 False pyod 0.2 21021 [amt] 0.285524 9009 0.000444 None
7 KDE 11.243379 0.904096 0.003464 0.75 0.006897 0.827082 False pyod 0.2 21021 [amt] 0.285524 9009 0.000444 None
8 KNN 0.022136 0.894439 0.002103 0.50 0.004188 0.697307 False pyod 0.2 21021 [amt] 0.285524 9009 0.000444 None
9 LODA 0.230612 0.999223 0.000000 0.00 0.000000 0.499833 False pyod 0.2 21021 [amt] 0.285524 9009 0.000444 None
10 LOF 0.052098 0.661672 0.000984 0.75 0.001965 0.705816 False pyod 0.2 21021 [amt] 0.285524 9009 0.000444 None
11 MAD 0.001787 0.983128 0.013158 0.50 0.025641 0.741671 False pyod 0.2 21021 [amt] 0.285524 9009 0.000444 None
12 MCD 0.006591 0.908425 0.003628 0.75 0.007220 0.829248 False pyod 0.2 21021 [amt] 0.285524 9009 0.000444 None
13 OCSVM 20.487326 0.902431 0.003405 0.75 0.006780 0.826249 False pyod 0.2 21021 [amt] 0.285524 9009 0.000444 None
14 PCA 0.002772 0.671329 0.000000 0.00 0.000000 0.335813 False pyod 0.2 21021 [amt] 0.285524 9009 0.000444 None
15 ROD 2.726836 0.748363 0.000000 0.00 0.000000 0.374348 False pyod 0.2 21021 [amt] 0.285524 9009 0.000444 None