飞道的博客

信用卡教育风险预测项目--kaggle算法实战

348人阅读  评论(0)

信用卡交易欺诈风险预测
数据来源:
Kaggle数据集
匿名的信用卡交易数据,数据集中包含标签字段区分此交易是否是存在欺诈行为
出于用户隐私的保护的需要,数据中的V1-V28特征可能来自于对用户信息特征和其他敏感特征的主成分分析(PCA)结果
字段属性:

Time: 交易发生时间

V1-V28:PCA处理后的用户信息及其他敏感信息

Amount:交易金额

Class:交易类型标签;1:欺诈型交易;0:非欺诈型交易

学习目标:
1)探索数据
要求:

① 读取数据表

② 查看数据的基本情况

2)针对数据存在的问题,应该采取怎么样的特征工程?
要求:

① 分别查看交易金额和交易时间,并对这两列特征进行处理

② 查看V1-V28这些特征与因变量标签之间的关系

③ 对数据进行共线性筛查

3)数据集是否存在分类不平衡的问题,如果存在应该如何解决?
要求:

① 查看数据标签类别分布是否平衡

② 如果存在不平衡的问题,对样本进行重取样(建议采取随机欠取样的方法),获得平衡分类的数据

随机欠取样:抽取所有的总量较少的类别,然后对总量较多的类别进行随机抽样,抽取和总量较少类别一样多的样本,构成采样均匀的数据集
4)如何进行模型数据预处理?
要求:

① 在平衡取样的数据集上对时间、金额特征进行标准化处理

5)选取不同的模型进行模型训练并对比模型效果、优化模型效果,确定最终预测模型
要求:

① 使用留一法进行数据集划分,验证集比例:30%

② 选取至少两个不同类型的分类算法进行欺诈风险预测模型训练,并对比模型效果(kaggle数据提供方推荐以AUC值来评价模型),选出最佳模型

偏态处理

取log
df[‘Amount’] = df[‘Amount’].map(lambda x: np.log(x) if x>0 else 0)

增加时间特征:小时、分钟

timedelta = pd.to_timedelta(df[‘Time’], unit=‘s’)
df[‘Time_min’] = (timedelta.dt.components.minutes).astype(int)
df[‘Time_hour’] = (timedelta.dt.components.hours).astype(int)

查看其他特征跟欺诈的关系

相关性举证,检查共线性问题

plt.figure(figsize=(48,24))
sns.heatmap(df.corr(),linewidths=0.1,vmax=1.0,
square=True, linecolor=‘white’, annot=True)
plt.show()

未完,待续。。。。


转载:https://blog.csdn.net/qq_40323746/article/details/104521634
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场