ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

集成算法--sklearn

2021-12-29 12:00:41  阅读:210  来源: 互联网

标签:iris -- clf2 分类器 算法 vote import sklearn


集成算法

投票法

1.少数服从多数
2.多模型一致(硬投票)
3.更高把握(置信度)原则,以最高执行度的模型预测结果为准
4.把握程度汇总进行投票(软投票)

基于多个优化模型的投票分类器

from sklearn.ensemble import VotingClassifier # 导入投票分类器
from sklearn.datasets import load_iris # 导入训练数据集

iris=load_iris()

构建若干基础模型

# 构建若干基础模型
from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import GaussianNB
from sklearn.svm import SVC

clf1=LogisticRegression()
clf2=GaussianNB()
clf3=SVC(kernel='rbf')

建立投票分类器(hard)

#实例化
vote_clf=VotingClassifier(estimators=[('lr',clf1),('GNB',clf2),('SVM',clf3)],voting='hard')


# 训练投票分类器
vote_clf.fit(iris.data,iris.target)

# 预测
vote_clf.predict(iris.data)

建立投票分类器(soft)

# 建立投票分类器(soft)
clf1=LogisticRegression()
clf2=GaussianNB()
clf3=SVC(kernel='rbf',probability=True)

vote_clf2=VotingClassifier(estimators=[('lr',clf1),('GNB',clf2),('SVM',clf3)],voting='soft') #实例化
vote_clf2=vote_clf2.fit(iris.data,iris.target)# 训练
vote_clf2.predict(iris.data)# 预测

# 预测输出概率值
vote_clf2.predict_proba(iris.data)

array([[9.86641908e-01, 1.06874777e-02, 2.67061395e-03],
[9.80580511e-01, 1.64122717e-02, 3.00721706e-03],
[9.88225368e-01, 9.17685191e-03, 2.59777978e-03],
[9.81921847e-01, 1.49389403e-02, 3.13921237e-03],
。。。。。。。
例如,第一行,0.9866最大,所以为第一类

硬投票不能查看概率值

投票分类器与网格搜索的联合使用


from sklearn.model_selection import GridSearchCV # 导入网格搜索
from sklearn.ensemble import VotingClassifier# 导入投票分类器


# 构建若干基础模型
from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import GaussianNB
from sklearn.svm import SVC

clf1=LogisticRegression()
clf2=GaussianNB()
clf3=SVC(probability=True)
# probability默认为false ,所以设置为true ,方便后续查看概率值

probability默认为false ,所以设置为true ,方便后续查看概率值

 #实例化
vote_clf2=VotingClassifier(estimators=[('lr',clf1),('GNB',clf2),('SVM',clf3)],voting='soft')
# 设置参数搜索范围
params={'lr__C':[0.1,1,10],
       'SVM__C':[0.01,0.1,1,10],
       'SVM_kernel':['linear','rbf']}

注意:SVM__C,lr__C’这里是两个横线,小心报错
params={‘lr__C’:[0.1,1,10],‘SVM__C’:[0.01,0.1,1,10], ‘SVM_kernel’:[‘linear’,‘rbf’]}一共会搜索 24次:342

#在网格搜索中直接调用投票分类器
grid=GridSearchCV(estimator=vote_clf,param_grid=params,cv=8)

标签:iris,--,clf2,分类器,算法,vote,import,sklearn
来源: https://blog.csdn.net/qq_48566899/article/details/116700145

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有