IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> datawhale-task05 -> 正文阅读

[人工智能]datawhale-task05

目录

作业

?1. 什么是Bootstraps

2. bootstraps和bagging的联系

3. 什么是bagging

4. 随机森林和bagging的联系和区别

5. 使用偏差和方差阐释为什么bagging能提升模型的预测精度

6. 使用Bagging和基本分类模型或者回归模型做对比,观察bagging是否相对于基础模型的精度有所提高

7. 你会使用python+numpy+sklearn的基础模型来实现bagging吗?

笔记

投票法

介绍

代码

bagging

代码


作业

?1. 什么是Bootstraps

在这里插入图片描述

由原始数据经过重复有放回抽样所获得的与原始数据集含量相等的样本称为再抽样样本

由再抽样样本计算所得的统计量称为自助统计量(bootstrap statistic)

由原始数据集计算所得的统计量称为观察统计量

自助统计量::观察统计量<=>观察统计量::真值?

其核心思想和基本步骤如下:
  (1) 采用再抽样技术从原始样本中抽取一定数量(自己给定)的样本,此过程允许重复抽样。
  (2) 根据抽出的样本计算给定的统计量T。
  (3) 重复上述N次(一般大于1000),得到N个统计量T。
  (4) 计算上述N个统计量T的样本方差,得到统计量的方差。
  其中的再抽样是有返还的抽样(sampling with replacement)方式。

原文链接:https://blog.csdn.net/gsthyx/article/details/108053023

2. bootstraps和bagging的联系

?Bagging的核心在于自助采样(bootstrap)这一概念。通过有放回的采样,在总体的不同采样数据集上训练模型。

3. 什么是bagging

通过有放回的采样, 采样出T个含K个样本的采样集合,然后基于每个采样集合训练出一个基学习器,再将这些基学习器进行结合,这就是Bagging的基本流程。每个模型都是在略微不同的训练数据集上拟合完成的,这又使得每个基模型之间存在略微的差异,使每个基模型拥有略微不同的训练能力。

4. 随机森林和bagging的联系和区别

Bagging的一个典型应用是随机森林,每个决策树训练的样本和构建决策树的特征都是通过随机采样得到的,随机森林的预测结果是多个决策树输出的组合(投票)。

5. 使用偏差和方差阐释为什么bagging能提升模型的预测精度

从偏差考虑,各模型有相近的bias,E(\frac{\sum X_i}{n})=E(X_i), bagging无法显著降低模型的偏差。

从方差考虑,

假设有同分布的n个随机变量,方差为\sigma^2, 两两变量之间的相关性为\rho, 则Var(\frac{\sum X_i}{n})=\rho \sigma^2+(1-\rho)\sigma^2/n

而若每个模型完全相同Var(\frac{\sum X_i}{n})=Var(X_i), 所以bagging能减小方差,提升模型的预测精度

若每个模型完全独立Var(\frac{\sum X_i}{n})=\frac{Var(X_i)}{n}

6. 使用Bagging和基本分类模型或者回归模型做对比,观察bagging是否相对于基础模型的精度有所提高

使用决策树对一个含有1000个样本20维特征的随机分类数据集进行分类。

使用重复的分层k-fold交叉验证来评估该模型,一共重复3次,每次有10个fold。我们将评估该模型在所有重复交叉验证中性能的平均值和标准差。

Bagging Accuracy: 0.858 (0.036)
Decision TreeAccuracy: 0.807 (0.045)

Bagging Accuracy: 0.865 (0.038)
Decision TreeAccuracy: 0.804 (0.047)

可以看到bagging方法确实提高了基础模型的精度。

# evaluate bagging algorithm for classification
from numpy import mean
from numpy import std
from sklearn.datasets import make_classification
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import RepeatedStratifiedKFold
from sklearn.ensemble import BaggingClassifier
from sklearn.tree import DecisionTreeClassifier
# define dataset
X, y = make_classification(n_samples=1000, n_features=20, n_informative=15, n_redundant=5, random_state=5)
# define the model
model = BaggingClassifier()
# evaluate the model
cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1)
n_scores = cross_val_score(model, X, y, scoring='accuracy', cv=cv, n_jobs=-1, error_score='raise')
# report performance
print('Bagging Accuracy: %.3f (%.3f)' % (mean(n_scores), std(n_scores)))

model = DecisionTreeClassifier(min_samples_leaf=5)
# evaluate the model
cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1)
n_scores = cross_val_score(model, X, y, scoring='accuracy', cv=cv, n_jobs=-1, error_score='raise')
# report performance
print('Decision TreeAccuracy: %.3f (%.3f)' % (mean(n_scores), std(n_scores)))

7. 你会使用python+numpy+sklearn的基础模型来实现bagging吗?

待补

笔记

投票法

介绍

??投票法在回归模型与分类模型上均可使用:

  • 回归投票法:预测结果是所有模型预测结果的平均值。
  • 分类投票法:预测结果是所有模型种出现最多的预测结果。

??分类投票法又可以被划分为硬投票与软投票:

  • 硬投票:预测结果是所有投票结果最多出现的类。
  • 软投票:预测结果是所有投票结果中概率加和最大的类。

硬投票和软投票的区别

模型 1 的预测结果是 类别 A 的概率为 99% 判断是A

模型 2 的预测结果是 类别 A 的概率为 49% 判断是B

模型 3 的预测结果是 类别 A 的概率为 49% 判断是B

硬投票:B (A:1 B2)

软投票:A??(99 + 49 + 49) / 3 = 65.67%

适用场景:??

硬投票:投票合集中使用的模型能预测出清晰的类别标签

软投票:投票集合中使用的模型能预测类别的概率。同样用于那些本身并不预测类成员概率的模型,只要他们可以输出类似于概率的预测分数值(例如支持向量机、k-最近邻和决策树)

投票法问题:所有模型贡献都是一致的

代码

?VotingRegressor?与?VotingClassifier??

这两种模型的操作方式相同,采用相同的参数。

使用模型需要提供一个模型列表,列表中每个模型采用Tuple的结构表示第一个元素代表名称,第二个元素代表模型,需要保证每个模型必须拥有唯一的名称

models = [('lr',LogisticRegression()),('svm',SVC())]
ensemble = VotingClassifier(estimators=models, voting='soft')#models是一个list

bagging

不仅仅集成模型最后的预测结果,同时采用一定策略来影响基模型训练,保证基模型可以服从一定的假设。

采样出T个含K个样本的采样集合(有放回),然后基于每个采样集合训练出一个基学习器,再将这些基学习器进行结合

是因为每个模型都是在略微不同的训练数据集上拟合完成的,这又使得每个基模型之间存在略微的差异,使每个基模型拥有略微不同的训练能力。

代码

BaggingRegressor?与?BaggingClassifier?

Bagging的一个典型应用是随机森林

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-22 14:10:48  更:2021-07-22 14:12:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 17:15:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码