Forest

【转】对random_state参数的理解

耗尽温柔 提交于 2020-05-05 21:56:48
转自:https://blog.csdn.net/az9996/article/details/86616668 在学习机器学习的过程中,常常遇到random_state这个参数,下面来简单叙述一下它的作用。 作用:控制随机状态。 原因:为什么需要用到这样一个参数random_state(随机状态)? 在此先简单罗列三种情况: 1、在构建模型时: forest = RandomForestClassifier(n_estimators=100, random_state=0) forest.fit(X_train, y_train) 2、在生成数据集时: X, y = make_moons(n_samples=100, noise=0.25, random_state=3) 3、在拆分数据集为训练集、测试集时: X_train, X_test, y_train, y_test = train_test_split( cancer.data, cancer.target, stratify=cancer.target, random_state=42) 如果不设置random_state的话会怎样? 例如1中,每次构建的模型是不同的。 例如2中,每次生成的数据集是不同的。 例如3中,每次拆分出的训练集、测试集是不同的。 之所以会这样,是因为模型的构建、数据集的生成

NOIP2018提高组模拟题(五)

扶醉桌前 提交于 2020-05-05 11:43:16
字符串(string) Description 小林与亮亮正在做一个游戏。小林随意地写出一个字符串,字符串只由大写 字母组成,然后指定一个非负整数 m,亮亮可以进行至多 m 次操作,每次操作 为交换相邻两个字符。亮亮的目标是使得操作后的字符串出现最长相同的字符的 长度最大。你能帮亮亮计算一下这个最大长度是多少吗? Input 第一行一个字符串 S。 第二行一个整数 m。 Output 只有一个整数,表示所求的最大长度。 表示刚开始想了一个小时的$DP$ 然后还出样例了, 要不是手出了一组样例就凉了 然后还有20分钟的时候,发现是个 贪心+递归 将两侧的向中间移动显然更优 . 容易发现,同种字母移动才会产生影响. 因此直接枚举每种字母,记录其位置. 由于 从某一位置到目标位置的交换次数可求 .所以这样是可做的. $\color{red}{官方题解}$表示没看太懂 考察内容:字符串、枚举与贪心 字符串长度不超过 50,我们就可以枚举哪一个字符不动,其他相同字符向它靠近,左 右两边相同字符计算出它们与选定字符相邻需要移动几次,以此为关键值从小到大排序,贪心地处理即可。 代码 #include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #define R register using namespace

第十四届华中科技大学程序设计竞赛 K  Walking in the Forest【二分答案/最小化最大值】

故事扮演 提交于 2020-05-04 10:21:24
链接:https://www.nowcoder.com/acm/contest/106/K 来源:牛客网 题目描述 It’s universally acknowledged that there’re innumerable trees in the campus of HUST. Now you're going to walk through a large forest. There is a path consisting of N stones winding its way to the other side of the forest. Between every two stones there is a distance. Let di indicates the distance between the stone i and i+1.Initially you stand at the first stone, and your target is the N-th stone. You must stand in a stone all the time, and you can stride over arbitrary number of stones in one step. If you stepped from the stone i to

2019ccpc秦皇岛/Gym102361 F Forest Program 仙人掌上dfs

家住魔仙堡 提交于 2020-05-01 22:05:17
题意: 某地沙漠化严重,沙漠里长了很多仙人掌,现在要让你删掉仙人掌的一些边让它的所有连通分量都是树,就完成了沙漠绿化(什么鬼逻辑?)让你计算删边的方案数。 仙人掌是一种特殊的图,它的每一条边只属于1或0条回路。 题解: 画几个仙人掌就能明白,仙人掌就是一棵树上的某些点长出了回路,可以把仙人掌分成若干个回路和不属于回路的边,要把仙人掌删成树不难,每个回路至少删掉一条边,即减掉一种所有回路边都不删的的方案,所有非回路边删或不删均可,假设非回路边有$a_0$个,第i个回路有$a_i$条边$(i=1,2....n)$,容易得出方案数是$2^{a_0}*\prod _{i=1}^{n} 2^{a_i}-1$ 难点在于怎样找出仙人掌的所有回路,一种方法是dfs,记录边的深度,一旦从深度高的边dfs到了深度低的边,即找到了一个环,dfs过程中有如下几种情况: 1,dfs到了父亲,不用管,直接continue 2,dfs到了深度比自己浅的点,就是找到了环,环边数为两点深度之差+1,如下图从5到1 3,dfs到了 比自己深度深的点,则是访问到了统计过的环,也不管 4,dfs到了未标记深度的点,将此点深度记为父节点深度+1并从此点开始dfs 此题坑点在于图未必是连通图,需要从每一个未标记深度的点开始dfs #include<iostream> #include <vector> #include

