| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 机器学习笔记——随机森林 -> 正文阅读 |
|
[数据结构与算法]机器学习笔记——随机森林 |
学习随机森林之前得先了解决策树,可以看我这篇关于决策树的文章:机器学习笔记——决策树 随机森林是什么?随机森林是非常常用又简单的监督学习算法,它可以分成“随机”和“森林”来理解,随机即树的生成伴随着随机性,这在后面会详细讲到;森林也就是很多的树在一起形成了森林。在这里我们可以猜到随机森林就是将很多的随机生成的树整合在一起进行投票决策的算法。好比当我们要判断一只动物的时候森林里面每棵树都会发表自己的看法,然后这些意见中最多的那个就会是判断的结果。这就属于集成学习的思想,而在集成学习中随机森林又属于bagging,即有放回采样n个样本建立分类器。 生成决策树在我们建立我们的随机森林之前,我们得有足够多的决策树,在生成决策树的时候就伴随着随机性。假设我们有X个样本,每次抽取一个样本出来然后放回去继续抽,就这样重复X次我们就会得到一个新的数据集含有X个样本,我们再用这个数据集去训练一棵决策树。这时后随机性就体现在随机抽样,会有大约三分之一的样本不在新的数据集里面,同时对于每个节点的分裂数据集所参考的样本属性我们也会随机选取,假设每个样本有N个属性,n<<N 我们会从N个属性里选取n个属性,接着再用一种方法如信息增益来选取其中的一个属性作为这个节点的分裂属性。接着在写一个节点重复这一步骤使得决策树尽可能的生长,没有剪枝过程,最后重复上述步骤来生成更多的决策树。 ? ? 影响这个算法的正确率的因素如下: 任意两棵随机数的相关性越大,模型的错误率就会增加 森林里的树的分类正确率越高,每棵树分类越精确,模型错误率就会降低. 袋外错误率(oob error) 这个算法的目的就是找到最优的n,因为更小的n会带来更小的相关性,而更大的n会有分类就会更精准,而我们用来判断n的好坏的标准就是oob(out-of-bag)?error。我们可以直接从内部获得误差的一个无偏统计而不需要交叉验证(cross validation)因为在生成的过程中就已经是随机采样了,而我们知道会有大约1/3的样本不会参与到一棵决策树的训练中,我们将这1/3的样本成为这棵树的oob样本。这时候我们计算袋外错误率的步骤为:对于每个样本分别计算对于它是oob样本的树对它的分类情况,然后以投票的方式得到最终的分类,最后以误分个数除以样本总数来计算随机森林的oob error。 随机森林优缺点优点: ?可以在内部获得泛化误差的无偏估计 不容易过拟合 实现快速,简单 对于缺失的数据集也能做到很高的准确度 ?可以平衡不平衡的数据集的误差 能够判断特征的重要程度 不需要特征选择进行对高纬度样本的训练 缺点: 会在噪音较大的数据集上过拟合 虽说训练速度以及够快了,但还是比单棵决策树慢 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年12日历 | -2024/12/28 16:55:12- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |