前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >集成学习2——sklearn实现

集成学习2——sklearn实现

作者头像
皮大大
发布2021-03-02 14:31:36
3210
发布2021-03-02 14:31:36
举报
文章被收录于专栏:机器学习/数据可视化

导入数据

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt
代码语言:javascript
复制
from sklearn import datasets
# 样本数,噪声设置,随机种子
# 学习make_moons随机数据集
X, y = datasets.make_moons(n_samples=500, noise=0.3, random_state=42)
代码语言:javascript
复制
# X[y == 0,0]:先取出y值为0的值,再取第一个属性
plt.scatter(X[y == 0,0], X[y==0, 1])
plt.scatter(X[y == 1,0], X[y==1, 1])
plt.show()

TTS实现

代码语言:javascript
复制
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=666)

三种方式实现

实现步骤:导入包,创建实例,拟合和得分

  • LR
  • SVM
  • DT
代码语言:javascript
复制
from sklearn.linear_model import LogisticRegression

log_clf = LogisticRegression()
log_clf.fit(X_train, y_train)
log_clf.score(X_test, y_test)
代码语言:javascript
复制
0.824
代码语言:javascript
复制
from sklearn.svm import SVC

svc_clf = SVC()
svc_clf.fit(X_train, y_train)
svc_clf.score(X_test, y_test)
代码语言:javascript
复制
0.88
代码语言:javascript
复制
from sklearn.tree import DecisionTreeClassifier

dt_clf = DecisionTreeClassifier()
dt_clf.fit(X_train, y_train)
dt_clf.score(X_test, y_test)
代码语言:javascript
复制
0.84

三种模型的预测

代码语言:javascript
复制
y_predict1 = log_clf.predict(X_test)
y_predict2 = svc_clf.predict(X_test)
y_predict3 = dt_clf.predict(X_test)
代码语言:javascript
复制
# y是二分类问题,只有+1,0
# 如果三个结果的平均值大于等于3,则至少有两个结果1,说明y应该是1,少数服从多数原则
y_predict = np.array((y_predict1 + y_predict2 + y_predict3)>=2, dtype="int")
y_predict[:10]
代码语言:javascript
复制
array([1, 1, 0, 0, 0, 1, 0, 1, 0, 1])
代码语言:javascript
复制
from sklearn.metrics import accuracy_score
accuracy_score(y_test, y_predict)
代码语言:javascript
复制
0.896

调用sklearn接口实现

代码语言:javascript
复制
from sklearn.ensemble import VotingClassifier

voting_clf = VotingClassifier(estimators=[
    ("log_clf", LogisticRegression()),
    ("svm_clf", SVC()),
    ("dt_clf", DecisionTreeClassifier())], 
                              voting="hard")
代码语言:javascript
复制
voting_clf.fit(X_train,y_train)
代码语言:javascript
复制
VotingClassifier(estimators=[('log_clf',
                              LogisticRegression(C=1.0, class_weight=None,
                                                 dual=False, fit_intercept=True,
                                                 intercept_scaling=1,
                                                 l1_ratio=None, max_iter=100,
                                                 multi_class='warn',
                                                 n_jobs=None, penalty='l2',
                                                 random_state=None,
                                                 solver='warn', tol=0.0001,
                                                 verbose=0, warm_start=False)),
                             ('svm_clf',
                              SVC(C=1.0, cache_size=200, class_weight=None,
                                  coef0=0.0, decision_f...
                             ('dt_clf',
                              DecisionTreeClassifier(class_weight=None,
                                                     criterion='gini',
                                                     max_depth=None,
                                                     max_features=None,
                                                     max_leaf_nodes=None,
                                                     min_impurity_decrease=0.0,
                                                     min_impurity_split=None,
                                                     min_samples_leaf=1,
                                                     min_samples_split=2,
                                                     min_weight_fraction_leaf=0.0,
                                                     presort=False,
                                                     random_state=None,
                                                     splitter='best'))],
                 flatten_transform=True, n_jobs=None, voting='hard',
                 weights=None)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-9-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 导入数据
  • TTS实现
  • 三种方式实现
  • 三种模型的预测
  • 调用sklearn接口实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档