行业案例 | 数据分析在银行业运用于之欺诈检测
时间:2025-02-27 12:26:23
8 V9 5050 non-null float64
9 V10 5050 non-null float64
10 V11 5050 non-null float64
11 V12 5050 non-null float64
12 V13 5050 non-null float64
13 V14 5050 non-null float64
14 V15 5050 non-null float64
15 V16 5050 non-null float64
16 V17 5050 non-null float64
17 V18 5050 non-null float64
18 V19 5050 non-null float64
19 V20 5050 non-null float64
20 V21 5050 non-null float64
21 V22 5050 non-null float64
22 V23 5050 non-null float64
23 V24 5050 non-null float64
24 V25 5050 non-null float64
25 V26 5050 non-null float64
26 V27 5050 non-null float64
27 V28 5050 non-null float64
28 Amount 5050 non-null float64
29 Class 5050 non-null int64
dtypes: float64(29), int64(1)
memory usage: 1.2 MB
V1 V2 V3 V4 V5 V6 V7
0 1.725265 -1.337256 -1.012687 -0.361656 -1.431611 -1.098681 -0.842274
1 0.683254 -1.681875 0.533349 -0.326064 -1.455603 0.101832 -0.520590
2 1.067973 -0.656667 1.029738 0.253899 -1.172715 0.073232 -0.745771
V8 V9 V10 V11 V12 V13 V14
0 -0.026594 -0.032409 0.215113 1.618952 -0.654046 -1.442665 -1.546538
1 0.114036 -0.601760 0.444011 1.521570 0.499202 -0.127849 -0.237253
2 0.249803 1.383057 -0.483771 -0.782780 0.005242 -1.273288 -0.269260
V15 V16 V17 V18 V19 V20 V21
0 -0.230008 1.785539 1.419793 0.071666 0.233031 0.275911 0.414524
1 -0.752351 0.667190 0.724785 -1.736615 0.702088 0.638186 0.116898
2 0.091287 -0.347973 0.495328 -0.925949 0.099138 -0.083859 -0.189315
V22 V23 V24 V25 V26 V27 V28
0 0.793434 0.028887 0.419421 -0.367529 -0.155634 -0.015768 0.010790
1 -0.304605 -0.125547 0.244848 0.069163 -0.460712 -0.017068 0.063542
2 -0.426743 0.079539 0.129692 0.002778 0.970498 -0.035056 0.017313
Amount Class
0 189.00 0
1 315.17 0
2 59.98 0
数据资料集涵盖所列数据类型: 数最大值格式的数据类型V1到V28是从PCA离散中会赢得的主分量。由于原因,未有给予有关早期动态的背景信息。 Amount数据类型回应交割金额。 Class数据类型显示交割确实为欺骗(1)或非欺骗(0)。 幸运的是,就其性质而言,欺骗事件在任何交割列表中会都是极寡数。然而,当数据资料以外会涵盖的不同各种类型或多或寡存在时,方法学方法多半效果同样。否则,就不能什么数据资料可供借鉴。这个原因被称为各种类型失衡。 让我们计算出新来欺骗交割占数据资料以外会交割据统计的百分比:round(creditcard_data['Class'].value_counts()*100/len(creditcard_data)).convert_dtypes()
0 99
1 1
Name: Class, dtype: Int64
并创设一个图表,将欺骗与非欺骗的数据资料点可视化。import matplotlib.pyplot as plt
import numpy as np
def prep_data(df):
X = df.iloc[:, 1:28]
X = np.array(X).astype(float)
y = df.iloc[:, 29]
y = np.array(y).astype(float)
return X, y
def plot_data(X, y):
plt.scatter(X[y==0, 0], X[y==0, 1], label='Class #0', alpha=0.5, linewidth=0.15)
plt.scatter(X[y==1, 0], X[y==1, 1], label='Class #1', alpha=0.5, linewidth=0.15, c='r')
plt.legend()
return plt.show()
X, y = prep_data(creditcard_data)
plot_data(X, y)
我们过去可以确定,欺骗割的分之一并不低,我们有一个各种类型不平衡原因的案例。为了解决这个原因,我们可以采用还原寡数人超抽样技术(SMOTE)来直新平衡我们的数据资料。与随机超额取样不同,SMOTE稍微复杂一些,因为它不只是创设观察最大值的有用副本。相反,它采用欺骗法院的最大值得注意邻居的特征来创设更进一步、还原的结果显示,这些结果显示与寡数人各种类型中会的原有观察最大值并不类似。让我们把SMOTE应采用我们的持卡人数据资料。from imblearn.over_sampling import SMOTE
method = SMOTE()
X_resampled, y_resampled = method.fit_resample(X, y)
plot_data(X_resampled, y_resampled)
正如我们所看到的,采用SMOTE突然给我们给予了更是多的寡数各种类型的观察结果。为了更是好地看到这种方式的结果,我们将把它们与早期数据资料进行较为。def compare_plot(X, y, X_resampled, y_resampled, method):
f, (ax1, ax2) = plt.subplots(1, 2)
c0 = ax1.scatter(X[y==0, 0], X[y==0, 1], label='Class #0',alpha=0.5)
c1 = ax1.scatter(X[y==1, 0], X[y==1, 1], label='Class #1',alpha=0.5, c='r')
ax1.set_title('Original set')
ax2.scatter(X_resampled[y_resampled==0, 0], X_resampled[y_resampled==0, 1], label='Class #0', alpha=.5)
ax2.scatter(X_resampled[y_resampled==1, 0], X_resampled[y_resampled==1, 1], label='Class #1', alpha=.5,c='r')
ax2.set_title(method)
plt.figlegend((c0, c1), ('Class #0', 'Class #1'), loc='lower center', ncol=2, labelspacing=0.)
plt.tight_layout(pad=3)
return plt.show()
print(f'Original set:'
f'{pd.value_counts(pd.Series(y))}'
f'SMOTE:'
f'{pd.value_counts(pd.Series(y_resampled))}')
compare_plot(X, y, X_resampled, y_resampled, method='SMOTE')
Original set:
0.0 5000
1.0 50
dtype: int64
SMOTE:
0.0 5000
1.0 5000
dtype: int64
因此,SMOTE方式已经完全平衡了我们的数据资料,寡数群体过去与多数群体的规模完全一致。 我们很快时会回到SMOTE方式的实质分析方法,但过去,让我们回到早期数据资料,并尝试测定欺骗法院。按照这类“老派”的方式,我们必须制定一些规则来抓捕欺骗行为。 例如,此类规则可能涉及不寻常的交割地点或可疑的不时交割。其想法是基于常用的统计数据资料假定阈最大值,多半是基于观察最大值的平均最大值,并在我们的动态上采用这些阈最大值来测定欺骗。print(creditcard_data.groupby('Class').mean().round(3)[['V1', 'V3']])
V1 V3
Class
0 0.035 0.037
1 -4.985 -7.294
在我们的特殊情况下,让我们分析方法所列条件:V1creditcard_data['flag_as_fraud'] = np.where(np.logical_and(creditcard_data['V1']
print(pd.crosstab(creditcard_data['Class'], creditcard_data['flag_as_fraud'], rownames=['Actual Fraud'], colnames=['Flagged Fraud']))
Flagged Fraud 0 1
Actual Fraud
0 4984 16
1 28 22
我们测定出新50个欺骗法院中会的22个,但没有测定出新其他28个,并取得16个误报。让我们是不是采用方法学技术确实能反败为胜这些结果。 我们过去要在我们的持卡人数据资料上实现一个简单的语义直返分类方法来标识欺骗行为的遭遇,然后在误解标量上将结果可视化。from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
lr = LogisticRegression()
lr.fit(X_train, y_train)
predictions = lr.predict(X_test)
print(pd.crosstab(y_test, predictions, rownames=['Actual Fraud'], colnames=['Flagged Fraud']))
Flagged Fraud 0.0 1.0
Actual Fraud
0.0 1504 1
1.0 1 9
需要注意的是,在这里我们在误解标量中会要查看的观测最大值较寡,因为我们只采用测定集来计算出新来模型结果,即仅占整个数据资料集的30%。 我们发现了更是高分之一的欺骗法院:90%(9/10),而先前的结果是44%(22/50)。我们取得的误报也比基本上寡了很多,所以这是一个进步。 过去让我们回到前面发表意见的类不平衡原因,并探索确实可以通过将语义直返模型与SMOTE直采样方式结合体来进一步降低得出新结论结果。为了高效、一次性地完成这项临时工,我们需要假定一个管道,并在我们的数据资料上运行它:from imblearn.pipeline import Pipeline
# Defining which resampling method and which ML model to use in the pipeline
resampling = SMOTE()
lr = LogisticRegression()
pipeline = Pipeline([('SMOTE', resampling), ('Logistic Regression', lr)])
pipeline.fit(X_train, y_train)
predictions = pipeline.predict(X_test)
print(pd.crosstab(y_test, predictions, rownames=['Actual Fraud'], colnames=['Flagged Fraud']))
Flagged Fraud 0.0 1.0
Actual Fraud
0.0 1496 9
1.0 1 9
我们可以看到,在我们的案例中会,SMOTE并不能带给任何改进:我们仍然捕获了90%的欺骗事件,而且,我们的假阳性比例略高。这里的解释是,直新取样一般而言在所有情况下都能带给更是好的结果。当欺骗法院在数据资料中会并不分散时,其最大值得注意的一般而言也是欺骗法院,所以采用SMOTE时会引入一个偏见。 作为一个可能的方式,为了降低语义直返模型的准确性,我们可以调整一些方法值。也可以并不需要采用K-fold对角验证法,而不是直接将数据资料集组成两部分。最后,我们可以尝试一些其他的方法学方法(如议程树或随机树林),是不是它们确实能得出新更是好的结果。。杭州白癜风医院哪里比较好天津口腔专业医院
长沙炎治疗医院
南京癫痫医院挂号
杭州妇科医院哪最好
英太青凝胶对腱鞘炎有用吗
肩周炎怎么治疗最好
阳了要吃什么药
老人抽搐
视疲劳滴眼液
下一篇: 软糯香甜的黄豆炖猪蹄,做法大发布新闻
- .假日游海岛,偶遇盛放的300亩油菜花
- .连老福州人都会读错的路名,你读对了吗?
- .潮安有座“小故宫”,投资上亿元,建了14年才落成,建造者或许马来西亚的富豪
- .假期相约要防疫,这些提醒需注意!
- .明天初五,我们发起者……
- .山东又一良心景区,名字虽然有点奇特,却藏有白描美景,门票0元
- .广州这个区,明明距离市中心很近,却因为人口众多太多而常常被嫌弃
- .北方朋友让一让,先让南方少侠看看绝美雪景!梦幻西游图像版
- .亲近自然,体验诗意民宿,极快来汉中开启初春养生之旅!
- .后悔!东北人在三亚过冬,去过中廖村的不多,那可是一处世外桃源
- .注意!2月5日大年初五 四川瓦屋山景区暂定人数已达上限
- .她的雪地之缘
- .西北部一个存在感极低的省,被许多人视为甘肃的一个和城市
- .年在家乡故里 更在忻州古城墙
- .解锁青岛红树林虎年度假一新姿势,引领春节滨海度假一新时尚
- .江苏一处低调的自驾游胜地,主要分为三大区域,西侧安徽
- .近500项新春文旅活动 春节假日前四天广州接待游客598万余人次
- .南海这个地方吃喝玩乐一站备齐!你偏爱去这玩吗?
- .山东一座“养老宝城”,持续性好且很受欢迎,不是烟台不是日照
- .抚州再现“巨富豪宅”,主人离奇失踪,距市区150公里