import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.ensemble import AdaBoostClassifier, RandomForestClassifier, VotingClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.svm import LinearSVC, SVC
from sklearn.neighbors import KNeighborsClassifier

# 下载数据集
data = pd.read_csv('creditcard.csv')

# 划分训练集和测试集
X = data.drop(['Class'], axis=1)
y = data['Class']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 建立AdaBoost模型
ada = AdaBoostClassifier()
ada.fit(X_train, y_train)
ada_score = ada.score(X_test, y_test)
print('AdaBoost模型测试集准确率:', ada_score)

# 建立随机森林模型
rf = RandomForestClassifier()
rf.fit(X_train, y_train)
rf_score = rf.score(X_test, y_test)
print('随机森林模型测试集准确率:', rf_score)

# 构建集成学习模型
dtc = DecisionTreeClassifier()
lsvc = LinearSVC()
svc = SVC(kernel='rbf', gamma='auto')
knn1 = KNeighborsClassifier(n_neighbors=1)
knn3 = KNeighborsClassifier(n_neighbors=3)

voting_clf = VotingClassifier(estimators=[('dtc', dtc), ('lsvc', lsvc), ('svc', svc), ('knn1', knn1), ('knn3', knn3)], voting='hard')
voting_clf.fit(X_train, y_train)
voting_score = voting_clf.score(X_test, y_test)
print('多数投票集成学习模型测试集准确率:', voting_score)

voting_clf_soft = VotingClassifier(estimators=[('dtc', dtc), ('lsvc', lsvc), ('svc', svc), ('knn1', knn1), ('knn3', knn3)], voting='soft')
voting_clf_soft.fit(X_train, y_train)
voting_score_soft = voting_clf_soft.score(X_test, y_test)
print('相对多数投票集成学习模型测试集准确率:', voting_score_soft)
Python实现信用卡欺诈检测:AdaBoost、随机森林、集成学习

原文地址: https://www.cveoy.top/t/topic/nF8g 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录