6D姿态估计从0单排——看论文的小鸡篇——Learning 6D Object Pose Estimation using 3D Object Coordinates

淺唱寂寞╮ 提交于 2020-04-30 22:03:54
这篇文章内容是真的多,而且大段的文字,图和公式都很少,看起来很枯燥。。。说白了就是把整个模型拆成5 5 5的125个部分,这样一个像素点都扔进去随机森林里面训练和匹配,然后查出来他最可能的类别和在一个模型中位置。就一如他的开头这句话:The key new concept is a representation in form of a dense 3D object coordinate labelling paired with a dense class labelling.(关键的新概念就是将一个稠密的3D模型坐标标记搭配稠密的类别标记组建而成的表达方式) 使用LHCF(Latent-Class Hough Forests):拆分模型成多个patch、用patch去匹配,并且使用random forest加速匹配速度,从而更快地找到对应的位置 The key new concept is a representation in form of a dense 3D object coordinate labelling paired with a dense class labelling. template-based techniques have in our view two fundamental shortcomings. Firstly, they match

机器学习算法 --- Pruning (decision trees) & Random Forest Algorithm

限于喜欢 提交于 2020-04-28 09:08:05
一、Table for Content   在之前的文章中我们介绍了Decision Trees Agorithms,然而这个学习算法有一个很大的弊端,就是很容易出现 Overfitting ,为了解决此问题人们找到了一种方法,就是对Decision Trees 进行 Pruning(剪枝)操作。   为了提高Decision Tree Agorithm的正确率和避免overfitting,人们又尝试了对它进行集成,即使用多棵树决策,然后对于分类问题投票得出最终结果,而对于回归问题则计算平均结果。下面是几条是本篇要讲的主要内容。 Pruning (decision trees) What is Random forest algorithm? Why Random Forest algorithm? How Random Forest algorithm works? Advantages of Random Forest algorithm. Random Forest algorithm real life example.  本文主要参考一下几篇文章,有能力的读者可自行前往阅读原文:   1. Wikipedia上的 Pruning (decision trees) 和 Random Froest algorithm 。   2. Dataaspirant上的《 HOW

【学习总结】《大话数据结构》- 第6章-树

我的梦境 提交于 2020-04-28 01:22:01
【学习总结】《大话数据结构》- 总 第6章树-代码链接 启示: 树 目录 <!-- GFM-TOC --> 6.1 开场白 6.2 树的定义 6.3 树的抽象数据类型 6.4 树的存储结构 6.5 二叉树的定义 6.6 二叉树的性质 6.7 二叉树的存储结构 6.8 遍历二叉树 6.9 二叉树的建立 6.10 线索二叉树 6.11 树、森林与二叉树的转换 6.12 赫夫曼树及其应用 6.13 总结回顾 6.14 结尾语 <!-- GFM-TOC --> ======================================== 6.1 开场白 一些可以略过的场面话... ======================================== 6.2 树的定义 定义 注意: n>0时:根节点是唯一的,不可能存在多个根节点。 m>0时:子树的个数没有限制,但它们一定互不相交。 结点分类 结点的度(degree):结点拥有的子树数 叶结点(leaf)或终结点:度为0的结点 非终端结点或分支结点:度不为0的结点 内部结点:除根节点外,分支结点也称为内部结点 树的度:树内各结点的度的最大值 结点间关系 孩子(child):结点的子树的根称为该结点的孩子 双亲(parent):该结点称为孩子的双亲(父母同体,唯一的一个) 兄弟(sibling):同一个双亲的孩子之间互称兄弟

unity 3d开发的大型网络游戏

