南通网站建设要多少钱,网络规划设计师和网络工程师,做受网站,环保空调东莞网站建设文章目录
机器学习专栏
介绍
投票分类器
介绍
代码
核心代码
示例代码
软投票与硬投票
bagging与pasting
介绍
核心代码
随机森林
介绍
代码
结语 机器学习专栏 机器学习_Nowl的博客-CSDN博客 介绍 集成学习的思想是很直观的#xff1a;多个人判断的结合往往比…文章目录
机器学习专栏
介绍
投票分类器
介绍
代码
核心代码
示例代码
软投票与硬投票
bagging与pasting
介绍
核心代码
随机森林
介绍
代码
结语 机器学习专栏 机器学习_Nowl的博客-CSDN博客 介绍 集成学习的思想是很直观的多个人判断的结合往往比一个人的想法好 我们将在下面介绍几种常见的集成学习思想与方法
投票分类器
介绍 假如我们有一个分类任务我们训练了多个模型逻辑回归模型SVM分类器决策树分类器然后我们看他们预测的结果如果两个分类器预测为1一个分类器预测为0那么最后模型判断为1采用的是一种少数服从多数的思想 代码
核心代码
引入投票分类器库并创建模型
from sklearn.ensemble import VotingClassifierlog_model LogisticRegression()
tree_model DecisionTreeClassifier()
svc_model SVC()voting_model VotingClassifier(estimators[(lr, log_model), (df, tree_model), (sf, svc_model)],votinghard
)voting_model.fit(x, y)
例子中创建了三个基础分类器最后再组合成一个投票分类器
示例代码
我们在鸢尾花数据集上测试不同模型的分类效果
from sklearn.ensemble import VotingClassifier
from sklearn.svm import SVC
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_splitiris load_iris()
X iris.data # petal length and width
y iris.target
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2)log_model LogisticRegression()
tree_model DecisionTreeClassifier()
svc_model SVC()voting_model VotingClassifier(estimators[(lr, log_model), (df, tree_model), (sf, svc_model)],votinghard
)for model in (log_model, tree_model, svc_model, voting_model):model.fit(X_train, y_train)y_pred model.predict(X_test)print(model, accuracy_score(y_test, y_pred))
运行结果 该示例代码可以看到各个模型在相同数据集上的性能测试该示例的数据集较小所以性能相差不大当数据集增大时 集成学习的性能往往比单个模型更优 软投票与硬投票
当基本模型可以计算每个类的概率时集成学习将概率进行平均计算得出结果这种方法被称作软投票当基本模型只能输出类别时只能实行硬投票以预测次数多的为最终结果
bagging与pasting
介绍
除了投票分类这种集成方法我们还有其他方法例如使用相同的基础分类器但是每个分类器训练的样本将从数据集中随机抽取最后再结合性能若抽取样本放回则叫做bagging方法若不放回则叫做pasting方法 核心代码
from sklearn.ensemble import BaggingClassifier
from sklearn.tree import DecisionTreeClassifiermodel BaggingClassifier(DecisionTreeClassifier(), n_estimators500,max_samples100, bootstrapTrue, n_jobs-1
)model.fit(X_train, y_train)
若基本分类器可以计算每个类的概率BaggingClassifier自动执行软分类方法
bootstrap True设置模型采用Bagging放回采样法
n_jobs参数代表用多少CPU内核进行训练何预测-1代表使用所有可用内核
设置为False时采用Pasting不放回采样法 随机森林
介绍 随机森林就是一种基本模型是决策树的Bagging方法你可以使用BaggingClassifier集成DecisionTreeClassifier也可以使用现成的库 代码
from sklearn.ensemble import RandomForestClassifiermodel RandomForestClassifier(n_estimators100, max_leaf_nodes16, n_jobs-1)
model.fit(X_train, y_train)
max_leaf_nodes限制了子分类器的最大叶子节点数量 结语
集成学习就是利用了一个很基本的思想多数人的想法往往比一个人的想法更优同时概率论中也有这样一个场景实验次数越多概率越接近本质