集成学习

  • 投票,少数服从多数
  • 投票的一种分类器:Voting Classifier

加载数据集

import numpy as np
import matplotlib.pyplot as plt

from sklearn import datasets
X,y = datasets.make_moons(n_samples=500,noise=0.3,random_state=42)

from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=666)

使用三种分类器,三种算法对同一数据集进行分类

#%% 逻辑回归
from sklearn.linear_model import LogisticRegression

log_clf = LogisticRegression()
log_clf.fit(X_train,y_train)
log_clf.score(X_test,y_test)

结果:0.824

#%% SVM

from sklearn.svm import SVC

svm_clf = SVC()
svm_clf.fit(X_train,y_train)
svm_clf.score(X_test,y_test)

结果:0.856

#%% 决策树

from sklearn.tree import DecisionTreeClassifier

dt_clf = DecisionTreeClassifier()
dt_clf.fit(X_train,y_train)
dt_clf.score(X_test,y_test)

结果:0.832

手动将三种分类器结合起来

y_predict1 = log_clf.predict(X_test)
y_predict2 = svm_clf.predict(X_test)
y_predict3 = dt_clf.predict(X_test)

y_predict = np.array((y_predict1 + y_predict2 + y_predict3) >= 2,dtype='int')

from sklearn.metrics import accuracy_score
accuracy_score(y_test,y_predict)

结果:0.856

使用投票分类器

#%% 使用Voting Classifier(hard voting)

from sklearn.ensemble import VotingClassifier

voting_clf = VotingClassifier(estimators=[
    ('log_clf',LogisticRegression()),
    ('svm_clf',SVC()),
    ('dt_clf',DecisionTreeClassifier())
],voting='hard')   # 'hard'意思是少数服从多数

voting_clf.fit(X_train,y_train)

voting_clf.score(X_test,y_test)

结果:0.864

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值