限于喜欢 提交于 2020-04-27 18:51:13
unity 3d开发的大型网络游戏 一、总结 1、unity的 官网 上面应该有游戏列表 2、 unity3D是很好的3d游戏引擎,也支持2d,也能做很多画面精良的3A级游戏 3、 范围 :电脑游戏,手机游戏,网页游戏 3、 案例 :unity3d开发的 网页游戏 有坦克英雄、新仙剑Online、蒸汽之城、绝代双骄等, 手机游戏 有 炉石传 说、 神庙逃亡 、武士2、神庙逃亡2...... 二、哪些游戏是用unity3d做的? unity3D是如今绝大多数游戏开发团队的首选3D引擎,并且它在2D上的表现也及为优秀。它可以轻松解决很多其它引擎不能解决的问题,哪些游戏是用unity3d做的?小编特意帮大家问了: 有的网友说unity3d开发的游戏,多数都是用在iphone以及android等手机端游戏。 比较出名的是 武士系列游戏,涂鸦保龄球,城堡勇士,3D方块贴图,以及很多僵尸游戏。 还有网友说:unity3d开发的 网页游戏 有坦克英雄、新仙剑Online、蒸汽之城、绝代双骄等, 手机游戏 有炉石传说、神庙逃亡、武士2、神庙逃亡2...... 具体来了解下unity3d吧: Unity的游戏和应用可以用C#语言,UnityScript(一种JavaScript的扩展)或者Boo(一种受Python启发的语言)来开发,其编译过程根据不同的目标平台而变化。 在PC

Ensemble Learning

别说谁变了你拦得住时间么 提交于 2020-04-27 05:53:22
Ensemble Learning是机器学习里最常见的建模方法,RandomForest 和 GBDT 采用了Ensemble Learning模式,只是具体方法不同。 下面简单翻译下一 https://www.analyticsvidhya.com/blog/2015/09/questions-ensemble-modeling/ 这篇文章,再来理解一下Ensemble Learning模式。 与Ensemble Learning相关的常见问题 1、什么是Ensemble Learning? 2、什么是bagging, boosting, stacking? 3、同一个ML算法怎么做集成(ensemble)? 4、不同的模型如何确定权重? 5、ensemble模型有什么优势? 下面一个一个来回答。 1、什么是Ensemble Learning? 文中举了一个垃圾邮件检测的例子,简单来说就是,仅凭单个规则很难准确识别垃圾邮件,但是使用多条规则会提高识别的准确率。这个例子是为了说明,ensemble learning是一个“多合一”的方法。“多”指的是多个个体模型(individual models),注意,并非是多个独立模型;“合一”指的是多个模型共同形成一个识别/回归结果。Ensemble的一般特点是,多个模型间的相关性越低,合成之后的识别/回归效果越好。 具体的合成方法有多种

5. 集成学习(Ensemble Learning)GBDT

南楼画角 提交于 2020-04-27 05:40:26
1. 集成学习(Ensemble Learning)原理 2. 集成学习(Ensemble Learning)Bagging 3. 集成学习(Ensemble Learning)随机森林(Random Forest) 4. 集成学习(Ensemble Learning)Adaboost 5. 集成学习(Ensemble Learning)GBDT 6. 集成学习(Ensemble Learning)算法比较 7. 集成学习(Ensemble Learning)Stacking 1. 前言 如果读了我之前的几篇集成学习的博文,相信读者们已经都对集成学习大部分知识很有了详细的学习。今天我们再来一个提升,就是我们的集大成者GBDT。GBDT在我们的Kaggle的比赛中基本获得了霸主地位,大部分的问题GBDT都能获得异常好的成绩。 2. GBDT原理 GBDT的中文名叫梯度提升树,GBDT也是集成学习Boosting家族的成员,但是却和传统的Adaboost有很大的不同。回顾下Adaboost,我们是利用前一轮迭代弱学习器的误差率来更新训练集的权重,这样一轮轮的迭代下去。GBDT也是迭代,使用了前向分布算法,但是弱学习器限定了只能使用CART回归树模型,同时迭代思路和Adaboost也有所不同。 在GBDT的迭代中,假设我们前一轮迭代得到的强学习器是$f_{t-1}(x)$, 损失函数是