stacking原理,整流变压器的应用
stacking原理,整流变压器的应用详细介绍
本文目录一览: 随机森林算法梳理
全称Bootstrap Aggregation的集成算法。每个基学习器都会对训练集进行 有放回抽样得到子训练集 ,比较著名的采样法为 0.632 自助法。每个基学习器 基于不同子训练集进行训练,并综合所有基学习器的预测值得到最终的预测结果 。 Bagging 常用的综合方法是投票法,票数最多的类别为预测类别 。
Boosting 训练过程为阶梯状, 基模型的训练是有顺序的,每个基模型都会在前一个基模型学习的基础上进行学习,最终综合所有基模型的预测值产生最终的预测结果,用的比较多的综合方式为加权法 。
Stacking 是 先用全部数据训练好基模型,然后每个基模型都对每个训练样本进行的预测,其预测值将作为训练样本的特征值,最终会得到新的训练样本,然后基于新的训练样本进行训练得到模型,然后得到最终预测结果。
那么,为什么集成学习会好于单个学习器呢?原因可能有三:
训练样本可能无法选择出最好的单个学习器,由于没法选择出最好的学习器,所以干脆结合起来一起用; 假设能找到最好的学习器,但由于算法运算的限制无法找到最优解,只能找到次优解,采用集成学习可以弥补算法的不足; 可能算法无法得到最优解,而集成学习能够得到近似解。比如说最优解是一条对角线,而单个决策树得到的结果只能是平行于坐标轴的,但是集成学习可以去拟合这条对角线。
不是所有集成学习框架中的基模型都是弱模型。Bagging 和 Stacking 中的基模型为强模型(偏差低,方差高),而Boosting 中的基模型为弱模型(偏差高,方差低)。
对于 Bagging 来说,每个基模型的权重等于 1/m 且期望近似相等,故我们可以得到:
通过上式我们可以看到:
在此我们知道了为什么 Bagging 中的基模型一定要为强模型,如果 Bagging 使用弱模型则会导致整体模型的偏差提高,而准确度降低。Random Forest 是经典的基于 Bagging 框架的模型,并在此基础上通过引入特征采样和样本采样来降低基模型间的相关性,在公式中显著降低方差公式中的第二项,略微升高第一项,从而使得整体降低模型整体方差。
对于 Boosting 来说,由于基模型共用同一套训练集,所以基模型间具有强相关性,故模型间的相关系数近似等于 1,针对 Boosting 化简公式为:
通过观察整体方差的表达式我们容易发现:
基于 Boosting 框架的 Gradient Boosting Decision Tree 模型中基模型也为树模型,同 Random Forrest,我们也可以对特征进行随机抽样来使基模型间的相关性降低,从而达到减少方差的效果。
?那么这里有一个小小的疑问,Bagging 和 Boosting 到底用的是什么模型呢?
随机森林就是通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树,而它的本质属于集成学习方法。随机森林的名称中有两个关键词,一个是“随机”,一个就是“森林”。“森林”我们很好理解,一棵叫做树,那么成百上千棵就可以叫做森林了,这也是随机森林的主要思想--集成思想的体现。然而,bagging的代价是不用单棵决策树来做预测,具体哪个变量起到重要作用变得未知,所以bagging改进了预测准确率但损失了解释性。
“森林”容易理解,就是由很多“树”组成,那么“随机”体现在什么方面呢?
(1)训练集随机的选取:如果训练集大小为N,对于每棵树而言,随机且有放回地从训练集中的抽取N个训练样本(这种采样方式称为bootstrap sample方法),作为该树的训练集;这样保证了每颗树的训练集都不同,从而构建的树也不同
(2)特征的随机选取:从M个特征中选取m个特征,这样可以避免某个特征与分类结果具有强相关性,如果所有特征都选取,那么所有的树都会很相似,那样就不够“随机”了
另外还有一点,随机森林法构建树的时候不需要做额外的剪枝操作。个人理解:因为前两个“随机”操作,以及多颗树的建立,已经避免了过拟合现象,所以这种情况下,我们只需要让每棵树在它自己的领域内做到最好就可以了。
随机森林算法的预测性能与两个因素有关:
(1)森林中任意两棵树的相关性,相关性越强,则总体性能越容易差
(2)森林中每棵树的预测性能,每棵树越好,则总体性能越好
其实可以理解为要求“好而不同”。然而特征数m的选择越大,则相关性与个体性能都比较好,特征数m选择越小,则相关性与个体性能都更小,所以m的选择影响着随机森林的预测性能。
在包括N个样本的数据集中,采用有放回的抽样方式选择N个样本,构成中间数据集,然后在这个中间数据集的所有特征中随机选择几个特征,作为最终的数据集。以上述方式构建多个数据集;一般回归问题选用全部特征,分类问题选择全部特征个数的平方根个特征
利用CART为每个数据集建立一个完全分裂、没有经过剪枝的决策树,最终得到多棵CART决策树;
根据得到的每一个决策树的结果来计算新数据的预测值。
由于RF在实际应用中的良好特性,基于RF,有很多变种算法,应用也很广泛,不光可以用于分类回归,还可以用于特征转换,异常点检测等。下面对于这些RF家族的算法中有代表性的做一个总结。
extra trees是RF的一个变种, 原理几乎和RF一模一样,有区别有:
对于每个决策树的训练集,RF采用的是 随机采样bootstrap来选择采样集作为每个决策树的训练集 ,而extra trees一般不采用随机采样,即 每个决策树采用原始训练集。
在选定了划分特征后,RF的决策树会基于基尼系数,均方差之类的原则,选择一个最优的特征值划分点,这和传统的决策树相同。但是extra trees比较的激进,他会随机的选择一个特征值来划分决策树。
从第二点可以看出, 由于随机选择了特征值的划分点位,而不是最优点位,这样会导致生成的决策树的规模一般会大于RF所生成的决策树。 也就是说,模型的方差相对于RF进一步减少,但是偏倚相对于RF进一步增大。在某些时候,extra trees的泛化能力比RF更好。
Totally Random Trees Embedding(以下简称 TRTE)是一种 非监督学习的数据转化方法。它将低维的数据集映射到高维 ,从而让映射到高维的数据更好的运用于分类回归模型。我们知道,在支持向量机中运用了核方法来将低维的数据集映射到高维,此处TRTE提供了另外一种方法。
TRTE在数据转化的过程也使用了类似于RF的方法,建立T个决策树来拟合数据。当决策树建立完毕以后,数据集里的每个数据在T个决策树中叶子节点的位置也定下来了。比如我们有3颗决策树,每个决策树有5个叶子节点,某个数据特征x划分到第一个决策树的第2个叶子节点,第二个决策树的第3个叶子节点,第三个决策树的第5个叶子节点。则x映射后的特征编码为(0,1,0,0,0, 0,0,1,0,0, 0,0,0,0,1), 有15维的高维特征。这里特征维度之间加上空格是为了强调三颗决策树各自的子编码。
映射到高维特征后,可以继续使用监督学习的各种分类回归算法了。
Isolation Forest(以下简称IForest)是一种 异常点检测的方法。 它也使用了类似于RF的方法来检测异常点。
对于在T个决策树的样本集,IForest也会对训练集进行随机采样,但是采样个数不需要和RF一样,对于RF,需要采样到采样集样本个数等于训练集个数。但是IForest不需要采样这么多,一般来说,采样个数要远远小于训练集个数?为什么呢?因为我们的目的是异常点检测,只需要部分的样本我们一般就可以将异常点区别出来了。
对于每一个决策树的建立, IForest采用随机选择一个划分特征,对划分特征随机选择一个划分阈值。这点也和RF不同。
另外,IForest一般会选择一个比较小的最大决策树深度max_depth,原因同样本采集,用少量的异常点检测一般不需要这么大规模的决策树。
对于异常点的判断,则是将测试样本点x拟合到T颗决策树。计算在每颗决策树上该样本的叶子节点的深度ht(x),从而可以计算出平均高度h(x)。此时我们用下面的公式计算样本点x的异常概率:
其中,m为样本个数。c(m)的表达式为:
s(x,m)的取值范围是[0,1],取值越接近于1,则是异常点的概率也越大。
RF的主要优点有: 训练可以 高度并行化 ,对于大数据时代的大样本训练速度有优势。
由于可以随机选择决策树节点划分特征,这样在 样本特征维度很高的时候,仍然能高效的训练模型。
在训练后,可以给出各个特征对于输出的重要性
由于采用了随机采样,训练出的模型的 方差小,泛化能力强。
相对于Boosting系列的Adaboost和GBDT, RF实现比较简单 。
对部分特征缺失不敏感。
缺点: 在某些噪音比较大的样本集上, RF模型容易陷入过拟合。
取值划分比较多的特征容易对RF的决策产生更大的影响,从而影响拟合的模型的效果。
数据维度相对低(几十维),同时对准确性有较高要求时。 因为不需要很多参数调整就可以达到不错的效果,基本上不知道用什么方法的时候都可以先试一下随机森林。
sklearn.ensemble.RandomForestClassifier(n_estimators=100, criterion='gini', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features='auto', max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, bootstrap=True, oob_score=False, n_jobs=None, random_state=None, verbose=0, warm_start=False, class_weight=None)
模型融合方法总结
????????一般来说,通过融合多个不同的模型,可能提升机器学习的性能,这一方法在各种 机器学习比赛 中广泛应用,比如在kaggle上的otto产品分类挑战赛①中取得冠军和亚军成绩的模型都是融合了1000+模型的“庞然大物”。
????????常见的集成学习&模型融合方法包括:简单的Voting/Averaging(分别对于分类和回归问题)、Stacking、Boosting和Bagging。
????????在不改变模型的情况下,直接对各个不同的模型预测的结果,进行投票或者平均,这是一种简单却行之有效的融合方式。
????????比如对于 分类问题 ,假设有三个相互独立的模型,每个正确率都是70%,采用少数服从多数的方式进行投票。那么最终的正确率将是:
????????即结果经过简单的投票,使得正确率提升了8%。这是一个简单的概率学问题——如果进行投票的模型越多,那么显然其结果将会更好。但是其 前提条件是模型之间相互独立,结果之间没有相关性。越相近的模型进行融合,融合效果也会越差。
????????比如对于一个正确输出全为1的测试,我们有三个很相近的的预测结果,分别为:
进行投票其结果为:
而假如我们的各个预测结果之间有很大差异:
其投票结果将为:
????????可见模型之间差异越大,融合所得的结果将会更好。//这种特性不会受融合方式的影响。 注意这里所指模型之间的差异,并不是指正确率的差异,而是指模型之间相关性的差异。
? ??????对于 回归问题 ,对各种模型的预测结果进行平均,所得到的结果通过能够减少过拟合,并使得边界更加平滑,单个模型的边界可能很粗糙。这是很直观的性质,随便放张图②就不另外详细举例了。
????????在上述融合方法的基础上,一个进行改良的方式是对各个投票者/平均者分配不同的权重以改变其对最终结果影响的大小。对于正确率低的模型给予更低的权重,而正确率更高的模型给予更高的权重。这也是可以直观理解的—— 想要推翻专家模型(高正确率模型)的唯一方式,就是臭皮匠模型(低正确率模型)同时投出相同选项的反对票 。 具体的对于权重的赋值,可以用正确率排名的正则化等。
????????这种方法看似简单,但是却是下面各种“高级”方法的基础。
????????Boosting是一种将各种弱分类器串联起来的集成学习方式,每一个分类器的训练都依赖于前一个分类器的结果,顺序运行的方式导致了运行速度慢。和所有融合方式一样,它不会考虑各个弱分类器模型本身结构为何,而是对训练数据(样本集)和连接方式进行操纵以获得更小的误差。但是为了将最终的强分类器的误差均衡,之前所选取的分类器一般都是相对比较弱的分类器,因为一旦某个分类器较强将使得后续结果受到影响太大。 所以多用于集成学习而非模型融合(将多个已经有较好效果的模型融合成更好的模型)。
????????这里引用知乎专栏 《【机器学习】模型融合方法概述》③处引用的加州大学欧文分校Alex Ihler教授的两页PPT:
????????其基本工作机制如下:
? ? ? ? 1、从初始样本集中训练出一个基学习器;
? ? ? ? 2、根据基学习器的表现对样本集分布进行调整,使得做错的样本能在之后的过程中受到更多的关注;
? ? ? ? 3、用调整后的样本集训练下一个基学习器;
? ? ? ? 4、重复上述步骤,直到满足一定条件。
? ?????? 注意,一般只有弱分类器都是同一种分类器(即同质集成)的时候,才将弱分类器称为基学习器,如果是异质集成,则称之为个体学习器。由于不是本文重点,所以此处不作区分。特此说明。
????????最终将这些弱分类器进行 加权相加 。
????????常见的Boosting方法有Adaboost、GBDT、XGBOOST等。 //下面仅从思想层次上简单介绍各种方法,具体的算法推理公式推导以及可用的工具包等参考本文附录。
????????Bagging是 Bootstrap?Aggregating 的缩写。这种方法同样不对模型本身进行操作,而是作用于样本集上。采用的是随机有放回的选择训练数据然后构造分类器,最后进行组合。与Boosting方法中各分类器之间的相互依赖和串行运行不同,Bagging方法中基学习器之间不存在强依赖关系,且同时生成并行运行。
????????其基本思路为:
? ? ? ? 1、在样本集中进行K轮有放回的抽样,每次抽取n个样本,得到K个训练集;
? ? ? ? 2、分别用K个训练集训练得到K个模型。
? ? ? ? 3、对得到的K个模型预测结果用投票或平均的方式进行融合。
? ?????? 在这里,训练集的选取可能不会包含所有样本集,未被包含的数据成为包/袋外数据,可用来进行包外误差的泛化估计。每个模型的训练过程中,每次训练集可以取全部的特征进行训练,也可以随机选取部分特征训练,例如极有代表性的随机森林算法就是每次随机选取部分特征。
????????下面仅从思想层面介绍随机森林算法:
? ? ? ? 1、在样本集中进行K轮有放回的抽样,每次抽取n个样本,得到K个训练集,其中n一般远小于样本集总数;
? ? ? ? 2、选取训练集,在整体特征集M中选取部分特征集m构建决策树,其中m一般远小于M;
? ? ? ? 3、在构造每棵决策树的过程中,按照选取最小的基尼指数进行分裂节点的选取进行决策树的构建。决策树的其他结点都采取相同的分裂规则进行构建,直到该节点的所有训练样例都属于同一类或者达到树的最大深度;
? ? ? ? 4、重复上述步骤,得到随机森林;
? ? ? ? 5、多棵决策树同时进行预测,对结果进行投票或平均得到最终的分类结果。
????????多次随机选择的过程,使得随机森林不容易过拟合且有很好的抗干扰能力。
优化方式上 >
? ??????在机器学习中,我们训练一个模型通常是将定义的Loss最小化的过程。但是单单的最小化loss并不能保证模型在解决一般化的问题时能够最优,甚至不能保证模型可用。训练数据集的Loss与一般化数据集的Loss之间的差异被称为generalization error。
????????Variance过大会导致模型过拟合,而Bias过大会使得模型欠拟合。
? ? ????? Bagging 方法主要通过降低 Variance 来降低 error , Boosting 方法主要通过降低 Bias 来降低 error 。
????????Bagging方法采用多个不完全相同的训练集训练多个模型,最后结果取平均。由于
????????所以最终结果的Bias与单个模型的Bias相近,一般不会显著降低Bias。????
????????另一方面,对于Variance则有:
????????Bagging的多个子模型由不完全相同的数据集训练而成,所以子模型间有一定的相关性但又不完全独立,所以其结果在上述两式的中间状态。因此可以在一定程度上降低Variance从而使得总error减小。
????????Boosting方法从优化角度来说,是用forward-stagewise这种贪心法去最小化损失函数
。所谓forward-stagewise,就是在迭代的第n步,求解新的子模型f(x)及步长a(或者称组合系数),来最小化
,这里
是前n步得到的子模型的和。因此Boosting在最小化损失函数,Bias自然逐步下降,而由于模型间强相关,不能显著降低Variance。
????????Bagging里面每个分类器是强分类器,因为他降低的是方差,方差过高需要降低是过拟合。
????????boosting里面每个分类器是弱分类器,因为他降低的是偏差,偏差过高是欠拟合。
样本选择上>
????????Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
????????Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。
样例权重 >
????????Bagging:使用均匀取样,每个样例的权重相等
????????Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大
预测函数 >
????????Bagging:所有预测函数的权重相等。
????????Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重
并行计算 >
????????Bagging:各个预测函数可以并行生成
????????Boosting:理论上各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。计算角度来看,两种方法都可以并行。bagging,random forest并行化方法显而意见。boosting有强力工具stochastic gradient boosting
????????接下来介绍在 各种机器学习比赛中 被誉为“七头龙神技”的Stacking方法。
? ?????? (但因其模型的庞大程度与效果的提升程度往往不成正比,所以一般很难应用于实际生产中)
? ??????下面以一种易于理解但不会实际使用的两层的stacking方法为例,简要说明其结构和工作原理: (这种模型问题将在后续说明)
????????假设我们有三个基模型M1,M2,M3,用训练集对其进行训练后,分别用来预测训练集和测试集的结果,得到P1,T1,P2,T2,P3,T3
????????这种方法的问题在于,模型M1/2/3是我们用整个训练集训练出来的,我们又用这些模型来预测整个训练集的结果,毫无疑问过拟合将会非常严重。因此在实际应用中往往采用 交叉验证 的方法来解决过拟合问题。
????????首先放几张图⑤,我们着眼于Stacking方法的第一层,以5折交叉验证为例说明其工作原理:
1、首先我们将训练集分为五份。
2、对于每一个基模型来说,我们用其中的四份来训练,然后对未用来的训练的一份训练集和测试集进行预测。然后改变所选的用来训练的训练集和用来验证的训练集,重复此步骤,直到获得完整的训练集的预测结果。
3、对五个模型,分别进行步骤2,我们将获得5个模型,以及五个模型分别通过交叉验证获得的训练集预测结果。即P1、P2、P3、P4、P5。
4、用五个模型分别对测试集进行预测,得到测试集的预测结果:T1、T2、T3、T4、T5。
5、将P1~5、T1~5作为下一层的训练集和测试集。在图中分别作为了模型6的训练集和测试集。
????????Stacking方法的整体结构如下图所示:
????????Blending是一种和Stacking很相像的模型融合方式,它与Stacking的区别在于训练集不是通过K-Fold的CV策略来获得预测值从而生成第二阶段模型的特征,而是建立一个Holdout集,例如10%的训练数据,第二阶段的stacker模型就基于第一阶段模型对这10%训练数据的预测值进行拟合。
????说白了,就是把Stacking流程中的K-Fold CV 改成HoldOut CV。
????以第一层为例,其5折HoldOut交叉验证将如下图③所示:
? ?????? 需要注意的是,网上很多文章在介绍 Stacking 的时候都用了上面 Blending 的图还强行解释了的,比如③、⑤等。
? ?? Stacking 与 Blending 相比 ,Blending的优势在于:
? ? 1、Blending比较简单,而Stacking相对比较复杂;
? ? 2、能够防止信息泄露:generalizers和stackers使用不同的数据;
? ? 3、不需要和你的队友分享你的随机种子;
????而缺点在于:
? ? 1、只用了整体数据的一部分;
? ? 2、最终模型可能对留出集(holdout set)过拟合;
? ? 3、Stacking多次交叉验证要更加稳健。
????文献②中表示两种技术所得的结果都相差不多,如何选择取决于个人喜好。如果难以抉择的话,可以同时使用两种技术并来个第三层将其结果合并起来。
以上为本人学习的总结,很多内容都未经实际验证,如果发现总结中有错误或与实际表现不符,敬请指正。
【参考文献】
①https://www.kaggle.com/c/otto-group-product-classification-challenge
②https://mlwave.com/kaggle-ensembling-guide/
③https://zhuanlan.zhihu.com/p/25836678
④https://blog.csdn.net/Mr_tyting/article/details/72957853
⑤https://blog.csdn.net/data_scientist/article/details/78900265
⑥https://mlwave.com/human-ensemble-learning/
⑦https://blog.csdn.net/sinat_29819401/article/details/71191219
⑧https://blog.csdn.net/zwqjoy/article/details/80431496
⑨http://lib.csdn.net/article/machinelearning/35135
弱学习器的结合策略主要有
弱学习器的结合策略主要有集成学习。
弱学习器以分类来说,分类效果要优于随机分类,也就是准确率高于50%的学习器,且计算速度快。通常以决策树和神经网络为主,一组弱学习器可以是一样的,也可以不一样,目前常用的算法还是以同样的为主。
集成学习的原理:集成学习就是博采众长,将一组弱学习器通过一定方法给合在一起得到强学习器,这个强学习器的泛化能力相对任何一个弱学习器都要好,甚至还有起到三个臭皮匠,赛过诸葛亮的效果。
集成学习的组合方法
当使用stacking的结合策略时,我们不是对弱学习器的结果做简单的逻辑处理,而是再加上一层学习器。也就是说,我们将训练集弱学习器的学习结果作为输入,将训练集的输出作为输出,重新训练一个学习器来得到最终结果。
投票法是用于分类问题,由多个学习器投票,哪个类别最多就是哪个。所谓的少数服从多数,如果出现数量相同,那就在相同中随机选择一个,绝对多数投票法,在相对多数投票结果基础上,还要过半才算有效。加权投票法赋予不同学习器不同的权重,再加权求和。
随机森林原理与Sklearn参数详解
目录
1、集成算法概述
2 、 Sklearn中RandomForestClassifier重要参数详解
3、Sklearn中RandomForestRegressor重要参数详解
4、附录
5、总结
1、集成算法概述: 集成算法的目标是多个评估器建模的结果,汇总后得到一个综合结果,以此来获取比单个模型更好的回归或分类表现。多个模型集成成为的模型叫集成评估器,单个模型叫基评估器。通常说有三种集成算法:装袋法(Bagging)、提升法(Boosting)和stacking。装袋法的基本思想是构建多个相互独立的基评估器,然后通过预测平均或多数表决原则来决定集成评估器的结果。装袋法的典型代表就是随机森林(RandomForest)。
2、RandomForestClassifier重要参数:
n_estimators: integer, optional (default=100), 森林中基评估器的数量,即树的数量。n_estimators越大模型效果越好,但达到一定程度时,精确性趋于稳定。n_estimators越大模型的计算量越大,需要的内存也越大。
random_state: int, RandomState instance or None, optional (default=None), 控制树的生成模式。在DecisionTreeClassifier中random_state生成随机的一棵树,这里的参数控制的是随机生成一片森林模式。 用袋装法集成时,基分类器应当是相互独立的,是不同的。
bootstrap: boolean, optional (default=True), 要让基分类器尽量都不一样,一种方式是使用不同的训练数据集来训练不同的树。而装袋法采用的是有放回采样法,来确保每棵树的随机性。booststrap就是用来控制抽样技术的参数。
oob_score: bool (default=False), 是否启用袋外数据做测试。有放回采样策略中,自助数据集平均包含63%的原始数据被抽中(每个样本从原始数据抽中到自助集的概率为: =63%左右),也就是说袋外数据(out of bag data? 简称oob数据)大致占37%。在使用随机森林时,我们可以不划分测试和训练集,只要开启袋外数据支持,就可以用袋外数据测试我们的模型。然后这并不绝对,如果n足够大,则没有数据落入袋外,自然无法使用oob数据来测试模型了。如果需要用袋外数据做测试,则设置该参数为True,实例化并训练模型完成后,可以通过oob_score_来查看真是落入袋外的数据量。
重要属性与接口:
除了estimators_和oob_socre_这两个属性外,作为树模型也有feature_importances这个属性。
常用的接口主要有:apply,fit,predict和score。除此之外,还需要注意随机森林的predict_proba接口,该接口返回预测数据的被分到每一类标签的概率。如果是二分类,则predict_proba返回的数值大于0.5时被划分为1,否则为0。(在sklearn的随机森林中predict_proba返回每棵树的概率,然后取平均概率,从而根据概率值是否大于0.5划分为1,否则为0,来决定样本分类的)
Bagging要求基分类器相互独立,袋装法另一个必要条件是:基分类器的误差率要小于0.5,即准确率大于0.5,集成效果才好于基分类器。所以使用随机森林前,先要观察各基分类器是否都有至少50%的预测正确率。
3、RandomForestRegressor重要参数:
criterion:string, optional (default=”mse”)
1、输入“mse”使用均方误差mean squared err(MSE),父节点和子节点之间的均方误差的差额将被用来作为特征选择的标准,这种方法通过使用叶子节点的均值来最小化L2损失。
2、输入“friedman_mse”使用费尔德曼均方误差,这种指标使用费尔德曼针对潜在分枝中的问题改进后的均方误差。
3、输入“mae”使用绝对平均误差MAE(mean absolute error),这种指标使用叶节点的中值来最小化L1损失。
,
其中N是样本数量,i是每一个数据样本,fi是模型回归出的数值,yi是样本点i实际的数值标签。因此MSE的本质是回归值与真实值的差异。 在回归树中,MSE不仅是最优的分枝指标,也是最常用的衡量回归树回归质量的指标。
回归树接口:
score: 返回的是R平方,并不是MSE。R平方定义如下:
, , ,
其中u是残差平方和(MSE*N),v是总平方和,N是样本数量,i是每个样本,fi是模型回归出的值,yi是样本点i的实际数值标签。y帽是真实数值标签的平均数。
R2可以为正也可以为负,当残差平方和远远大于模型总平方和时,模型非常糟糕,R2为负;但MSE永远为正。但Sklearn当中使用均方误差作为评判标准时,却是计算“负均方误差”(neg_mean_squared_error)以负数表示。其实就是MSE前加了个负号。
4、附录
参数列表
属性列表
接口列表
5、总结: 本文详细介绍了集成学习中Bagging的典型代表随机森林的工作原理,同时对sklearn中RandomForestClassifier和RandomForestRegressor核心参数、属性、接口进行了介绍。
什么是集成学习
集成学习法
在机器学习的有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好)。集成学习就是组合这里的多个弱监督模型以期得到一个更好更全面的强监督模型,集成学习潜在的思想是即便某一个弱分类器得到了错误的预测,其他的弱分类器也可以将错误纠正回来。
集成方法是将几种机器学习技术组合成一个预测模型的元算法,以达到减小方差(bagging)、偏差(boosting)或改进预测(stacking)的效果。
集成学习在各个规模的数据集上都有很好的策略。
数据集大:划分成多个小数据集,学习多个模型进行组合
数据集小:利用Bootstrap方法进行抽样,得到多个数据集,分别训练多个模型再进行组合
集合方法可分为两类:
序列集成方法,其中参与训练的基础学习器按照顺序生成(例如 AdaBoost)。序列方法的原理是利用基础学习器之间的依赖关系。通过对之前训练中错误标记的样本赋值较高的权重,可以提高整体的预测效果。
并行集成方法,其中参与训练的基础学习器并行生成(例如 Random Forest)。并行方法的原理是利用基础学习器之间的独立性,通过平均可以显著降低错误。
总结一下,集成学习法的特点:
① 将多个分类方法聚集在一起,以提高分类的准确率。
(这些算法可以是不同的算法,也可以是相同的算法。)
② 集成学习法由训练数据构建一组基分类器,然后通过对每个基分类器的预测进行投票来进行分类
③ 严格来说,集成学习并不算是一种分类器,而是一种分类器结合的方法。
④ 通常一个集成分类器的分类性能会好于单个分类器
⑤ 如果把单个分类器比作一个决策者的话,集成学习的方法就相当于多个决策者共同进行一项决策。
地震解释,这是什么原理?就是地震解释是如何获得这些间歇速率、叠加速率的?
首先,interval velocity和stacking velocity分别是层速度和叠加速度的意思。这段英文大概意思是:
从井checkshot数据得到的时深关系和从地震测线得到的叠加速度用来完成地震工区层速度的计算。
叠加速度是根据共深度点时距曲线求得的速度,可以认为是整个地层的速度谱;而层速度是某一个岩石层的速度,如某一个砂层的速度,可以通过叠加速度在不同同相轴间的变化计算出来。应用dix公式转换从3条地震测线和6口井得到的层速度建立了速度模型,完成了从TVT到TVD的转换。
内存墙的解决途径
内存的性能指标主要有“带宽”(Bandwidth)和“等待时间”(Latency),从这两项指标的基本概念出发,更便于我们理解与“内存墙”问题相关的技术发展。内存带宽及其提升技术内存带宽(Bandwidth)指内存在单位时间内通过总线传输的数据量,可以用公式“内存带宽=(传输倍率×总线位宽×工作频率)÷8”进行计算,单位为“字节/秒”(Byte/s)。总线位宽指内存数据总线的位数,工作频率也就是内存的时钟频率,传输倍率是指每条内存数据线在一个时钟脉冲周期内传输数据的次数。显然,提高内存带宽的基本方法当就是公式中决定内存带宽的三个因素,即总线位宽、工作频率和传输倍率。提高内存总线位宽:在现有采用独立内存芯片的架构下,进一步增加内存位宽受到了内存芯片数据线引脚数量的限制,所以通过增加位宽来提升内存带宽的方式,需要采用能有效消除这种引脚限制的新型内存架构。例如受到广泛关注的“内存与处理器集成”技术,就具有通过增加内存位宽来明显提升内存带宽的特点。提高内存工作频率:单纯依靠提高工作频率来提升内存带宽的方法,会受到内存芯片发热量和工艺难度增加等方面的制约,所以采用这种方法进一步提高内存带宽的空间非常有限。提高内存传输倍率:通过增加传输倍率来提升内存带宽的方法对大家来说更为熟悉。例如DDR内存是双倍数据率(Double Data Rate),其每条数据线都能够从存储单元预取2位数据,并分别在时钟脉冲的上升沿和下降沿各传输1位数据,即在一个时钟周期的传输倍率为2,在相同频率下DDR内存的数据传输量是SDRAM内存的2倍。同理,DDR2内存、DDR3内存的传输倍率分别为4、8,而Rambus的“百万兆字节带宽”技术则可将传输倍率提高到32,从而大幅度提升内存的带宽。内存等待时间及其屏蔽技术内存等待时间(Latency),即从处理器向内存发出访问请求到内存发出数据所用的时间,一般用“纳秒”(ns)来度量。相对于处理器的高速处理能力而言,内存等待时间显得过长,在现有内存技术还不能从根本上大幅度降低等待时间的情况下,利用高速缓存技术和并行处理技术来尽量降低“内存墙”的影响目前仍然是有效的方法。内存等待时间屏蔽技术:将处理器可能访问的数据和程序代码预先保存到高速缓存中,尽可能地减少处理器对内存的直接访问,而是从高速的缓存中获取数据,就是一种典型的内存等待时间屏蔽(Latency Hiding)技术。这种基于缓存机制的技术一直是降低“内存墙”影响的常规方法。硬件支持的并行处理技术:虽然由硬件支持的多线程、乱序执行等并行处理技术并不能直接解决“内存墙”问题,但多线程和乱序执行的并行处理机制,能够更有效地减少在处理任务过程中处理器资源被闲置的情况,当处理器处理大量任务时其“资源不被闲置”所产生的累积效应,就能使吞吐量明显增加,因此整体的处理效率就相应地有所提升,从而在一定程度上屏蔽了“内存墙”的影响。更先进的内存与处理器集成技术相比上述单纯降低内存等待时间和提升内存带宽的现有技术,业界还致力于研究更加先进的内存与处理器集成技术。这类技术中最有代表性的就是“在内存中处理”(Processingin Memory,PIM),其基本思路是将内存与多核处理器集成到同一颗芯片中。此外,“智能随机存取存储器”(Intelligent Random Access Memory,IRAM)和“嵌入式动态随机存储器”(Embedded Dynamic Random Access Memory,EDRAM)技术也是基于将内存与处理器集成的原理。PIM技术的优势主要体现在两个方面:一是能够有效降低内存等待时间,由于处理器各核心与内存之间的物理距离明显缩短,核心访问内存的等待时间也随之被有效减少,即由原来的芯片间延时变为芯片内延时;二是具有提升内存带宽的潜力,传统的独立式内存架构由于受到内存芯片引脚数目的限制,难以通过采用增加数据线引脚来提高内存的位宽,而PIM技术则能使核心与内存在同一芯片内部建立更宽的数据传输通道,没有引脚的限制,因而更容易通过增加位宽来提升内存带宽。理论计算表明,PIM技术所具有的这些特点,将有可能使内存的反应时间降低5~10倍,带宽提升50~100倍,能耗降低50%~75%。目前很多厂商都在研发“三维堆叠芯片”(3D Stacking Chip)封装技术,以最终制造出基于3D堆叠的PIM芯片。例如桑迪亚国家实验室(SNL)研发的X-Caliber处理器,就是将DRAM内存堆叠在多核处理器逻辑电路层上的PIM芯片,其性能可随核心数量的不断增加呈现上升的平稳趋势。不过,3D堆叠芯片封装技术目前面临的一个主要难题是散热问题,还需要在堆叠方式、散热、电源和热管理技术等方面取得进一步的突破。
《使命召唤4》跳跃及地图技巧
哈哈,各位打枪男们。你们在游戏中已经看到人藏在一些不可思议的地方,然后不可思议的杀死你了吧。不知道你们是否想向他们一样成为一个爬楼男。想得话,就往下看,不想得话,下次见面就切你小jj。嘿嘿。话说这跳啊,在fps开山祖师小盟军战士在德军总部(wolf3D)那时候还不会呐,毕竟是黄毛鬼子,膝盖骨往后长,四肢不健全,连跑都不会怎么会跳呢。他的弟子毁灭战士(doom)稍好一点,能跑咯,可也一样发育不完全,蹦不起来。接着,一个叫啥来者,哦,叫毁灭公爵(duke3d)的人来着,会跳了,还会飞。贵族就是不一样,有教养,有钱买飞行器哪。天上的雷神(quake)看到地上的人都能蹦_起来了,赶紧下到凡间。将这些人统统消灭。然后呢,如何回去呢,当当跳可总不能上天吧。嗯,现在是科技时代,要用科学,要有胆。神就是神跟普通人就是不一样,他拿了他的看家武器,雷神大炮(火箭发射器),往屁屁里一插,轰的一声,上天了。可惜啊,上了天,屁屁碎成八片了,只好趴在天上修养,无暇关注凡间了。地上的人啊又开始蹦_了,一直到今天。。。。。言归正传,介绍一下,COD4中跳跃所需要的东西。一个人,两只手,一个键盘,一个鼠标,还要有主机显示器,最重要的是你要插上电源,千万注意别插鼻子里阿。首先,在COD4的某些跳跃中,对你的机器的fps有特殊要求。通常要求125。如果达不到,76也是可以接受的。对于海拔高的同学,不要担心,250或者333会让你站得更高,跳得更远的。至于为什么呢,这就说来话长了。偷偷告诉你啊,使命召唤家族阿,其实是雷神三当家转世的后代哦。一般的人我可不告诉他哦。所以阿,使命召唤4就有他爷爷的爷爷的一些血统哦。想当年,真正的上帝,宇宙的主宰卡马克大神捏出雷神三当家时候,在想:什么样的神才是神呢。嗯,身高145,体重85,能力值65。这样的神才是厉害的神,普通人绝对打不过,当然卡马克大神一巴掌,三当家就得乖乖当孙子。到了三当家孙子的孙子这一辈,遗传突变懂不懂,恩就变成了,125,76,250和333了。在游戏里你需要关闭垂直同步,即setar_vsync"0",然后设置setacom_maxfps125或者76、250、333。如何知道你的身材够不够格,设置cg_drawfps1就可以看到咯。如果达到了,恭喜你,开始进入跳楼预备队了,达不到的,不着急,先优化一下,可以吃大便,恩,就是传说中的大便黄补丁。如果还不行,哎。哥们,何苦糟蹋自己的眼睛呢,这样容易摔死的哦。好了,机器设置好了,我们就开始蹦_吧。爬楼男要诞生咯。不过想爬墙,还是先得会跳。那句话怎么说来者,哦叫跳得更高,跑得更远啊。COD4中的跳:不要以为跳就是随便的按一下空格键(默认跳跃键,下同)就可以了。如果这样我也没有必要发贴咯。COD4中的跳分为好几种。1。标准跳。就是你站立的时候按一下空格键,就完成了一个最简单的跳跃。。嘿嘿简单吧。2。加速跳。就是在你跑动的途中(按下跑动键,默认shift)按一下空格键,你就完成了一个加速跳哦。这个比你不跑的时候跳的远哦。(废话,嘻嘻)3。平移跳。哎,这个就有点难度了哟。一般的玩家也不知道这个。英文名字叫做strafejump。话说当年雷神二当家(QUAKE2)来华巡演的时候,看到广大雷友竟然跑的跟乌龟一样。于是传授了一招能跟兔子跳的一样快的招术。诶,就是这个平移跳。知道为啥叫平移跳么,因为在跳的途中需要用到平移键。不知道什么叫做平移键。~~~~就是你的食指和无名指按得那两个键哦。跳跃的时候按住‘W’(前进)和‘D’(右平移)或者‘A’(右平移),你就可以跳的更远。在神的世界里,是没有体力限制的哦。所以他们可以像兔子一样连续的跳来跳去,我们阿是人,只能跳一下哦。但是这一下也是很远的哦。初学者可以同时按住'W'、'A'和'D'三键,但熟悉以后不推荐。配合加速跳就可以跳的更远咯。4。圆弧跳。诶,这个跳啊,可是很难哦,真的很难哦。我真不想告诉你们啊。可是藏私是不道德得诶。没办法,我是新时代的大好人。这个跳啊,他的英文名字叫做circlejump。说到这个,就得说雷神二当家来华巡演的第一站‘q2dm1’,里面有个大水池,为啥有水池,我也不知道啊,谁叫爷他有钱有势。水池旁还有一座假山,山上呢有些水果,二当家表演时渴了,想吃点水果,不过总不能叫而当家他自个儿去取吧,所以他就派他凡间弟子西洋枫叶国黄毛鬼子去取。虽说是个凡间俗子,不过怎么说也是爷前跟班的,有点法术。只见他在空中化了一道弧线,如凌波微步般飘到了假山,好漂亮哦。众多观众立刻兴奋了。二当家看到广大观众,一高兴,就将这技艺传授给了大家。诀窍就是!!!:在你跳的时候,视角水平稍微转过一点角度,就是鼠标转过一定角度,多大呢,也就30到60度吧。不难,其实也不简单,这个速度呢,不能太快,也不能太慢哦。所以你的鼠标灵敏度千万不要上双啊。至于为什么会这样。而当家是这么解释的:为了让大家不摔倒,我耗费一点法力在你孟身上,让你们不倒,不过后果就是你要往前移动移动。在空中跳总不能让你趴着屁股落地吧。二当家的好心感染了三当家。于是呢,使命召唤家族也有这样的传统拉。配合加速跑,平移跳再加上这个圆弧跳就可以跳的老远老远咯。5。火箭跳,手雷跳。哎,兵者,凶器也。俺们都是凡夫俗子,肉泥之身,还是离着远远的吧。没看见雷神大当家至今还趴在天上哼哼呢。6。弹跳英文名称(BounceJump),这个跳跃,目前我就在cod4里遇到过,cod2里有没有出现,不知道据细心的老外用地图编辑器制作专门地图研究表明,当某个面与地面成14~65度角的时候,玩家跳到这个面,如果速度及角度合适,那么就会有一个反作用力让你弹起,跳上天空.(我在mp_backlot的录像里就有这个弹跳的演示)。所以理论上讲,很多物体都是作为弹跳的地点,只是难易程度上有巨大的差别。7。人梯。英文名字(stacking)俺们要做文明的战士和绅士般的土匪,不能随便蹂躏践踏别人的身体哦。(其实是没人与小7我配合)在cod4里,搭人梯较其他游戏而言,有难度。我猜想主要原因是cod4人物的模型边界是不规则的,特别顶部不是平的。所以搭两人以上的人梯相当有难度.总结下:平移跳就是跳在空中的时候同时按住前进键W和任意一个平移键,根据你想跳的方向而定。他的形成原理可以用物理学来解释,在游戏中,玩家按前有向前的速度,按右有向右的速度,那么这两个速度由于是相互垂直的,那么可以合成一个更大的速度。圆弧跳其实是QUAKE2的一个BUG,但太受欢迎了,没有被取消。产生的原因是跑动中急转身形成急刹车[就像汽车急转弯被抛出,人急转弯应该跌倒,其实就是物体进行圆周运动时出现的离心力],但是游戏又不允许玩家跌倒,因此就有向某个方向的离心速度。这个离心速度与原先的速度合成就能产生一个更大的速度。至于鼠标转过角度要适当的问题,也是由于速度合成的关系,如果角度过小或过大,就不能合成最快的那个速度了。由QUAKE2引擎发展出来的游戏,诸如QUAKE3,HALF-LIFE,COUTER-STRIKE,CALLOFDUTY,都有或多或少的圆弧跳的迹象。想仔细学习的话,上网搜索一下平移跳和圆弧跳即可。平移在Q2,Q3中相当普遍,圆弧跳则更有用。像Q2dm1大房间里三连跳吃大血、Q3DM6中从RL平台跳到RG平台,都必须使用圆弧跳。但是必须注意,COD4不是QUAKE3,不能连跳。这两种跳应该有点类似CS里的超级跳和旋转跳。mp_convoy这可跳的地方挺多。掌握好了,可以出其不意的打击别人。我就选择讲解一些跳跃。其他自行看demo即可。加速跳跳不过去的使用加速平移跳即可。demo中跳跃基本不受fps影响。上到二层建筑的方法多种,如图。到对面二楼的方法这个是从地面上二楼方法这个跳比较实用,可以有效避开敌人。特别是在HQ模式下,总部地点如果设在此处二楼的时候。还有这个,有一点难度利用加速平移跳可以轻松跳到对面。注意起跳时机也同样是使用加速平移跳,注意不要接触电线杆
Web前端工程师应该知道的CSS隐藏页面元素的方法
今天小编要跟大家分享的文章是关于Web前端工程师应该知道的CSS隐藏页面元素的方法。用CSS隐藏页面元素有许多种方法。你可以将opacity设为0、将visibility设为hidden、将display设为none或者将position设为absolute然后将位置设到不可见区域。你有没有想过,为什么我们要有这么多技术来隐藏元素,而它们看起来都实现的是同样的效果?每一种方法实际上与其他方法之间都有一些细微的不同,这些不同决定了在一个特定的场合下使用哪一个方法。这篇教程将覆盖到那些你需要记住的细小不同点,让你根据不同情况选择上面这些方法中适合的方法来隐藏元素。正在从事web前端工作的小伙伴们来和小编一起学习一下吧!一、opacityopacity属性的意思是设置一个元素的透明度。它不是为改变元素的边界框(boundingbox)而设计的。这意味着将opacity设为0只能从视觉上隐藏元素。而元素本身依然占据它自己的位置并对网页的布局起作用。它也将响应用户交互。.hide{opacity:0;}如果你打算使用opacity属性在读屏软件中隐藏元素,很不幸,你并不能如愿。元素和它所有的内容会被读屏软件阅读,就像网页上的其他元素那样。换句话说,元素的行为就和它们不透明时一致。我还要提醒一句,opacity属性可以用来实现一些效果很棒的动画。任何opacity属性值小于1的元素也会创建一个新的堆叠上下文(stackingcontext)。看下面的例子:看@SitePoint提供的例子“用opacity隐藏元素”当你的鼠标移到被隐藏的第2个的区块上,元素状态平滑地从完全透明过渡到完全不透明。区块也将cursor属性设置为了pointer,这说明了用户可以与它交互。二、visibility第二个要说的属性是visibility。将它的值设为hidden将隐藏我们的元素。如同opacity属性,被隐藏的元素依然会对我们的网页布局起作用。与opacity唯一不同的是它不会响应任何用户交互。此外,元素在读屏软件中也会被隐藏。这个属性也能够实现动画效果,只要它的初始和结束状态不一样。这确保了visibility状态切换之间的过渡动画可以是时间平滑的(事实上可以用这一点来用hidden实现元素的延迟显示和隐藏——译者注)。.hide{visibility:hidden;}下面的例子演示了visibility与opacity有怎样的不同:看@SitePoint提供的例子“用visibility隐藏元素”注意,如果一个元素的visibility被设置为hidden,同时想要显示它的某个子孙元素,只要将那个元素的visibility显式设置为visible即可(就如例子里面的.o-hidep——译者注)。尝试只hover在隐藏元素上,不要hover在p标签里的数字上,你会发现你的鼠标光标没有变成手指头的样子。此时,你点击鼠标,你的click事件也不会被触发。而在标签里面的标签则依然可以捕获所有的鼠标事件。一旦你的鼠标移动到文字上,本身变得可见并且事件注册也随之生效。三、displaydisplay属性依照词义真正隐藏元素。将display属性设为none确保元素不可见并且连盒模型也不生成。使用这个属性,被隐藏的元素不占据任何空间。不仅如此,一旦display设为none任何对该元素直接打用户交互操作都不可能生效。此外,读屏软件也不会读到元素的内容。这种方式产生的效果就像元素完全不存在。任何这个元素的子孙元素也会被同时隐藏。为这个属性添加过渡动画是无效的,它的任何不同状态值之间的切换总是会立即生效。不过请注意,通过DOM依然可以访问到这个元素。因此你可以通过DOM来操作它,就像操作其他的元素。.hide{display:none;}看下面的例子:@SitePoint提供的例子“用display隐藏元素”你将看到第二个块元素内有一个元素,它自己的display属性被设置成block,但是它依然不可见。这是visibility:hidden和display:none的另一个不同之处。在前一个例子里,将任何子孙元素visibility显式设置成visible可以让它变得可见,但是display不吃这一套,不管自身的display值是什么,只要祖先元素的display是one,它们就都不可见。现在,将鼠标移到第一个块元素上面几次,然后点击它。这个操作将让第二个块元素显现出来,它其中的数字将是一个大于0的数。这是因为,元素即使被这样设置成对用户隐藏,还是可以通过JavaScript来进行操作。四、position假设有一个元素你想要与它交互,但是你又不想让它影响你的网页布局,没有合适的属性可以处理这种情况(opacity和visibility影响布局,display不影响布局但又无法直接交互——译者注)。在这种情况下,你只能考虑将元素移出可视区域。这个办法既不会影响布局,有能让元素保持可以操作。下面是采用这种办法的CSS:.hide{position:absolute;top:-9999px;left:-9999px;}下面的例子阐明了怎样通过绝对定位的方式隐藏元素,并让它和前面的那个例子效果一样:看@SitePoint提供的例子“用position属性隐藏元素”这种方法的主要原理是通过将元素的top和left设置成足够大的负数,使它在屏幕上不可见。采用这个技术的一个好处(或者潜在的缺点)是用它隐藏的元素的内容可以被读屏软件读取。这完全可以理解,是因为你只是将元素移到可视区域外面让用户无法看到它。你得避免使用这个方法去隐藏任何可以获得焦点的元素,因为如果那么做,当用户让那个元素获得焦点时,会导致一个不可预料的焦点切换。这个方法在创建自定义复选框和单选按钮时经常被使用。(用DOM模拟复选框和单选按钮,但用这个方法隐藏真正的checkbox和radio元素来“接收”焦点切换——译者注)五、clip-path隐藏元素的另一种方法是通过剪裁它们来实现。在以前,这可以通过clip属性来实现,但是这个属性被废弃了,换成一个更好的属性叫做clip-path。NitishKumar最近在SitePoint发表了“介绍clicp-path属性”这篇文章,通过阅读它可以了解这个属性的更多高级用法。记住,clip-path属性还没有在IE或者Edge下被完全支持。如果要在你的clip-path中使用外部的SVG文件,浏览器支持度还要更低。使用clip-path属性来隐藏元素的代码看起来如下:.hide{clip-path:polygon(0px0px,0px0px,0px0px,0px0px);}下面是一个实际使用它的例子:看@SitePoint提供的例子“用clip-path属性隐藏元素”如果你把鼠标悬停在第一个元素上,它依然可以影响第二个元素,尽管第二个元素已经通过clip-path隐藏了。如果你点击它,它会移除用来隐藏的class,让我们的元素从那个位置显现出来。被隐藏元素中的文字仍然能够通过读屏软件读取,许多WordPress站点使用clip-path或者之前的clip来实现专门为读屏软件提供的文字。虽然我们的元素自身不再显示,它也依然占据本该占据的矩形大小,它周围的元素的行为就如同它可见时一样。记住用户交互例如鼠标悬停或者点击在剪裁区域之外也不可能生效。在我们的例子里,剪裁区大小为零,这意味着用户将不能与隐藏的元素直接交互。此外,这个属性能够使用各种过渡动画来实现不同的效果。结论在这篇教程里,我们看了5种不同的通过CSS隐藏元素的方法。每一种方法都与其他几种有一点区别。知道你想要实现什么有助于你决定采用哪一个属性,随着时间推移,你就能根据实际需求本能地选择最佳方式了。以上就是小编今天为大家分享的关于Web前端工程师应该知道的CSS隐藏页面元素的方法的文章,希望本篇文章能够对正在从事web前端工作的小伙伴们有所帮助,想要了解更多web前端相关知识记得关注北大青鸟web培训官网。最后祝愿小伙伴们工作顺利!
整流变压器的应用
整流变压器广泛用于各类行业之中,主要分为照明、机床电器、机械电子设备、医疗设备、整流装置等。产品性能均能满足用户各种特殊要求。电化学工业是应用整流变最多的行业,电解有色金属化合物以制取铝、镁、铜及其它金属;电解食盐以制取氯碱;电解水以制取氢和氧。 移相方法就是二次侧采用量、角联结的两个绕组,可以使整流电炉的脉波数提高一倍。对于大功率整流设备,需要脉波数也较多,脉波数为18、24、36等应用的日益增多,这就必须在整流变压器一次侧设置移相绕组来进行移相。移相绕组与主绕组联结方式有三种,即曲折线、六边形和延边三角形。用于电化学行业的整流变压器的调压范围比电炉变压器要大的多,对于化工食盐电解,整流变压器调压范围通常是56%--105%,对于铝电解来说,调压范围通常是5%--105%。常用的调压方式如电炉变压器一样有变磁通调压,串联变压器调压和自耦调压器调压。另外,由于整流元件的特性,可以在整流电炉的阀侧直接控制硅整流元件导通的相位角度,可以平滑的调整整流电压的平均值,这种调压方式称为相控调压。实现相控调压,一是采用晶阀管,二是采用自饱和电抗器,自饱和电抗器基本上是由一个铁芯和两个绕组组成的,一个是工作绕组,它串联联结在整流变压器二次绕组与整流器之间,流过负载电流;另一个是直流控制绕组,是由另外的直流电源提供直流电流,其主要原理就是利用铁磁材料的非线性变化,使工作绕组电抗值有很大的变化。调节直流控制电流,即可调节相控角α,从而调节整流电压平均值。 (1)电气性能稳定:产品结合负载特点和电网电压波动、大气过电压情况,根据整流变压器的负载状况,确定合理、可靠的绝缘水平和绝缘模型,充分保证产品的电气性能可靠和稳定。产品环境安全系数≥1.67。(2)动稳定程度高:产品绕组有较高的机械强度,具有较强的抗突发能力,以满足极恶劣的负载环境。在设计、制造过程中较好地消除了变压器漏磁引起的或非正常运输可能造成的动不稳定源。产品具有较高的动稳定性。高抗阻,比同容量的电力变压器的阻抗高30%,以抑制di/dt,有效保护整流元件。(3)热稳定性好:先进的产品设计,严格控制产品的发热部位及最热点温升,并留有充分的温升裕度,如需要可在线圈内加添轴向油道,根据线圈负载损耗值选择冷却方式并合理分配油流量,达到最佳冷却效果,主要温升指标均比国标至少低5℃。线圈、引线采用铜导线,电流密度选取较低。(4)过载能力强:产品具有较强的过负载能力和过电压能力,可在额定负载情况下长期安全运行,可在110%过电压情况下满负载长期安全运行(环境温度40℃);变压器与电机相联的端子上能承受1.5倍额定电流,历时5S。产品设计、制造充分考虑负载特性,从温升、绝缘性能及附件选择等各方面满足过载要求。(5)性能指标优越:空载电流设计、制造值低于同容量S9系列变压器的国标规定值为依据,充分用户使用的经济性和可靠性。(6)节电效果明显,噪声低(<65dB)。(7)结构简化,外形美观;油箱采取防渗漏设计工艺,可杜绝油箱渗漏。 (1)铁芯:采用30Q130高导磁硅钢片,同时采用选进的3~6级step-lap core stacking步进多级叠片方式,有较降低了空载损耗、空载电流和噪声。(2)绕组:电磁线采用了高导电率的无氧铜导线,绕组采用园筒式、双饼式和新型螺旋式等结构的整体套装新工艺,使产品结构更紧凑,主绝缘能等到有效保证,对首尾层进行加强,提高了绝缘性能。绕组外表面缠绕高强度的紧缩带,提高了绕组的机械强度,使产品的抗冲击能力和抗短路能力大提高。(3)器身:器身绝缘垫块均采用高强度的层压木和层压纸板支撑,使绕组的端部的支撑面积达到95%以上,进一步提高了产品抗短路能力,提高产品的运行可靠性。器身与箱盖的连接采用了呆板带缓冲结构,克服了器身“悬空”和“顶盖”现象。绝缘材料均采用高强度、高密度电缆纸包绕,其允许的压力应为45Mpa。(4)油箱:油箱采用散热油管(双排和三排油管采用插片方式),或采用阶梯片式散热器,在同样的箱壁面积下增加了散热能力;测算也可根据用户要求安装片式散热器或采用波纹油箱,及强油风冷或强油水冷散热器。油箱表面处理:变压器外壳油漆采用“三防漆”(防盐雾、防湿热、防霉菌),此漆与底漆附着力强,装饰性好,薄膜耐油性,耐腐蚀性、保光性、保色性较好,有良好的流平性和遮盖力。 整流变压器微机保护装置是由高集成度、总线不出芯片单片机、高精度电流电压互感器、高绝缘强度出口中间继电器、高可靠开关电源模块等部件组成。是用于测量、控制、保护、通讯为一体化的一种经济型保护。整流变压器微机保护装置的优点1、可以满足库存配制有二十几种保护,满足用户对不同电气设备或线路保护要求。2、用于可根椐实际运行的需要配制相应保护,真正实现用户“量身定制”。3、自定义保护功能,可实现标准保护库中未提供的特殊保护,最大限度满足用户要求。4、各种保护功能相对独立,保护定值、实现、闭锁条件和保护投退可独立整定和配制。5、保护功能实现不依赖于通讯网络,满足电力系统保护的可靠性。整流变压器微机保护装置具备进线保护、出现保护,分段保护、配变保护、电动机保护、电容器保护、主变后备保护、发电机后备保护、PT监控保护等保护功能。