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 SVC
from sklearn.neighbors import KNeighborsClassifier

# 读取数据
data = pd.read_csv('creditcard.csv')

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

# AdaBoost算法
ada = AdaBoostClassifier(n_estimators=100)
ada.fit(X_train, y_train)
ada_score = ada.score(X_test, y_test)
print('AdaBoost算法准确率:{}'.format(ada_score))

# 随机森林算法
rf = RandomForestClassifier(n_estimators=100)
rf.fit(X_train, y_train)
rf_score = rf.score(X_test, y_test)
print('随机森林算法准确率:{}'.format(rf_score))

# 集成学习模型
dt = DecisionTreeClassifier()
svc_linear = SVC(kernel='linear', probability=True)
svc_rbf = SVC(kernel='rbf', probability=True)
knn_1 = KNeighborsClassifier(n_neighbors=1)
knn_3 = KNeighborsClassifier(n_neighbors=3)

# 多数投票
voting_clf = VotingClassifier(estimators=[
    ('dt', dt),
    ('svc_linear', svc_linear),
    ('svc_rbf', svc_rbf),
    ('knn_1', knn_1),
    ('knn_3', knn_3)
], voting='hard')
voting_clf.fit(X_train, y_train)
voting_clf_score = voting_clf.score(X_test, y_test)
print('多数投票集成学习模型准确率:{}'.format(voting_clf_score))

# 相对多数投票
voting_clf_soft = VotingClassifier(estimators=[
    ('dt', dt),
    ('svc_linear', svc_linear),
    ('svc_rbf', svc_rbf),
    ('knn_1', knn_1),
    ('knn_3', knn_3)
], voting='soft')
voting_clf_soft.fit(X_train, y_train)
voting_clf_soft_score = voting_clf_soft.score(X_test, y_test)
print('相对多数投票集成学习模型准确率:{}'.format(voting_clf_soft_score))

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

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