天池学习赛交流分享——信用卡欺诈null

主要对相关数据进行分析统计视图,而后进行标准化处理,训练数据,而后利用各个模型进行评。

目录

一.导入相关库与数据

二.对数据进行分析

三.统计视图

四.标准化

五.训练数据

六.模型建立和模型评估

# 1. 决策树模型

# 2.  k近邻算法KNN

# 3. 逻辑回归

# 4. SVM

# 5. 随机森林

# 6. XGBoost

七.模型可视化


一.导入相关库与数据

导入相关资源库和依赖。

二.对数据进行分析

首先应是对数据进行预处理,而后进行数据清洗等操作。

cases = len(df)

nonfraud_count = len(df[df.Class == 0])

fraud_count = len(df[df.Class == 1])

fraud_percentage = round(fraud_count/nonfraud_count*100, 2)



print(cl('案例总数为 {}'.format(cases)))

print(cl('非欺诈案件的数量为 {}'.format(nonfraud_count)))

print(cl('欺诈案件的数量为 {}'.format(fraud_count)))

print(cl('诈骗案件的百分比为 {}'.format(fraud_percentage)))

三.统计视图

对于相关对数据进行统计并且以视图的方式。

nonfraud_cases = df[df.Class == 0]

fraud_cases = df[df.Class == 1]

print(cl('非欺诈案件金额统计'))

print(nonfraud_cases.Amount.describe())

print(cl('--------------------------------------------'))

print(cl('诈骗个案金额统计'))

print(fraud_cases.Amount.describe())

四.标准化

sc = StandardScaler()

amount = df['Amount'].values



df['Amount'] = sc.fit_transform(amount.reshape(-1, 1))



print(cl(df['Amount'].head(10), attrs = ['bold']))

五.训练数据

X = df.drop('Class', axis = 1).values

y = df['Class'].values

X_train, X_test, y_train, y_test = train_test_split(

        X, y, test_size = 0.2, random_state = 0)

六.模型建立和模型评估

# 1. 决策树模型:

决策树属于有监督学习算法,又称为CART(Classification and Regression Trees),可以用于解决分类回归问题。

本文主要讨论决策分类树(下文称为决策树),即通过一系列决策规则分类数据。

tree_model = DecisionTreeClassifier(max_depth = 4, criterion = 'entropy')

tree_model.fit(X_train, y_train)

tree_yhat = tree_model.predict(X_test)

print(format(accuracy_score(y_test, tree_yhat)))

print( '决策树准确率:',format(f1_score(y_test, tree_yhat)))

# 2.  k近邻算法KNN:K-近邻算法是最简单的分类器,没有显式的学习过程或训练过程,是懒惰学习(Lazy Learning)。

n = 5

knn = KNeighborsClassifier(n_neighbors = n)

knn.fit(X_train, y_train)

knn_yhat = knn.predict(X_test)

print(format(accuracy_score(y_test, knn_yhat)))

print('k近邻算法KNN准确率:',format(f1_score(y_test, knn_yhat)))

# 3. 逻辑回归:

(Logistic regression/LR)虽然其中带有"回归"两个字,但逻辑回归其实是一个分类模型,并且广泛应用于各个领域之中。虽然现在深度学习相对于这些传统方法更为火热,但实则这些传统方法由于其独特的优势依然广泛应用于各个领域中。
lr = LogisticRegression()

lr.fit(X_train, y_train)

lr_yhat = lr.predict(X_test)

print(format(accuracy_score(y_test, lr_yhat)))

print('逻辑回归准确率:',format(f1_score(y_test, lr_yhat)))

# 4. SVM:支持向量机(Support Vector Machine,SVM)是一种机器学习算法,用于分类和回归分析。它能够有效地处理线性可分和线性不可分的数据,并在高维空间中构建最优的决策边界。

svm = SVC()

svm.fit(X_train, y_train)

svm_yhat = svm.predict(X_test)

print(format(accuracy_score(y_test, svm_yhat)))

print('SVM准确率:',format(f1_score(y_test, svm_yhat)))

# 5. 随机森林:是一种基于集成学习的算法,它通过构建多个决策树并将它们的预测结果进行集成来进行回归任务。在随机森林中,每棵决策树都是独立并在随机选择的子样本上进行训练的,这样可以有效地减少过拟合的风险。随机森林通过将多个决策树的预测结果进行平均或加权平均,从而得到最终的回归结果。

rf = RandomForestClassifier(max_depth = 4)

rf.fit(X_train, y_train)

rf_yhat = rf.predict(X_test)

print(format(accuracy_score(y_test, rf_yhat)))

print('随机森林准确率:',format(f1_score(y_test, rf_yhat)))

# 6. XGBoost:这是一个优化的分布式梯度提升库,旨在实现高效、灵活且便携的机器学习算法。

xgb = XGBClassifier(max_depth = 4)

xgb.fit(X_train, y_train)

xgb_yhat = xgb.predict(X_test)

print(format(accuracy_score(y_test, xgb_yhat)))

print('XGBppst准确率:',format(f1_score(y_test, xgb_yhat)))

七.模型可视化

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值