建设银行官网首页网站招聘,企业网站添加栏目,河南住房和城乡建设部网站首页,没学过计算机开始学做网站引言
集成学习#xff1a;让机器学习效果更好#xff0c;单个不行#xff0c;群殴走起。
分类
1. Bagging:训练多个分类器取平均#xff08;m代表树的个数#xff09;。
2.Boosting#xff08;提升算法#xff09;:从弱学习器开始加#xff0c;通过加权来进行训练。…引言
集成学习让机器学习效果更好单个不行群殴走起。
分类
1. Bagging:训练多个分类器取平均m代表树的个数。
2.Boosting提升算法:从弱学习器开始加通过加权来进行训练。它与上面的不同在于它不是随机几颗树取平均而是加入一棵树要比原来强 3.Stacking聚合多个分类或回归模型可以分阶段来做
介绍
Bagging全称bootstrap aggregation在其算法中训练每一棵树之间是没有影响的说白了就是并行训练一堆分类器。 典型代表随机森林随机代表数据采样随机特征选择随机为了避免重复但算法已经固定为了增加多样性则就是数据的采样要随机。森林代表很多个决策树并行放在一起。
随机森林中分类和回归的做法 在做分类任务的时候两个类别被分为A一个被分为B那么则选择少数服从多数最后类别为A。
在做回归任务的时候分别为100、200、300则最终结果为100200300/3
随机森林的优点
1.可解释性强便于分析。对于神经网络、深度学习都是黑盒子我们只能得到输入和输出内部很复杂看不到。
2.在训练结束它能够给出特征重要型排序如下图 3.并行化方法速度快
软投票和硬投票
一、硬投票直接用类别值少数服从多数
1准备数据并且可视化
%matplotlib inline
from matplotlib import pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.datasets import make_moons
X,ymake_moons(n_samples500,noise0.30,random_state42)
X_train,X_test,y_train,y_testtrain_test_split(X,y,random_state42)
plt.plot(X[:,0][y0],X[:,1][y0],yo,alpha0.6)#alpha 代表透明程度
plt.plot(X[:,0][y0],X[:,1][y1],bs,alpha0.6)
结果如图所示 2硬投票
from sklearn.ensemble import RandomForestClassifier,VotingClassifier #随机森林和投票器
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
#进行实例化
log_clfLogisticRegression()
rnd_clfRandomForestClassifier()
svm_clfSVC()
voting_clfVotingClassifier(estimators[(lr,log_clf),(rf,rnd_clf),(svc,svm_clf)],votinghard)
voting_clf.fit(X_train,y_train)
3模型评价
from sklearn.metrics import accuracy_score
for clf in (log_clf,rnd_clf,svm_clf,voting_clf):clf.fit(X_train,y_train)y_predclf.predict(X_test)print(clf.__class__.__name__,accuracy_score(y_test,y_pred))
结果如下 二、软投票各自分类器的概率值进行加权平均
数据不变只需要将上面代码进行修改。代码如下
from sklearn.ensemble import RandomForestClassifier,VotingClassifier #随机森林和投票器
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
#进行实例化
log_clfLogisticRegression()
rnd_clfRandomForestClassifier()
svm_clfSVC(probabilityTrue)
voting_clfVotingClassifier(estimators[(lr,log_clf),(rf,rnd_clf),(svc,svm_clf)],votingsoft)
voting_clf.fit(X_train,y_train)
from sklearn.metrics import accuracy_score
for clf in (log_clf,rnd_clf,svm_clf,voting_clf):clf.fit(X_train,y_train)y_predclf.predict(X_test)print(clf.__class__.__name__,accuracy_score(y_test,y_pred))
模型评价结果如图 明显比上一个效果好。