barriers / 阅读 / 详情

什么是交叉检验(K-fold cross-validation)

2023-07-19 08:39:42
共1条回复
康康map

K层交叉检验就是把原始的数据随机分成K个部分。在这K个部分中,选择一个作为测试数据,剩下的K-1个作为训练数据。 交叉检验的过程实际上是把实验重复做K次,每次实验都从K个部分中选择一个不同的部分作为测试数据(保证K个部分的数据都分别做过测试数据),剩下的K-1个当作训练数据进行实验,最后把得到的K个实验结果平均。InK-fold cross-validation, the original sample is randomly partitioned intoKsubsamples. Of theKsubsamples, a single subsample is retained as the validation data for testing the model, and the remainingKu22121 subsamples are used as training data. The cross-validation process is then repeatedKtimes (thefolds

相关推荐

下采样和池化的区别是什么?

有部分同学,在学习初期,会认为下采样和池化是指同样的事情,只是叫法不同而已,其实这是一种错误的认知。下采样(subsampled),或称为降采样(downsampled),指缩小图像。其主要目是使得图像符合显示区域的大小,生成对应图像的缩略图。而池化(Pooling)则是卷积神经网络中一个重要的概念,它是降采样的一种形式。它会压缩输入的特征图,一方面减少了特征,导致了参数减少,进而简化了卷积网络计算时的复杂度;另一方面保持了特征的某种不变性(旋转、平移、伸缩等)。池化的方法:max-pooling:对邻域内特征点取最大值;mean-pooling:对邻域内特征点求平均。池化的作用:降维,减少网络要学习的参数数量;防止过拟合;扩大感受野;实现不变性(平移、旋转、尺度不变性)关于池化的解释:池化 = 涨水池化的过程 = 升高水位(扩大矩阵网格)池化的目的是为了得到物体的边缘形状。下采样和池化应该是包含关系,池化属于下采样,而下采样不局限于池化,如果卷积 stride=2,此时也可以把这种卷积叫做下采样。
2023-07-18 09:24:421

池化层的作用不包括

池化层的作用不包括实现特征分类。池化层是当前卷积神经网络中常用组件之一,它最早见于LeNet一文,称之为Subsample。自AlexNet之后采用Pooling命名。池化层是模仿人的视觉系统对数据进行降维,用更高层次的特征表示图像。实施池化的目的:(1) 降低信息冗余;(2) 提升模型的尺度不变性、旋转不变性;(3) 防止过拟合。池化层的常见操作包含以下几种:最大值池化,均值池化,随机池化,中值池化,组合池化等。最大值池化:最大值池化是最常见、也是用的最多的池化操作。最大值池化的核心代码可以描述为:在前向过程,选择图像区域中的最大值作为该区域池化后的值;在后向过程中,梯度通过前向过程时的最大值反向传播,其他位置的梯度为0。在实际应用时,最大值池化又分为:重叠池化与非重叠池化。如AlexNet/GoogLeNet系列中采用的重叠池化,VGG中采用的非重叠池化。但是,自ResNet之后,池化层在分类网络中应用逐渐变少,往往采用stride=2的卷积替代最大值池化层。最大值池化的优点在于它能学习到图像的边缘和纹理结构。
2023-07-18 09:24:501

为什么iphone屏幕出现了一个框框放大镜

是因为你的手机开启了缩放功能。1、首先我们选择手机中的【设置】进入,在【设置】中,我们在下方可以找到【通用】。2、在【通用】中有个【辅助功能】,我们进入它。3、然后我们选择【缩放】打开。4、在缩放中需要把上面的绿色按钮点掉。按照以上方法,就可以关闭放大镜了。拓展资料1、缩小图像(或称为下采样(subsampled)或降采样(downsampled))的主要目的有两个,然而,确实有一些缩放方法能够增加图像的信息,从而使得缩放后的图像质量超过原图质量的。2、放大图像(或称为上采样(upsampling)或图像插值(interpolating))的主要目的是放大原图像,从而可以显示在更高分辨率的显示设备上。对图像的缩放操作并不能带来更多关于该图像的信息, 因此图像的质量将不可避免地受到影响。
2023-07-18 09:25:101

stata怎么生成subsample

keep or drop后,保存即可
2023-07-18 09:25:451

关于matlab代码的求解!

1、假如params.subsample不是无穷大且y中元素的个数大于params.subsample;2、IX含义:假设y=[15234];,则numel(y)为5,IX即为从1到5的一个打乱顺序的排列;3、x被赋为IX中从1至5循环的行,比如A(2,:)代表A矩阵的第2行,y同理。希望评价为满意!
2023-07-18 09:26:001

3dsmax cloth命令,有的物体直接穿透过去怎么回事?各面数很多了,8000--17000。

增加细分试试
2023-07-18 09:26:152

生活中图形放大或缩小的知识或现象

鱼缸里的鱼。倒车镜。
2023-07-18 09:26:243

外贸中的手版样和对照样是什么 ,用英文怎么翻译

Hand sample绝对准
2023-07-18 09:26:552

【XGBOOST】原生参数解释

u2003u2003xgboost作为横扫kaggle的王牌算法,其学习应用速度及运行速度都极其快速。在这篇分享中,我将不在赘述xgboost的算法原理,而是整合xgboost原生函数的参数解释以作知识归档。( sklearn也封装了xgboost,所以调用xgboost可以通过xgboost包和sklearn两种方式 ) u2003u2003xgboost的算法思想简单来说是通过不断地添加树,不断地进行特征分裂来生长一棵树,即学习一个新函数去拟合上次预测的残差。( 注意:新生成的树要拟合上次预测的残差。 ) u2003u2003这是一个字典,里面包含着训练中的参数关键字和对应的值,形式如下: u2003u2003(1)确定学习速率和提升参数调优的初始值 u2003u2003(2)max_depth 和 min_child_weight 参数调优 u2003u2003(3) gamma参数调优 u2003u2003(4)subsample 和 colsample_bytree 参数优 u2003u2003(5)正则化参数alpha调优 u2003u2003(6)降低学习速率和使用更多的决策树
2023-07-18 09:27:081

图形学笔记五 视口变换 光栅化 抗锯齿

参考课程: https://www.bilibili.com/video/BV1X7411F744?p=5 https://www.bilibili.com/video/BV1X7411F744?p=6 在上一节说到,所有的物体都会变为-1到1的立方体内,下一步就是光栅化了。 只需要定义上面这两个,其它的都可以算出来: 这个可以理解为数组,比如蓝色方块那个像素,就是(2,1),然后它的中心是(2.5,1.5),即(x+0.5,y+0.5) 缩放系数很简单,就是把宽高为2,拉伸到width,heigh。那么矩阵的缩放参数就是width/2,height/2 现在缩放完之后,还需要平移。因为之前是在0,0的位置,现在需要移动到屏幕的中央。屏幕的左下角是0,0,所以平移向量就是width/2,height/2。 上面这个变换,就称为视口变换。 经过了MVP和视口变换之后,三维空间的几何形体就被映射到了屏幕空间里,想要得到图像,需要用这些信息进行光栅化,将其变成像素。 三角形是最基础的多边形,用于算法建模及扫描模型。四边形建模方便对齐uv线,人工调整方便。 对屏幕中的像素中心进行采样,判断是否在三角形内部: 这里自然是之前讲过的叉乘,考虑三角形的顺序,都在左边或都在右边,都是在三角形的内部。 特殊情况:如果正好在三角形边上,不处理或者特殊处理,暂不讨论。 实际上只需要计算那个蓝色盒子内的像素是否在三角形内部。还有更快的优化方式,每一行都只找最左和最右: 观察行驶中的车轮,有时会发现车轮像是在倒转,这是因为眼睛采样不足,跟不上车轮的转动速度。 接下来的视频,建议先阅读一下这两个链接再继续看: H264系列五 图像与滤波 H264系列六 傅里叶变换 这个概念有点复杂了,参考 可以简单地理解,是平均,做了一个平滑处理。比如,任何一个像素,都是它周围3乘3像素的平均,这样就模糊处理了。 时域的卷积等于频域的乘积???这句话没有去深入理解,从这句话开始,后边进度条一直到59分左右听的是一脸懵逼了……感谢弹幕提醒,需要补以下知识: 不过可以直接听进度59分以后的结论: 在进度1小时05分那里,继续往下看视频,建议先看一下MSAA的基本概念。下面这个文章让我完全看懂了: MSAA,全名Multi-Sample Anti-Aliasing,是抗锯齿的一种方法。一般而言,一个像素只有一个采样点,这个点一般在像素的正中心。如果打开了MSAA,那么每个像素内的采样点将不止一个,例如2x,4x,8x,16x等每个像素的采样点分别为2个,4个,8个,16个。这些样本点在像素内的分布位置,是有一定讲究的(为了降低锯齿感),各家GPU所支持的pattern可能不太一样。例如下面的两种4x的pattern,读者可以自己想象一下右边的pattern的优点哦(一个实线矩形代表一个像素,一个黑色的点代表一个采样点)。 在了解MSAA之前,首先我们需要知道什么是锯齿?锯齿是怎么产生的?为什么要抗锯齿? 第一个问题,什么是锯齿?锯子相信绝大部分人都见过,图形学上的锯齿表现也是这种类似阶梯的形状,对于锯子而言锯齿是有利的,但是在图形学上,我们总希望尽量去降低这种锯齿感,如下图所示,你想在一块16x16的分辨率下画一个填充有红色的三角形,但最后的显示却如下图所示,填充红色的区域为最终显示的三角形。有的人可能会问,为啥我在显示器上没见过锯齿,那是因为现在的显示屏的分辨率一般都比较高,而在dpi较低的显示屏上会比较容易能看到锯齿。现在一般6英寸的移动手机的分辨率就能达到1080p,而很多27英寸的显示器的分辨率也才1080p,所以相比较之下,在桌面级显示器更容易能看到锯齿。 第二个问题,图形学上的锯齿是怎么产生的?锯齿是由于采样不足所造成的,我们知道线段是由无数个点组成的,所以如果你想准确的显示一条线段,你应该要采样无数个点,但是对于显示器而言,这不现实。首先显示器上的像素点是有大小的,然后像素的个数也是有限的,而且每个像素在物理上只能显示出一种颜色。这里顺便解释一下MSAA中的多个采样点是怎么回事,物理上决定每个像素只能显示一种颜色,这是肯定的,即使每个像素内有多个采样点最终也只能显示为一种颜色,那么增加采样点有什么意义呢?哈哈,又留下一个问题,别着急,请接着往下看。 第三个问题,为什么要抗锯齿?从上面的图我们可以看到,显示屏上显示的图形的边缘带有锯齿,这显然不是我们想要的,所以要想办法来降低边缘的锯齿感,给我们一个更好的视觉效果,这就是抗锯齿。 现在我们知道为什么要抗锯齿以及什么是抗锯齿了。那么接下来的问题就是怎么做抗锯齿了? 刚才我们有提到,正常情况下(no MSAA),每个像素只有一个采样点,一般在中间,如下图所示,右图是左图区域放大后的结果。 上图标出了两个像素的采样点,我们可以看到,只要采样点在三角形外,那么这个像素将不会被着色。判断采样点是否在三角形内是在光栅化的时候确定的。可想而知,这是不合理的,对于上面的像素,大概有1/4的面积其实是被三角形覆盖的,但是由于采样点在中心,中心没被覆盖的缘故导致这个像素被判断为不在三角形内而最终没被着色,所以该像素最后呈现的就是背景色(此处为白色);对于下面的像素,大概有3/4的面积在三角形内,由于中心的采样点在三角形内,所以最终呈现的就是红色。 那么MSAA是怎么做的呢?multi-sample顾名思义,就是增加采样点的个数,在一个像素内采样2个点,4个点,8个点,16个点等等。回到刚才留下的问题,增加采样点的意义在哪?对于no MSAA的情况,在光栅化的时候会输出一个mask来给出哪些像素被三角形覆盖了,这些被覆盖的像素再去做depth stencil test,幸存下来再去做fragment shading对像素着色;打开MSAA之后,这个mask会给出哪些采样点被三角形覆盖了,然后这些采样点会单独去做depth test 和stencil test,有幸存样本点的像素再去做fragment shading。 这里多说一句,默认情况fragment shading对于一个像素只做一次即使你打开了MSAA(为了性能),具体拿哪一个采样点去做,各家可能不太一样,一般可能是像素的中心。也就是说,最终你的像素是什么颜色(每个物理像素只能显示一个颜色),是由每个采样点决定的,fragment shading决定了被覆盖的采样点都是这种颜色,最后每个采样点的颜色求和平均之后就是像素的颜色。当然你也可以打开sample shading这个extension让每个采样点都做fragment shading,不过这样带来的性能消耗会很大。 好吧,再多说一句,一个像素的几个采样点可以是不同的颜色,为什么呢?因为一个像素可能会被多个三角形覆盖到,如下图所示,该像素被两个三角形覆盖,那么最后它的颜色就是2/4红色+1/4蓝色+1/4背景色。Fragment shading之后,结合采样点覆盖的mask将每个样本的颜色存储在buffer里面,所以对于4xMSAA,buffer的大小需要分配4倍。当然对于TBR(Tile based rendering)架构的设备,framebuffer的大小不用改变,只需要在tile buffer分配的时候增大相应的倍数就行了,写出去到framebuffer的时候,硬件会有一个resolve的操作,只写出最终的颜色。 那么MSAA我们现在大致了解了。回到刚才的话题,如果是4x的MSAA,那么上面的锯齿三角形会是什么样的呢?先看结果,如下图所示。 上图可以看到,对于上面的一个像素,4个采样点中有一个在三角形内,所以这个像素的颜色就是1/4的红色加上3/4的背景色(白色),最后呈现的是浅红色;对于下面的一个像素,有3个采样点位于三角形内,所以这个像素的颜色就是3/4的红色加上1/4的背景色(白色),最后呈现的是深红色,这看起来合理多了。 没有MSAA以及打开4xMSAA的对比图如下图所示,可以看到打开了MSAA之后,三角形的边缘呈现的是过渡色,这样的视觉效果更好,这就是抗锯齿的结果,当然如果继续增加采样点的个数,效果将会更好,但是天下没有免费的午餐,增加subsample的个数对应的性能消耗也会增加。 如果你看上面的图,觉得效果不明显,那是因为16x16的被我放大了很多倍,可以看下面的,是不是边缘稍微平滑了点呢。所以我们可以看粗来,MSAA其实就是增加像素内采样点的个数来平滑/模糊边缘,从而在视觉上欺骗我们的观众达到抗锯齿的效果。 此图是4MSAA,即一个像素点对应4个采样点,对于边界,我们根据其像素点包围的点数来计算其颜色值,比如边界像素点包含2个采样点,那么它最终的颜色就应该是本来的颜色2/4,同理,如果包含一个,就是颜色*1/4,最终 的效果如下: 这样看起来“圆滑”很多。其优点比较突出,效果也不错,但是注意,它不适合延迟渲染,这里说的不适合并不是不支持,延迟渲染也能支持MSAA,但是支持他就会大量浪费空间。 延迟渲染是什么,在这里不做过多介绍,总之他为了优化光照着色,需要一个GBuffer,这个就是临时渲染出的结果的缓存因为需要GBuffer,所以MSAA也需要进行临时保存,那么保存临时数据的后果则是浪费大量显存。 前面可知4x MSAA的显存消耗是4x的关系,假设我们按照2k的原生分辨率来做,一个RT就是64 MB,用来做MSAA的那个RT就会是不低于256MB。又因为GBuffer至少存depth,normal,basecolor3张RT,那三个MSAA RT就是768MB,这种消耗非常巨大,因此可以理解为“不支持”。 首先所有MSAA, SSAA, FXAA, TXAA等都是抗锯齿(Anti-Aliasing)技术。 锯齿的来源是因为场景的定义在三维空间中是连续的,而最终显示的像素则是一个离散的二维数组。所以判断一个点到底没有被某个像素覆盖的时候单纯是一个“有”或者“没有"问题,丢失了连续性的信息,导致锯齿。 最直接的抗锯齿方法就是SSAA(Super Sampling AA)。拿4xSSAA举例子,假设最终屏幕输出的分辨率是800x600, 4xSSAA就会先渲染到一个分辨率1600x1200的buffer上,然后再直接把这个放大4倍的buffer下采样致800x600。这种做法在数学上是最完美的抗锯齿。但是劣势也很明显,光栅化和着色的计算负荷都比原来多了4倍,render target的大小也涨了4倍。 MSAA(Multi-Sampling AA)则很聪明的 只是在光栅化阶段,判断一个三角形是否被像素覆盖的时候会计算多个覆盖样本(Coverage sample),但是在pixel shader着色阶段计算像素颜色的时候每个像素还是只计算一次。 例如下图是4xMSAA,三角形只覆盖了4个coverage sample中的2个。所以这个三角形需要生成一个fragment在pixel shader里着色,只不过生成的fragment还是在像素中央(位置,法线等信息插值到像素中央)然后只运行一次pixel shader,最后得到的结果在resolve阶段会乘以0.5,因为这个三角形只cover了一半的sample。现代所有GPU都在硬件上实现了这个算法,而且在shading的运算量远大于光栅化的今天,这个方法远比SSAA快很多。顺便提一下之前NV的CSAA,它就是更进一步的把coverage sample和depth,stencil test分开了。 需要继续扩展阅读下面三篇文章,我这里只做一些摘选 第一种思路自然就是在每个像素中进行多次采样,然后根据多次采样的结果综合来计算像素的颜色值。使用这种方式来实现的抗锯齿技术有MSAA,TAA。 第二种思路是通过后处理的方式,寻找屏幕中的像素块边界,然后根据边界的信息,将两侧的像素点颜色进行插值,这样就会得到平滑过渡的边缘,实现抗锯齿的效果。使用这种方式来实现的抗锯齿技术有FXAA,SMAA。 这四种抗锯齿技术是目前最主流、最常见的抗锯齿技术方案。本系列文章也将将逐一讲解这些抗锯齿技术。 MSAA是最早出现的抗锯齿技术,主要通过硬件实现的,是以前非常流行的抗锯齿方式。在以前游戏画面质量很低的时候,额外性能消耗不大。但是随着游戏画面的升级,游戏中每帧需要绘制的物体也越来越多,MSAA的额外消耗也越来越大。 FXAA、SMAA是通过后处理实现抗锯齿的方式,这类抗锯齿方式的开销固定,不会因为绘制物体的多少而影响开销。 TAA最早是用于实现一些如SSR、Volume Cloud中的降噪中。近些年来延迟渲染管线逐渐流行,而由于带宽限制,延迟渲染无法使用 MSAA,而后处理的抗锯齿又没有次像素的功能,因此TAA逐渐作为抗锯齿方式,跟随延迟管线流行起来,并被UE4发扬光大。 以Unity为例,URP支持MSAA、FXAA、SMAA三种抗锯齿方式,HDRP支持FXAA、SMAA、TAA三种抗锯齿方式。 优点:使用起来简单方便,抗锯齿效果非常好。 缺点:会额外消耗大量内存和带宽,特别是对于延迟渲染来说,GBuffer 本身就已经很大了,如果再使用 MSAA,额外的带宽消耗极大。因此延迟渲染一般不会使用 MSAA来作为实现抗锯齿手段。而目前大部分 PC 端游戏都是基于延迟渲染管线的,包括Unity 的 HDRP ,所以 PC 游戏一般不会使用 MSAA。 从对硬件的利用率上来说,MSAA 对硬件的利用率其实很低,因为很多时候我们想要抗锯齿的部分,都只是在物体边缘或者高光变化的高频部分。其他颜色不怎么变化,比较低频的地方,其实是不需要抗锯齿效果的。使用 MSAA 进行大量物体的渲染时,很多带宽是被浪费的。因此即使在手机上,目前使用 MSAA 的情况也比较少。可以说,MSAA 是一种比较经典,但是目前显得略有些过时的抗锯齿方式。 不过有一种情况,是后面我们将要讲的基于后处理的方式无法处理的,那就是渲染比较细小的物体时。比如渲染头发,细绳子等物体时,因为物体太细,常常得到的图像宽度甚至不足一个像素,这时就只能使用 MSAA 或者 TAA 进行处理了。 为了搞懂TAA,我又参考了别的文章,比如: 图形学基础 - 着色 - TAA抗锯齿 TAA 是一种抗空域走样的技术,也有人译为帧间抗锯齿。我在前文 《采样理论》 中把走样分为了时域走样(如旋转车轮)和空域走样(锯齿),但在此处 TAA 技术是为了解决空域走样的问题,注意不要混淆。 简单回顾一些空域抗锯齿 (Spatial Anti-Aliasing, SAA) 技术,最普及的莫过于 MSAA,被各大渲染引擎采用,但是 MSAA 并不适用于延迟渲染 (Deferred Rendering),随之出现了很多基于形态学的后处理抗锯齿技术,如 MLAA,FXAA,SMAA 等,虽然他们表现良好且支持延迟渲染,但是都会面临时间稳定性不强的问题,TAA 刚好解决了这一点。 如下图所示,SSAA在每帧都需要执行多个子像素采样,而TAA则是把这些采样点均摊到多帧,减轻了每帧的负担: 后面的内容我就不复制了,看到这张图应该大致明白TAA是怎么做的了。 --------------------------分隔线--------------------- TAA的原理和 SSAA 大致相同,都是每个像素点有多个采样点。但是不同与 SSAA 的方式, TAA (Temporal Anti-Aliasing) 综合历史帧的数据来实现抗锯齿,这样会将每个像素点的多次采样均摊到多个帧中,相对的开销要小得多。 TAA 本质上是和 SSAA 类似的原理,所以完全不会有后处理抗锯齿的次像素问题,AA效果可以和 MSAA 相当。由于 MSAA 在延迟渲染管线中无法使用,且使用 Motion Vector 也和延迟渲染比较契合,因此在 Unreal 引擎的带领下,TAA 目前也逐渐成为现代 3A游戏的标配。 当然其缺点也比较明显,虽然 TAA 实现的原理并不复杂,但是和渲染管线关系密切,需要改动的地方较多。可以说是牵一发而动全身,对于其他的每一项渲染功能,都需要考虑 TAA 的影响。 除此之外 TAA 中很容易出现一些闪烁,鬼影等问题,需要不同的应用场景进行处理。因为 TAA 和渲染管线是紧密相关的,在不同游戏引擎中,TAA的很多细节处理方式都不太一样。 除了增加每个像素点的采样数,我们实现抗锯齿的另一种方式就是后处理。考虑到大部分情况下,我们想要抗锯齿的部分,其实都只是在物体边缘或者高光变化的部分,我们通过后处理的方式,检测出图像块之间的边缘(通过卷积么???),然后根据边缘信息对边缘两侧的图像进行混合处理,达到抗锯齿的效果。这类基于后处理的抗锯齿方式也叫做形变抗锯齿/Morphological antialiasing。 比如下图中的图像,左边是待处理的图像,中间是找到的边界,右侧是将边界两侧像素混合后得到的抗锯齿效果。 形变抗锯齿的实现方式有非常多种,原理大致都是基于上面提到的过程。有两种形变抗锯齿经历了时间的考验,成为了目前最流行的抗锯齿方式,就是 FXAA 和 SMAA,我们这里就先来分析下 FXAA 实现的原理。 FXAA(fast approximate antialiasing) 是一种比较注重性能的形变抗锯齿方式,只需要一次 Pass 就能得到结果,FXAA 注重快速的视觉抗锯齿效果,而非追求完美的真实抗锯齿效果。 FXAA 的优点就是集成比较方便,只需要一个 Pass 来实现抗锯齿,同时提供了两个版本,可根据情况灵活选用,是目前手机上的最常用的抗锯齿方式。 FXAA的缺点是画面会略微有些模糊。而且由于FXAA是基于后处理判断边界来实现的,因此没有次像素特性,在光照高频(颜色变化很快)的地方会不稳定。单独看静态的场景没有问题,但是移动摄影机时,就会导致一些闪烁。 现在终于可以回到视频的1小时15分左右了,有了上面的知识点了解,再来听FXAA和TAA就很简单了。 看到有弹幕说原神用了TAA,嗯?? 然后提到了DLSS,思路类似,不过是用深度学习,猜出来的
2023-07-18 09:27:171

【求助】求matlab小波变换图像处理实现程序~

求正确答案
2023-07-18 09:27:251

xgboost 多分类 标签怎么设置

网页链接
2023-07-18 09:27:591

什么是 cluster sampling, 请加以解释.

Cluster sampling is a sampling technique used when "natural" groupings are evident in a statistical population. It is often used in marketing research. In this technique the total population is divided into these groups (or clusters) and a sample of the groups is selected. Then the required information is collected from the elements within each selected group. This may be done for every element in these groups or a subsample of elements may be selected within each of these groups. The technique works best when most of the variation in the population is within the groups not beeen them 整群抽样 (Cluster sampling) 目录 1 什么是整群抽样 2 整群抽样的优缺点 3 整群抽样的实施步骤 4 整群抽样与分层抽样的匹别 什么是整群抽样 整群抽样又称聚类抽样。是将总体中各单位归并成若干个互不交叉、互不重复的 *** ,称之为群;然后以群为抽样单位抽取样本的一种抽样方式。 整群抽样应用整群抽样时,要求各群有较好的代表性,即群内各单位的差异要大,群间差异要小。 整群抽样的优缺点 整群抽样的优点是实施方便、节省经费; 整群抽样的缺点是往往由于不同群之间的差异较大,由此而引起的抽样误差往往大于简单随机抽样。 整群抽样的实施步骤 先将总体分为i个群,然后从i个群钟随即抽取若干个群,对这些群内所有个体或单元均进行调查。抽样过程可分为以下几个步骤:   一、确定分群的标注   二、总体(N)分成若干个互不重叠的部分,每个部分为一群。   三、据各样本量,确定英国抽取的群数。   四、采用简单随机抽样或系统抽样方法,从i群中抽取确定的群数。 整群抽样与分层抽样的匹别 整群抽样与分层抽样在形式上有相似之处,但实际上差别很大。 分层抽样要求各层之间的差异很大,层内个体或单元差异小,而整群抽样要求群与群之间的差异比较小,群内个体或单元差异大; 分层抽样的样本时从每个层内抽取若干单元或个体构成,而整群抽样则是要么整群抽取,要么整群不被抽取。
2023-07-18 09:28:261

LightGBM 如何确定最佳迭代次数?

LightGBM中实现了哪些梯度增强方法,它们有什么区别?一般来说,哪些参数是重要的?哪些正则化参数需要调整?如何调整lightGBM参数在python?梯度提升的方法使用LightGBM,你可以运行不同类型的渐变增强提升方法。你有:GBDT、DART和GOSS,这些可以通过“boosting”参数指定。在下一节中,我将对这些方法进行解释和比较。梯度提升决策树(GBDT)该方法是本文首先提出的传统梯度提升决策树,也是XGBoost和pGBRT等优秀库背后的算法。由于其精度高、效率高、稳定性好,目前已得到广泛的应用。你可能知道gbdt是一个决策树的集合模型但是它到底是什么意思呢?让我来告诉你要点。它基于三个重要原则:弱学习者(决策树)梯度优化提升技术所以在gbdt方法中,我们有很多决策树(弱学习者)。这些树是按顺序构建的:首先,树学习如何适应目标变量第二棵树学习如何适合残差(差异)之间的预测,第一棵树和地面真相第三棵树学习如何匹配第二棵树的残差,以此类推。所有这些树都是通过传播整个系统的误差梯度来训练的。gbdt的主要缺点是,在每个树节点中找到最佳分割点非常耗时,而且会消耗内存。其他的提升方法试图解决这个问题。DART梯度提升在这篇优秀的论文中(arxiv/1505.01866),你可以学习所有关于DART梯度提升的东西,这是一种使用dropout(神经网络中的标准)的方法,来改进模型正则化和处理一些其他不太明显的问题。也就是说,gbdt存在过度专门化(over-specialization)的问题,这意味着在以后的迭代中添加的树往往只会影响对少数实例的预测,而对其余实例的贡献则可以忽略不计。添加dropout会使树在以后的迭代中更加难以专门化那些少数的示例,从而提高性能。lgbm goss基于梯度的单边采样事实上,将该方法命名为lightgbm的最重要原因就是使用了基于本文的Goss方法。Goss是较新的、较轻的gbdt实现(因此是“light”gbm)。标准的gbdt是可靠的,但在大型数据集上速度不够快。因此goss提出了一种基于梯度的采样方法来避免搜索整个搜索空间。我们知道,对于每个数据实例,当梯度很小时,这意味着不用担心数据是经过良好训练的,而当梯度很大时,应该重新训练。这里我们有两个方面,数据实例有大的和小的渐变。因此,goss以一个大的梯度保存所有数据,并对一个小梯度的数据进行随机抽样(这就是为什么它被称为单边抽样)。这使得搜索空间更小,goss的收敛速度更快。让我们把这些差异放在一个表格中:注意:如果你将增强设置为RF,那么lightgbm算法表现为随机森林而不是增强树! 根据文档,要使用RF,必须使用baggingfraction和featurefraction小于1。正则化在这一节中,我将介绍lightgbm的一些重要的正则化参数。显然,这些是您需要调优以防止过拟合的参数。您应该知道,对于较小的数据集(<10000条记录),lightGBM可能不是最佳选择。在这里,调优lightgbm参数可能没有帮助。此外,lightgbm使用叶向树生长算法,而xgboost使用深度树生长算法。叶向方法使树的收敛速度更快,但过拟合的几率增加。注意:如果有人问您LightGBM和XGBoost之间的主要区别是什么?你可以很容易地说,它们的区别在于它们是如何实现的。根据lightGBM文档,当面临过拟合时,您可能需要做以下参数调优:使用更小的max_bin使用更小的num_leaves使用mindatainleaf和minsumhessianin_leaf通过设置baggingfraction和baggingfreq使用bagging_freq通过设置feature_fraction使用特征子采样使用更大的训练数据尝试lambdal1、lambdal2和mingainto_split进行正则化尝试max_depth以避免树的深度增长在下面的部分中,我将更详细地解释这些参数。lambda_l1Lambdal1(和lambdal2)控制l1/l2,以及mingainto_split用于防止过拟合。我强烈建议您使用参数调优(在后面的小节中讨论)来确定这些参数的最佳值。num_leavesnumleaves无疑是控制模型复杂性的最重要参数之一。通过它,您可以设置每个弱学习者拥有的叶子的最大数量。较大的numleaves增加了训练集的精确度,也增加了因过度拟合而受伤的几率。根据文档,一个简单的方法是numleaves = 2^(maxdepth)但是,考虑到在lightgbm中叶状树比层次树更深,你需要小心过度拟合!因此,必须同时使用maxdepth调优numleaves。子采样通过子样例(或bagging_fraction),您可以指定每个树构建迭代使用的行数百分比。这意味着将随机选择一些行来匹配每个学习者(树)。这不仅提高了泛化能力,也提高了训练速度。我建议对基线模型使用更小的子样本值,然后在完成其他实验(不同的特征选择,不同的树结构)时增加这个值。feature_fraction特征分数或子特征处理列采样,LightGBM将在每次迭代(树)上随机选择特征子集。例如,如果将其设置为0.6,LightGBM将在训练每棵树之前选择60%的特性。这个功能有两种用法:可以用来加速训练吗可以用来处理过拟合吗max_depth该参数控制每棵经过训练的树的最大深度,将对:num_leaves参数的最佳值模型的性能训练时间注意,如果您使用较大的max_depth值,那么您的模型可能会对于训练集过拟合。max_bin装箱是一种用离散视图(直方图)表示数据的技术。Lightgbm在创建弱学习者时,使用基于直方图的算法来寻找最优分割点。因此,每个连续的数字特性(例如视频的视图数)应该被分割成离散的容器。此外,在这个GitHub repo(huanzhang12/lightgbm-gpu)中,你可以找到一些全面的实验,完全解释了改变max_bin对CPU和GPU的影响。如果你定义maxbin 255,这意味着我们可以有255个唯一的值每个特性。那么,较小的maxbin会导致更快的速度,较大的值会提高准确性。训练参数当你想用lightgbm训练你的模型时,一些典型的问题可能会出现:训练是一个耗时的过程处理计算复杂度(CPU/GPU RAM约束)处理分类特征拥有不平衡的数据集定制度量的需要需要对分类或回归问题进行的调整在本节中,我们将尝试详细解释这些要点。num_iterationsNum_iterations指定增强迭代的次数(要构建的树)。你建立的树越多,你的模型就越精确,代价是:较长的训练时间过拟合的可能性更高从较少的树开始构建基线,然后当您想从模型中挤出最后的%时增加基线。建议使用更小的learningrate和更大的numiteration。此外,如果您想要更高的numiteration,那么您应该使用earlystopping_rounds,以便在无法学习任何有用的内容时停止训练。earlystoppingrounds如果验证度量在最后一轮停止后没有改进,此参数将停止训练。这应该与一些迭代成对地进行定义。如果你把它设置得太大,你就增加了过拟合的变化(但你的模型可以更好)。经验法则是让它占num_iterations的10%。lightgbm categorical_feature使用lightgbm的优势之一是它可以很好地处理分类特性。是的,这个算法非常强大,但是你必须小心如何使用它的参数。lightgbm使用一种特殊的整数编码方法(由Fisher提出)来处理分类特征实验表明,该方法比常用的单热编码方法具有更好的性能。它的默认值是“auto”,意思是:让lightgbm决定哪个表示lightgbm将推断哪些特性是绝对的。它并不总是工作得很好,我强烈建议您简单地用这段代码手动设置分类特性cat_col = dataset_name.select_dtypes(‘object").columns.tolist()但是在幕后发生了什么,lightgbm是如何处理分类特征的呢?根据lightgbm的文档,我们知道树学习器不能很好地使用一种热编码方法,因为它们在树中深度生长。在提出的替代方法中,树形学习器被最优构造。例如,一个特征有k个不同的类别,有2^(k-1) -1个可能的划分,通过fisher方法,可以改进到k * log(k),通过找到分类特征中值排序直方图的最佳分割方式。isunbalance vs scalepos_weight其中一个问题,你可能面临的二分类问题是如何处理不平衡的数据集。显然,您需要平衡正/负样本,但如何在lightgbm中做到这一点呢?lightgbm中有两个参数允许你处理这个问题,那就是isunbalance和scalepos_weight,但是它们之间有什么区别呢?当您设置Is_unbalace: True时,算法将尝试自动平衡占主导地位的标签的权重(使用列集中的pos/neg分数)如果您想改变scaleposweight(默认情况下是1,这意味着假设正负标签都是相等的),在不平衡数据集的情况下,您可以使用以下公式来正确地设置它sample_pos_weight = number of negative samples / number of positive sampleslgbm函数宏指令(feaval)有时你想定义一个自定义评估函数来测量你的模型的性能,你需要创建一个“feval”函数。Feval函数应该接受两个参数:preds 、train_data并返回evalname、evalresult、ishigherbetter让我们一步一步地创建一个自定义度量函数。定义一个单独的python函数def feval_func(preds, train_data): # Define a formula that evaluates the results return ("feval_func_name", eval_result, False)使用这个函数作为参数:print("Start training...") lgb_train = lgb.train(..., metric=None, feval=feval_func)注意:要使用feval函数代替度量,您应该设置度量参数 metric “None”。分类参数与回归参数我之前提到的大多数事情对于分类和回归都是正确的,但是有些事情需要调整。具体你应该:lightgbm最重要的参数我们已经在前面的部分中回顾并了解了有关lightgbm参数的知识,但是如果不提及Laurae令人难以置信的基准测试,那么关于增强树的文章将是不完整的。您可以了解用于lightGBM和XGBoost的许多问题的最佳默认参数。你可以查看这里,但一些最重要的结论是:注意:绝对不要理会任何参数值的默认值,并根据您的问题进行调整。 也就是说,这些参数是超参数调整算法的一个很好的起点。Python中的Lightgbm参数调整示例最后,在解释完所有重要参数之后,该进行一些实验了!我将使用最受欢迎的Kaggle竞赛之一:Santander Customer Transaction Prediction. 交易预测我将使用本文介绍如何在任何脚本中的Python中运行超参数调整。在开始之前,一个重要的问题! 我们应该调整哪些参数?请注意您要解决的问题,例如,Santander 数据集高度不平衡,在调整时应考虑到这一点!一些参数是相互依赖的,必须一起调整。 例如,mindatainleaf取决于训练样本和numleaves的数量。注意:为超参数创建两个字典是一个好主意,一个字典包含您不想调整的参数和值,另一个字典包含您想要调整的参数和值范围。SEARCH_PARAMS = {"learning_rate": 0.4, "max_depth": 15, "num_leaves": 20, "feature_fraction": 0.8, "subsample": 0.2} FIXED_PARAMS={"objective": "binary", "metric": "auc", "is_unbalance":True, "boosting":"gbdt", "num_boost_round":300, "early_stopping_rounds":30}
2023-07-18 09:28:341

samtools常用命令详解

samtools是一个用于操作sam和bam文件的工具集合。 view命令的主要功能是: 将输入文件转换成输出文件,通常是将比对后的sam文件转换为bam文件 ,然后对bam文件进行各种操作,比如数据的排序(和提取(这些操作是对bam文件进行的,因而当输入为sam文件的时候,不能进行该操作)。 view命令中,对sam文件头部的输入( -t 或 -T )和输出( -h )是单独的一些参数来控制的。 默认情况下不加 region,则是输出所有的 region. Options:    -b output BAM     默认下输出是 SAM 格式文件,该参数设置输出 BAM 格式    -h print header for the SAM output     默认下输出的 sam 格式文件不带 header,该参数设定输出sam文件时带 header 信息    -H print header only (no alignments)    -S input is SAM     默认下输入是 BAM 文件,若是输入是 SAM 文件,则最好加该参数,否则有时候会报错。    -u uncompressed BAM output (force -b)     该参数的使用需要有-b参数,能节约时间,但是需要更多磁盘空间。    -c Instead of printing the alignments, only count them and print the total number. All filter options, such as ‘-f", ‘-F" and ‘-q" , are taken into account.    -1 fast compression (force -b)    -x output FLAG in HEX (samtools-C specific)    -X output FLAG in string (samtools-C specific)    -c print only the count of matching records    -L FILE output alignments overlapping the input BED FILE [null]    -t FILE list of reference names and lengths (force -S) [null]     使用一个list文件来作为header的输入    -T FILE reference sequence file (force -S) [null]     使用序列fasta文件作为header的输入    -o FILE output file name [stdout]    -R FILE list of read groups to be outputted [null]    -f INT required flag, 0 for unset [0]    -F INT filtering flag, 0 for unset [0]     Skip alignments with bits present in INT [0]      数字4代表该序列没有比对到参考序列上      数字8代表该序列的mate序列没有比对到参考序列上    -q INT minimum mapping quality [0]    -l STR only output reads in library STR [null]    -r STR only output reads in read group STR [null]    -s FLOAT fraction of templates to subsample; integer part as seed [-1]    -? longer help</pre> 如果没有指定option和region选项,则会在屏幕中显示sam格式的文件,如下所示。 例子: (1)将sam文件和bam文件相互转换。注意: 没有header的sam文件不能转换成bam文件。 (2) 提取比对到参考序列上的比对结果 F (3)提取paired reads中两条reads都比对到参考序列上的比对结果,只需要把两个4+8的值12作为过滤参数即可 (4) 提取没有比对到参考序列上的比对结果 f (5)提取paired reads中比对到参考基因组上的数据 (6)提取bam文件中比对到caffold1上的比对结果,并保存到sam文件格式 (7)提取scaffold1上能比对到30k到100k区域的比对结果 (8)根据fasta文件,将 header 加入到 sam 或 bam 文件中 (9)sam 和 bam 格式转换 对bam文件进行排序,不能对sam文件进行排序。以leftmost coordinates的方式对比对结果进行排序,或者使用-n参数以read名称进行排序。将会添加适当的@HD-SO排序顺序标头标签或者如果有必要的话,将会更新现存的一个排序顺序标头标签。sort命令的输出默认是标准输出写入,或者使用-o参数时,指定bam文件输出名。sort命令还会在内存不足时创建临时文件tmpprefix.%d.bam Options:    -m 设置每个线程运行时的内存大小,可以使用K,M和G表示内存大小。默认下是 500,000,000 即500M。对于处理大数据时,如果内存够用,则设置大点的值,以节约时间。    -n 设置按照read名称进行排序。默认下是按序列在fasta文件中的顺序(即header)和序列从左往右的位点排序。    -l INT 设置输出文件压缩等级。0-9,0是不压缩,9是压缩等级最高。不设置此参数时,使用默认压缩等级;    -o FILE 设置最终排序后的输出文件名;    -O FORMAT 设置最终输出的文件格式,可以是bam,sam或者cram,默认为bam;    -T PREFIX 设置临时文件的前缀;    -@ INT 设置排序和压缩是的线程数量,默认是单线程。 例子: 当有多个样本的bam文件时,可以使用samtools的merge命令将这些bam文件进行合并为一个bam文件。。Merge命令将多个已经排序后的bam文件合并成为一个排序的且保持所有输入记录并保持现有排序顺序的bam文件。 Options:    -1 指定压缩等级;    -b FILE 输入文件列表,一个文件一行;    -f overwrite the output BAM if exist 强制覆盖同名输出文件;    -h FILE copy the header in FILE to <out.bam> [in1.bam]。 指定FILE内的"@"头复制到输出bam文件中并替换输出文件的文件头。否则,输出文件的文件头将从第一个输入文件复制过来;    -n sort by read names。设定输入比对文件是以read名进行排序的而不是以染色体坐标排序的;    -R STR merge file in the specified region STR [all]。合并输入文件的指定区域;    -r attach RG tag (inferred from file names)。使RG标签添加到每一个比对文件上,标签值来自文件名;    -u uncompressed BAM output。输出的bam文件不压缩;    -c 当多个输入文件包含相同的@RG头ID时,只保留第一个到合并后输出的文件。当合并多个相同样本的不同文件时,非常有用。    -p 与-c参数类似,对于要合并的每一个文件中的@PG ID只保留第一个文件中的@PG。 例子 Note: Samtools" merge does not reconstruct the @RG dictionary in the header. Users must provide the correct header with -h, or uses Picard which properly maintains the header dictionary in merging. 为了能够快速访问bam文件,可以为已经基于坐标排序后bam或者cram的文件创建索引,生成以.bai或者.crai为后缀的索引文件。必须使用排序后的文件,否则可能会报错。另外,不能对sam文件使用此命令。如果想对sam文件建立索引,那么可以使用tabix命令创建。 Options:    -b 创建bai索引文件,未指定输出格式时,此参数为默认参数;    -c 创建csi索引文件,默认情况下,索引的最小间隔值为2^14,与bai格式一致;    -m INT 创建csi索引文件,最小间隔值2^INT; 例子: 以下两种命令结果一样 对fasta文件建立索引,生成的索引文件以.fai后缀结尾。该命令也能依据索引文件快速提取fasta文件中的某一条(子)序列.如果没有指定区域,faidx命令就创建文件索引并生成后缀为.fai的索引文件。如果指定区域,那么就是生产并显示fasta格式的子序列。输入文件可以使BGZF压缩格式的文件。 输入文件中的序列要有不同的名称。如果不是这样,即存在相同名称的序列,在建立索引的过程中将发出有关重复序列的警告而且生产的同名子序列的信息都要被第一个同名子序列的信息覆盖。 例:对基因组文件建立索引 上图中先显示了待处理的test.fasta文件的内容,由4个长度不一的序列组成,其中前两个重名。然后使用faidx命令进行处理。最后在显示生产索引文件test.fasta.fai的内容。 生成了索引文件fasta.fai,是一个文本文件,分成了5列。 于是通过此文件,可以定位子序列在fasta文件在磁盘上的存放位置,直接快速调出子序列。 由于有索引文件,可以使用以下命令很快从基因组中提取到fasta格式的子序列 提取序列如下图: tview能直观的显示出reads比对基因组的情况,和基因组浏览器有点类似。 当给出参考基因组的时候,会在第一排显示参考基因组的序列,否则,第一排全用N表示。 按下 g ,则提示输入要到达基因组的某一个位点。例子“scaffold_10:1000"表示到达第10号scaffold的第1000个碱基位点处。 使用H(左)J(上)K(下)L(右)移动显示界面。大写字母移动快,小写字母移动慢。 使用空格建向左快速移动(和 L 类似),使用Backspace键向左快速移动(和 H 类似)。 Ctrl+H 向左移动1kb碱基距离; Ctrl+L 向右移动1kb碱基距离 可以用颜色标注比对质量,碱基质量,核苷酸等。30~40的碱基质量或比对质量使用白色表示;20~30黄色;10~20绿色;0~10蓝色。 使用点号"."切换显示碱基和点号;使用r切换显示read name等 还有很多其它的使用说明,具体按 ? 键来查看。 统计输入文件的相关数据并将这些数据输出至屏幕显示。每一项统计数据都由两部分组成,分别是QC pass和QC failed,表示通过QC的reads数据量和未通过QC的reads数量。以“PASS + FAILED”格式显示。 例如 得到每个碱基位点或者区域的测序深度,并输出到标准输出。depth命令计算每一个位点的测序深度并在标准显示设备中显示。 注意 :使用此命令之前必须先samtools index。 Options:    -a 输出所有位点,包括零深度的位点;-a –a,--aa 完全输出所有位点,包括未使用到的参考序列;    -b FILE 计算BED文件中指定位置或区域的深度;    -f FiLE 使用在FILE中的指定bam文件;    -I INT 忽略掉小于此INT值的reads;    -q INT 只计算碱基质量值大于此值的reads;    -Q INT 只计算比对质量值大于此值的reads;    -r CHR:FROM –TO 只计算指定区域的reads,后面跟染色体号(region) 示例: 注意: in.bam 必须经过了排序。 depth命令运行如下图所示: 一共得到3列以指标分隔符分隔的数据,第一列为染色体名称,第二列为位点,第三列为覆盖深度。 该命令用于生成bcf文件,再使用bcftools进行SNP和Indel的分析。bcftools是samtool中附带的软件,在samtools的安装文件夹中可以找到。 Options:    -f –来输入有索引文件的fasta参考序列;    -F –gap-frac FLOAT 含有间隔reads的最小片段。    -l –positions FILE BED文件或者包含区域位点的位置列表文件。位置文件包含两列,染色体和位置,从1开始计数。BED文件至少包含3列,染色体、开始位置和结束位置,开始端从0开始计数。    -r –region STR 只在指定区域产生pileup,需要已建立索引的bam文件。通常和-l参数一起使用。    -o –output FILE 生成pileup格式文件或者VCF、BCF文件而不是默认的标准输出。    -g –BCF 计算基因型的似然值和输出文件格式为BCF。    -v –VCF 计算基因型的似然值和输出文件格式为VCF。    -C --adjust-MQ INT 用于降低比对质量的系数,如果reads中含有过多的错配。不能设置为零。BWA推荐值为50。    -A --count-orphans 在检测变异中,不忽略异常的reads对。    -D –输出每个样本的reads深度。    -V –输出每个样本未比对到参考基因组的reads数量。    -t –output-tags LIST设置FORMAT和INFO的列表内容,以逗号分割。    -u –uncompressed 生成未压缩的VCF和BCF文件。    -I –skip-indel 不检测INDEL。    -m –min-ireads INT 候选INDEL的最小间隔的reads。 下面是一个使用-r参数和-l参数生成vcf文件的实例: mpileup不使用-u或-g参数时,则不生成二进制的bcf文件,而生成一个文本文件(输出到标准输出)。该文本文件统计了参考序列中每个碱基位点的比对情况;该文件每一行代表了参考序列中某一个碱基位点的比对结果。比如: mpileup生成的结果包含6行:参考序列名;位置;参考碱基;比对上的reads数;比对情况;比对上的碱基的质量。 其中第5列比较复杂,解释如下: NGS上机测序前需要进行PCR一步,使一个模板扩增出一簇,从而在上机测序的时候表现出为1个点,即一个reads。若一个模板扩增出了多簇,结果得到了多个reads,这些reads的坐标(coordinates)是相近的。在进行了reads比对后需要将这些由PCR duplicates获得的reads去掉,并只保留最高比对质量的read。使用rmdup命令即可完成. Options:    -s 对single-end reads。默认情况下,只对paired-end reads    -S 将Paired-end reads作为single-end reads处理。 检索和打印已建立索引的bam文件的统计数据,包括参考序列名称、序列长度、比对上的read数量和未比对上的read数量。输出结果显示在屏幕上,以制表符分割。 如下图所示: idxstats 统计一个表格,4列,分别为”序列名,序列长度,比对上的reads数,unmapped reads number”。第4列应该是paired reads中有一端能匹配到该scaffold上,而另外一端不匹配到任何scaffolds上的reads数。 计算由BED文件指定的基因组区域内的总碱基数量。 如下图所示: reheader 替换bam文件的头 cat 连接多个bam文件,适用于非sorted的bam文件 有时候,我们需要提取出比对到一段参考序列的reads,进行小范围的分析,以利于debug等。这时需要将bam或sam文件转换为fastq格式。 该网站提供了一个bam转换为fastq的程序: http://www.hudsonalpha.org/gsl/information/software/bam2fastq 1:从bam中过滤掉没有比对上的信息,并将比对上的部分保存到sam中 2:从bam中过滤没有比对上的信息,并保存到bam中:(要加-h,表示输出header) 注意:虽然有些没有比对上的结果 的flag值是141,77等,但是都可以用4过滤掉。 3:提取为fastq:主要参数为-f,-F,-G三个。 提取没有比对上的信息到fastq用: 提取比对上的reads到fastq用 REF: https://www.plob.org/article/7112.html http://www.chenlianfu.com/?p=1399 http://en.wikipedia.org/wiki/SAMtools http://www.htslib.org/doc/samtools-1.1.html http://sourceforge.net/projects/samtools/files/ http://samtools.sourceforge.net/samtools.shtml https://www.cnblogs.com/emanlee/p/4316581.html
2023-07-18 09:28:411

池化层的作用不包括

A.解决卷积计算量过大的问题B.降低特征图的分辨率C.实现不同尺度特征的提取D.实现特征分类答案:D池化层是当前卷积神经网络中常用组件之一,它最早见于LeNet一文,称之为Subsample。自AlexNet之后采用Pooling命名。池化层是模仿人的视觉系统对数据进行降维,用更高层次的特征表示图像。实施池化的目的:(1) 降低信息冗余;(2) 提升模型的尺度不变性、旋转不变性;(3) 防止过拟合。池化层的常见操作包含以下几种:最大值池化,均值池化,随机池化,中值池化,组合池化等。
2023-07-18 09:29:011

为什么iphone屏幕出现了一个框框放大镜

是因为你的手机开启了缩放功能。1、首先我们选择手机中的【设置】进入,在【设置】中,我们在下方可以找到【通用】。2、在【通用】中有个【辅助功能】,我们进入它。3、然后我们选择【缩放】打开。4、在缩放中需要把上面的绿色按钮点掉。按照以上方法,就可以关闭放大镜了。拓展资料1、缩小图像(或称为下采样(subsampled)或降采样(downsampled))的主要目的有两个,然而,确实有一些缩放方法能够增加图像的信息,从而使得缩放后的图像质量超过原图质量的。2、放大图像(或称为上采样(upsampling)或图像插值(interpolating))的主要目的是放大原图像,从而可以显示在更高分辨率的显示设备上。对图像的缩放操作并不能带来更多关于该图像的信息, 因此图像的质量将不可避免地受到影响。
2023-07-18 09:29:241

图像缩放的用途

缩小图像(或称为下采样(subsampled)或降采样(downsampled))的主要目的有两个:1、使得图像符合显示区域的大小;2、生成对应图像的缩略图。放大图像(或称为上采样(upsampling)或图像插值(interpolating))的主要目的是放大原图像,从而可以显示在更高分辨率的显示设备上。对图像的缩放操作并不能带来更多关于该图像的信息, 因此图像的质量将不可避免地受到影响。然而,确实有一些缩放方法能够增加图像的信息,从而使得缩放后的图像质量超过原图质量的。
2023-07-18 09:29:571

xgboost怎么实现模型融合

XGBoost参数调优完全指南(附Python代码) 译注:文内提供的代码和运行结果有一定差异,可以从这里下载完整代码对照参考。另外,我自己跟着教程做的时候,发现我的库无法解析字符串类型的特征,所以只用其中一部分特征做的,具体数值跟文章中不一样,反而可以帮助理解文章。所以大家其实也可以小小修改一下代码,不一定要完全跟着教程做~ ^0^ 需要提前安装好的库: 简介 如果你的预测模型表现得有些不尽如人意,那就用XGBoost吧。XGBoost算法现在已经成为很多数据工程师的重要武器。它是一种十分精致的算法,可以处理各种不规则的数据。 构造一个使用XGBoost的模型十分简单。但是,提高这个模型的表现就有些困难(至少我觉得十分纠结)。这个算法使用了好几个参数。所以为了提高模型的表现,参数的调整十分必要。在解决实际问题的时候,有些问题是很难回答的——你需要调整哪些参数?这些参数要调到什么值,才能达到理想的输出? 这篇文章最适合刚刚接触XGBoost的人阅读。在这篇文章中,我们会学到参数调优的技巧,以及XGboost相关的一些有用的知识。以及,我们会用Python在一个数据集上实践一下这个算法。 你需要知道的 XGBoost(eXtreme Gradient Boosting)是Gradient Boosting算法的一个优化的版本。 特别鸣谢:我个人十分感谢Mr Sudalai Rajkumar (aka SRK)大神的支持,目前他在AV Rank中位列第二。如果没有他的帮助,就没有这篇文章。在他的帮助下,我们才能给无数的数据科学家指点迷津。给他一个大大的赞! 内容列表 1、XGBoost的优势 2、理解XGBoost的参数 3、调整参数(含示例) 1、XGBoost的优势 XGBoost算法可以给预测模型带来能力的提升。当我对它的表现有更多了解的时候,当我对它的高准确率背后的原理有更多了解的时候,我发现它具有很多优势: 1、正则化 标准GBM的实现没有像XGBoost这样的正则化步骤。正则化对减少过拟合也是有帮助的。 实际上,XGBoost以“正则化提升(regularized boosting)”技术而闻名。 2、并行处理 XGBoost可以实现并行处理,相比GBM有了速度的飞跃。 不过,众所周知,Boosting算法是顺序处理的,它怎么可能并行呢?每一课树的构造都依赖于前一棵树,那具体是什么让我们能用多核处理器去构造一个树呢?我希望你理解了这句话的意思。 XGBoost 也支持Hadoop实现。 3、高度的灵活性 XGBoost 允许用户定义自定义优化目标和评价标准 它对模型增加了一个全新的维度,所以我们的处理不会受到任何限制。 4、缺失值处理 XGBoost内置处理缺失值的规则。 用户需要提供一个和其它样本不同的值,然后把它作为一个参数传进去,以此来作为缺失值的取值。XGBoost在不同节点遇到缺失值时采用不同的处理方法,并且会学习未来遇到缺失值时的处理方法。 5、剪枝 当分裂时遇到一个负损失时,GBM会停止分裂。因此GBM实际上是一个贪心算法。 XGBoost会一直分裂到指定的最大深度(max_depth),然后回过头来剪枝。如果某个节点之后不再有正值,它会去除这个分裂。 这种做法的优点,当一个负损失(如-2)后面有个正损失(如+10)的时候,就显现出来了。GBM会在-2处停下来,因为它遇到了一个负值。但是XGBoost会继续分裂,然后发现这两个分裂综合起来会得到+8,因此会保留这两个分裂。 6、内置交叉验证 XGBoost允许在每一轮boosting迭代中使用交叉验证。因此,可以方便地获得最优boosting迭代次数。 而GBM使用网格搜索,只能检测有限个值。 7、在已有的模型基础上继续 XGBoost可以在上一轮的结果上继续训练。这个特性在某些特定的应用上是一个巨大的优势。 sklearn中的GBM的实现也有这个功能,两种算法在这一点上是一致的。 相信你已经对XGBoost强大的功能有了点概念。注意这是我自己总结出来的几点,你如果有更多的想法,尽管在下面评论指出,我会更新这个列表的! 2、XGBoost的参数 XGBoost的作者把所有的参数分成了三类: 1、通用参数:宏观函数控制。 2、Booster参数:控制每一步的booster(tree/regression)。 3、学习目标参数:控制训练目标的表现。 在这里我会类比GBM来讲解,所以作为一种基础知识。 通用参数 这些参数用来控制XGBoost的宏观功能。 1、booster[默认gbtree] 选择每次迭代的模型,有两种选择: gbtree:基于树的模型 gbliner:线性模型 2、silent[默认0] 当这个参数值为1时,静默模式开启,不会输出任何信息。 一般这个参数就保持默认的0,因为这样能帮我们更好地理解模型。 3、nthread[默认值为最大可能的线程数] 这个参数用来进行多线程控制,应当输入系统的核数。 如果你希望使用CPU全部的核,那就不要输入这个参数,算法会自动检测它。 还有两个参数,XGBoost会自动设置,目前你不用管它。接下来咱们一起看booster参数。 booster参数 尽管有两种booster可供选择,我这里只介绍tree booster,因为它的表现远远胜过linear booster,所以linear booster很少用到。 1、eta[默认0.3] 和GBM中的 learning rate 参数类似。 通过减少每一步的权重,可以提高模型的鲁棒性。 典型值为0.01-0.2。 2、min_child_weight[默认1] 决定最小叶子节点样本权重和。 和GBM的 min_child_leaf 参数类似,但不完全一样。XGBoost的这个参数是最小样本权重的和,而GBM参数是最小样本总数。 这个参数用于避免过拟合。当它的值较大时,可以避免模型学习到局部的特殊样本。 但是如果这个值过高,会导致欠拟合。这个参数需要使用CV来调整。 3、max_depth[默认6] 和GBM中的参数相同,这个值为树的最大深度。 这个值也是用来避免过拟合的。max_depth越大,模型会学到更具体更局部的样本。 需要使用CV函数来进行调优。 典型值:3-10 4、max_leaf_nodes 树上最大的节点或叶子的数量。 可以替代max_depth的作用。因为如果生成的是二叉树,一个深度为n的树最多生成 n2 个叶子。 如果定义了这个参数,GBM会忽略max_depth参数。 5、gamma[默认0] 在节点分裂时,只有分裂后损失函数的值下降了,才会分裂这个节点。Gamma指定了节点分裂所需的最小损失函数下降值。 这个参数的值越大,算法越保守。这个参数的值和损失函数息息相关,所以是需要调整的。 6、max_delta_step[默认0] 这参数限制每棵树权重改变的最大步长。如果这个参数的值为0,那就意味着没有约束。如果它被赋予了某个正值,那么它会让这个算法更加保守。 通常,这个参数不需要设置。但是当各类别的样本十分不平衡时,它对逻辑回归是很有帮助的。 这个参数一般用不到,但是你可以挖掘出来它更多的用处。 7、subsample[默认1] 和GBM中的subsample参数一模一样。这个参数控制对于每棵树,随机采样的比例。 减小这个参数的值,算法会更加保守,避免过拟合。但是,如果这个值设置得过小,它可能会导致欠拟合。 典型值:0.5-1 8、colsample_bytree[默认1] 和GBM里面的max_features参数类似。用来控制每棵随机采样的列数的占比(每一列是一个特征)。 典型值:0.5-1 9、colsample_bylevel[默认1] 用来控制树的每一级的每一次分裂,对列数的采样的占比。 我个人一般不太用这个参数,因为subsample参数和colsample_bytree参数可以起到相同的作用。但是如果感兴趣,可以挖掘这个参数更多的用处。 10、lambda[默认1] 权重的L2正则化项。(和Ridge regression类似)。 这个参数是用来控制XGBoost的正则化部分的。虽然大部分数据科学家很少用到这个参数,但是这个参数在减少过拟合上还是可以挖掘出更多用处的。 11、alpha[默认1] 权重的L1正则化项。(和Lasso regression类似)。 可以应用在很高维度的情况下,使得算法的速度更快。 12、scale_pos_weight[默认1] 在各类别样本十分不平衡时,把这个参数设定为一个正值,可以使算法更快收敛。 学习目标参数 这个参数用来控制理想的优化目标和每一步结果的度量方法。 1、objective[默认reg:linear] 这个参数定义需要被最小化的损失函数。最常用的值有: binary:logistic 二分类的逻辑回归,返回预测的概率(不是类别)。 multi:softmax 使用softmax的多分类器,返回预测的类别(不是概率)。 在这种情况下,你还需要多设一个参数:num_class(类别数目)。 multi:softprob 和multi:softmax参数一样,但是返回的是每个数据属于各个类别的概率。 2、eval_metric[默认值取决于objective参数的取值] 对于有效数据的度量方法。 对于回归问题,默认值是rmse,对于分类问题,默认值是error。 典型值有: rmse 均方根误差( ∑Ni=1?2N??????√ ) mae 平均绝对误差( ∑Ni=1|?|N ) logloss 负对数似然函数值 error 二分类错误率(阈值为0.5) merror 多分类错误率 mlogloss 多分类logloss损失函数 auc 曲线下面积 3、seed(默认0) 随机数的种子 设置它可以复现随机数据的结果,也可以用于调整参数 如果你之前用的是Scikit-learn,你可能不太熟悉这些参数。但是有个好消息,python的XGBoost模块有一个sklearn包,XGBClassifier。这个包中的参数是按sklearn风格命名的。会改变的函数名是: 1、eta ->learning_rate 2、lambda->reg_lambda 3、alpha->reg_alpha 你肯定在疑惑为啥咱们没有介绍和GBM中的"n_estimators"类似的参数。XGBClassifier中确实有一个类似的参数,但是,是在标准XGBoost实现中调用拟合函数时,把它作为"num_boosting_rounds"参数传入。 调整参数(含示例) 我已经对这些数据进行了一些处理: City变量,因为类别太多,所以删掉了一些类别。 DOB变量换算成年龄,并删除了一些数据。 增加了 EMI_Loan_Submitted_Missing 变量。如果EMI_Loan_Submitted变量的数据缺失,则这个参数的值为1。否则为0。删除了原先的EMI_Loan_Submitted变量。 EmployerName变量,因为类别太多,所以删掉了一些类别。 因为Existing_EMI变量只有111个值缺失,所以缺失值补充为中位数0。 增加了 Interest_Rate_Missing 变量。如果Interest_Rate变量的数据缺失,则这个参数的值为1。否则为0。删除了原先的Interest_Rate变量。 删除了Lead_Creation_Date,从直觉上这个特征就对最终结果没什么帮助。 Loan_Amount_Applied, Loan_Tenure_Applied 两个变量的缺项用中位数补足。 增加了 Loan_Amount_Submitted_Missing 变量。如果Loan_Amount_Submitted变量的数据缺失,则这个参数的值为1。否则为0。删除了原先的Loan_Amount_Submitted变量。 增加了 Loan_Tenure_Submitted_Missing 变量。如果 Loan_Tenure_Submitted 变量的数据缺失,则这个参数的值为1。否则为0。删除了原先的 Loan_Tenure_Submitted 变量。 删除了LoggedIn, Salary_Account 两个变量 增加了 Processing_Fee_Missing 变量。如果 Processing_Fee 变量的数据缺失,则这个参数的值为1。否则为0。删除了原先的 Processing_Fee 变量。 Source前两位不变,其它分成不同的类别。 进行了量化和独热编码(一位有效编码)。 如果你有原始数据,可以从资源库里面下载data_preparation的Ipython notebook 文件,然后自己过一遍这些步骤。 首先,import必要的库,然后加载数据。 #Import libraries: import pandas as pd import numpy as np import xgboost as xgb from xgboost.sklearn import XGBClassifier from sklearn import cross_validation, metrics #Additional scklearn functions from sklearn.grid_search import GridSearchCV #Perforing grid search import matplotlib.pylab as plt %matplotlib inline from matplotlib.pylab import rcParams rcParams["figure.figsize"] = 12, 4 train = pd.read_csv("train_modified.csv") target = "Disbursed" IDcol = "ID" 注意我import了两种XGBoost: xgb - 直接引用xgboost。接下来会用到其中的“cv”函数。 XGBClassifier - 是xgboost的sklearn包。这个包允许我们像GBM一样使用Grid Search 和并行处理。 在向下进行之前,我们先定义一个函数,它可以帮助我们建立XGBoost models 并进行交叉验证。好消息是你可以直接用下面的函数,以后再自己的models中也可以使用它。 def modelfit(alg, dtrain, predictors,useTrainCV=True, cv_folds=5, early_stopping_rounds=50): if useTrainCV: xgb_param = alg.get_xgb_params() xgtrain = xgb.DMatrix(dtrain[predictors].values, label=dtrain[target].values) cvresult = xgb.cv(xgb_param, xgtrain, num_boost_round=alg.get_params()["n_estimators"], nfold=cv_folds, metrics="auc", early_stopping_rounds=early_stopping_rounds, show_progress=False) alg.set_params(n_estimators=cvresult.shape[0]) #Fit the algorithm on the data alg.fit(dtrain[predictors], dtrain["Disbursed"],eval_metric="auc") #Predict training set: dtrain_predictions = alg.predict(dtrain[predictors]) dtrain_predprob = alg.predict_proba(dtrain[predictors])[:,1] #Print model report: print " Model Report" print "Accuracy : %.4g" % metrics.accuracy_score(dtrain["Disbursed"].values, dtrain_predictions) print "AUC Score (Train): %f" % metrics.roc_auc_score(dtrain["Disbursed"], dtrain_predprob) feat_imp = pd.Series(alg.booster().get_fscore()).sort_values(ascending=False) feat_imp.plot(kind="bar", title="Feature Importances") plt.ylabel("Feature Importance Score") 这个函数和GBM中使用的有些许不同。不过本文章的重点是讲解重要的概念,而不是写代码。如果哪里有不理解的地方,请在下面评论,不要有压力。注意xgboost的sklearn包没有“feature_importance”这个量度,但是get_fscore()函数有相同的功能。 参数调优的一般方法。 我们会使用和GBM中相似的方法。需要进行如下步骤: 1. 选择较高的学习速率(learning rate)。一般情况下,学习速率的值为0.1。但是,对于不同的问题,理想的学习速率有时候会在0.05到0.3之间波动。选择对应于此学习速率的理想决策树数量。XGBoost有一个很有用的函数“cv”,这个函数可以在每一次迭代中使用交叉验证,并返回理想的决策树数量。 2. 对于给定的学习速率和决策树数量,进行决策树特定参数调优(max_depth, min_child_weight, gamma, subsample, colsample_bytree)。在确定一棵树的过程中,我们可以选择不同的参数,待会儿我会举例说明。 3. xgboost的正则化参数的调优。(lambda, alpha)。这些参数可以降低模型的复杂度,从而提高模型的表现。 4. 降低学习速率,确定理想参数。 咱们一起详细地一步步进行这些操作。 第一步:确定学习速率和tree_based 参数调优的估计器数目。 为了确定boosting 参数,我们要先给其它参数一个初始值。咱们先按如下方法取值: 1、max_depth = 5 :这个参数的取值最好在3-10之间。我选的起始值为5,但是你也可以选择其它的值。起始值在4-6之间都是不错的选择。 2、min_child_weight = 1:在这里选了一个比较小的值,因为这是一个极不平衡的分类问题。因此,某些叶子节点下的值会比较小。 3、gamma = 0: 起始值也可以选其它比较小的值,在0.1到0.2之间就可以。这个参数后继也是要调整的。 4、subsample,colsample_bytree = 0.8: 这个是最常见的初始值了。典型值的范围在0.5-0.9之间。 5、scale_pos_weight = 1: 这个值是因为类别十分不平衡。 注意哦,上面这些参数的值只是一个初始的估计值,后继需要调优。这里把学习速率就设成默认的0.1。然后用xgboost中的cv函数来确定最佳的决策树数量。前文中的函数可以完成这个工作。 #Choose all predictors except target & IDcols predictors = [x for x in train.columns if x not in [target,IDcol]] xgb1 = XGBClassifier( learning_rate =0.1, n_estimators=1000, max_depth=5, min_child_weight=1, gamma=0, subsample=0.8, colsample_bytree=0.8, objective= "binary:logistic", nthread=4, scale_pos_weight=1, seed=27) modelfit(xgb1, train, predictors) 从输出结果可以看出,在学习速率为0.1时,理想的决策树数目是140。这个数字对你而言可能比较高,当然这也取决于你的系统的性能。 注意:在AUC(test)这里你可以看到测试集的AUC值。但是如果你在自己的系统上运行这些命令,并不会出现这个值。因为数据并不公开。这里提供的值仅供参考。生成这个值的代码部分已经被删掉了。<喎"/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjwvYmxvY2txdW90ZT4NCjxoMSBpZD0="第二步-maxdepth-和-minweight-参数调优">第二步: max_depth 和 min_weight 参数调优 我们先对这两个参数调优,是因为它们对最终结果有很大的影响。首先,我们先大范围地粗调参数,然后再小范围地微调。 注意:在这一节我会进行高负荷的栅格搜索(grid search),这个过程大约需要15-30分钟甚至更久,具体取决于你系统的性能。你也可以根据自己系统的性能选择不同的值。 param_test1 = { "max_depth":range(3,10,2), "min_child_weight":range(1,6,2) } gsearch1 = GridSearchCV(estimator = XGBClassifier( learning_rate =0.1, n_estimators=140, max_depth=5, min_child_weight=1, gamma=0, subsample=0.8, colsample_bytree=0.8, objective= "binary:logistic", nthread=4, scale_pos_weight=1, seed=27), param_grid = param_test1, scoring="roc_auc",n_jobs=4,iid=False, cv=5) gsearch1.fit(train[predictors],train[target]) gsearch1.grid_scores_, gsearch1.best_params_, gsearch1.best_score_
2023-07-18 09:30:121

xgboost参数调优

一. 确定最佳决策树数量 选择较高的学习速率(learning rate)。一般情况下,学习速率的值为0.1。但是,对于不同的问题,理想的学习速率有时候会在0.05到0.3之间波动。选择对应于此学习速率的理想决策树数量。XGBoost有一个很有用的函数“cv”,这个函数可以在每一次迭代中使用交叉验证,并返回理想的决策树数量。 先给定boosting主要参数一个初始值,后续再进行调优。 1、max_depth = 5 :这个参数的取值最好在3-10之间。我选的起始值为5,但是你也可以选择其它的值。起始值在4-6之间都是不错的选择。 2、min_child_weight = 1:在这里选了一个比较小的值,因为这是一个极不平衡的分类问题。因此,某些叶子节点下的值会比较小。 3、gamma = 0: 起始值也可以选其它比较小的值,在0.1到0.2之间就可以。这个参数后继也是要调整的。 4、subsample,colsample_bytree = 0.8: 这个是最常见的初始值了。典型值的范围在0.5-0.9之间。 5、scale_pos_weight = 1: 这个值是因为类别十分不平衡。 二. 主要参数调优 对于给定的学习速率和决策树数量,进行决策树特定参数调优(max_depth, min_child_weight, gamma, subsample, colsample_bytree)。 这里通常使用GridSearch。可先寻找max_depth、min_child_weight,确定后,再对gamma、subsample等调优。 三. xgboost的正则化参数的调优。(lambda, alpha)。这些参数可以降低模型的复杂度,从而提高模型的表现。 四. 降低学习速率,确定理想参数。 xgboost 中,objective 是模型学习任务参数(learning task parameters)中的目标参数,它指定训练任务的目标。 objective 参数默认值为 reg:squarederror 。 https://zhuanlan.zhihu.com/p/29649128
2023-07-18 09:30:191

QIIME中做16srDNA测序数据分析out_tablleBMP.biom文件如何生成?

步骤如下:1. 在Linux系统中(或虚拟系统)通过cd命令进入文件夹(路径);2. 用FLASH工具:flash subsample_r1.fq subsample_r2.fq -m 200 -M 280 -o merged3.提取barcode: extract_barcodes.py -f joined.extendedFrags.fastq -c barcode_single_end --bc1_len 6 -o processed_seqs 4. 割库:split_libraries.py -m mapping.txt -b 10 -l 250 -f merged.extendedFrags.fastq_fasta -o split_library_out5. OTU分类:pick_otus.py -i split_library_out/chimera_filtered_seqs.fna -o picked_otus/到这里就可以得到biom文件了6. 得到分类信息:biom summarize-table -i sorted_otu_table.biom -o seqs_per_sample.txt
2023-07-18 09:30:271

为什么iphone屏幕出现了一个框框放大镜

好吧,呵呵。
2023-07-18 09:30:365

如何画xgboost里面的决策树

XGBoost参数调优完全指南(附Python代码)译注:文内提供的代码和运行结果有一定差异,可以从这里完整代码对照参考。另外,我自己跟着教程做的时候,发现我的库无法解析字符串类型的特征,所以只用其中一部分特征做的,具体数值跟文章中不一样,反而可以帮助理解文章。所以大家其实也可以小小修改一下代码,不一定要完全跟着教程做~ ^0^需要提前安装好的库:简介如果你的预测模型表现得有些不尽如人意,那就用XGBoost吧。XGBoost算法现在已经成为很多数据工程师的重要武器。它是一种十分精致的算法,可以处理各种不规则的数据。构造一个使用XGBoost的模型十分简单。但是,提高这个模型的表现就有些困难(至少我觉得十分纠结)。这个算法使用了好几个参数。所以为了提高模型的表现,参数的调整十分必要。在解决实际问题的时候,有些问题是很难回答的——你需要调整哪些参数?这些参数要调到什么值,才能达到理想的输出?这篇文章最适合刚刚接触XGBoost的人阅读。在这篇文章中,我们会学到参数调优的技巧,以及XGboost相关的一些有用的知识。以及,我们会用Python在一个数据集上实践一下这个算法。你需要知道的XGBoost(eXtreme Gradient Boosting)是Gradient Boosting算法的一个优化的版本。特别鸣谢:我个人十分感谢Mr Sudalai Rajkumar (aka SRK)大神的支持,目前他在AV Rank中位列第二。如果没有他的帮助,就没有这篇文章。在他的帮助下,我们才能给无数的数据科学家指点迷津。给他一个大大的赞!内容列表1、XGBoost的优势2、理解XGBoost的参数3、调整参数(含示例)1、XGBoost的优势XGBoost算法可以给预测模型带来能力的提升。当我对它的表现有更多了解的时候,当我对它的高准确率背后的原理有更多了解的时候,我发现它具有很多优势:1、正则化标准GBM的实现没有像XGBoost这样的正则化步骤。正则化对减少过拟合也是有帮助的。 实际上,XGBoost以“正则化提升(regularized boosting)”技术而闻名。2、并行处理XGBoost可以实现并行处理,相比GBM有了速度的飞跃。 不过,众所周知,Boosting算法是顺序处理的,它怎么可能并行呢?每一课树的构造都依赖于前一棵树,那具体是什么让我们能用多核处理器去构造一个树呢?我希望你理解了这句话的意思。 XGBoost 也支持Hadoop实现。3、高度的灵活性XGBoost 允许用户定义自定义优化目标和评价标准 它对模型增加了一个全新的维度,所以我们的处理不会受到任何限制。4、缺失值处理XGBoost内置处理缺失值的规则。 用户需要提供一个和其它样本不同的值,然后把它作为一个参数传进去,以此来作为缺失值的取值。XGBoost在不同节点遇到缺失值时采用不同的处理方法,并且会学习未来遇到缺失值时的处理方法。5、剪枝当分裂时遇到一个负损失时,GBM会停止分裂。因此GBM实际上是一个贪心算法。 XGBoost会一直分裂到指定的最大深度(max_depth),然后回过头来剪枝。如果某个节点之后不再有正值,它会去除这个分裂。 这种做法的优点,当一个负损失(如-2)后面有个正损失(如+10)的时候,就显现出来了。GBM会在-2处停下来,因为它遇到了一个负值。但是XGBoost会继续分裂,然后发现这两个分裂综合起来会得到+8,因此会保留这两个分裂。6、内置交叉验证XGBoost允许在每一轮boosting迭代中使用交叉验证。因此,可以方便地获得最优boosting迭代次数。 而GBM使用网格搜索,只能检测有限个值。7、在已有的模型基础上继续XGBoost可以在上一轮的结果上继续训练。这个特性在某些特定的应用上是一个巨大的优势。 sklearn中的GBM的实现也有这个功能,两种算法在这一点上是一致的。相信你已经对XGBoost强大的功能有了点概念。注意这是我自己总结出来的几点,你如果有更多的想法,尽管在下面评论指出,我会更新这个列表的!2、XGBoost的参数XGBoost的作者把所有的参数分成了三类:1、通用参数:宏观函数控制。2、Booster参数:控制每一步的booster(tree/regression)。3、学习目标参数:控制训练目标的表现。在这里我会类比GBM来讲解,所以作为一种基础知识。通用参数这些参数用来控制XGBoost的宏观功能。1、booster[默认gbtree]选择每次迭代的模型,有两种选择:gbtree:基于树的模型gbliner:线性模型2、silent[默认0]当这个参数值为1时,静默模式开启,不会输出任何信息。 一般这个参数就保持默认的0,因为这样能帮我们更好地理解模型。3、nthread[默认值为最大可能的线程数]这个参数用来进行多线程控制,应当输入系统的核数。 如果你希望使用CPU全部的核,那就不要输入这个参数,算法会自动检测它。还有两个参数,XGBoost会自动设置,目前你不用管它。接下来咱们一起看booster参数。booster参数尽管有两种booster可供选择,我这里只介绍tree booster,因为它的表现远远胜过linear booster,所以linear booster很少用到。1、eta[默认0.3]和GBM中的 learning rate 参数类似。 通过减少每一步的权重,可以提高模型的鲁棒性。 典型值为0.01-0.2。2、min_child_weight[默认1]决定最小叶子节点样本权重和。 和GBM的 min_child_leaf 参数类似,但不完全一样。XGBoost的这个参数是最小样本权重的和,而GBM参数是最小样本总数。 这个参数用于避免过拟合。当它的值较大时,可以避免模型学习到局部的特殊样本。 但是如果这个值过高,会导致欠拟合。这个参数需要使用CV来调整。3、max_depth[默认6]和GBM中的参数相同,这个值为树的最大深度。 这个值也是用来避免过拟合的。max_depth越大,模型会学到更具体更局部的样本。 需要使用CV函数来进行调优。 典型值:3-104、max_leaf_nodes树上最大的节点或叶子的数量。 可以替代max_depth的作用。因为如果生成的是二叉树,一个深度为n的树最多生成n2个叶子。 如果定义了这个参数,GBM会忽略max_depth参数。5、gamma[默认0]在节点分裂时,只有分裂后损失函数的值下降了,才会分裂这个节点。Gamma指定了节点分裂所需的最小损失函数下降值。 这个参数的值越大,算法越保守。这个参数的值和损失函数息息相关,所以是需要调整的。6、max_delta_step[默认0]这参数限制每棵树权重改变的最大步长。如果这个参数的值为0,那就意味着没有约束。如果它被赋予了某个正值,那么它会让这个算法更加保守。 通常,这个参数不需要设置。但是当各类别的样本十分不平衡时,它对逻辑回归是很有帮助的。 这个参数一般用不到,但是你可以挖掘出来它更多的用处。7、subsample[默认1]和GBM中的subsample参数一模一样。这个参数控制对于每棵树,随机采样的比例。 减小这个参数的值,算法会更加保守,避免过拟合。但是,如果这个值设置得过小,它可能会导致欠拟合。 典型值:0.5-18、colsample_bytree[默认1]和GBM里面的max_features参数类似。用来控制每棵随机采样的列数的占比(每一列是一个特征)。 典型值:0.5-19、colsample_bylevel[默认1]用来控制树的每一级的每一次分裂,对列数的采样的占比。 我个人一般不太用这个参数,因为subsample参数和colsample_bytree参数可以起到相同的作用。但是如果感兴趣,可以挖掘这个参数更多的用处。10、lambda[默认1]权重的L2正则化项。(和Ridge regression类似)。 这个参数是用来控制XGBoost的正则化部分的。虽然大部分数据科学家很少用到这个参数,但是这个参数在减少过拟合上还是可以挖掘出更多用处的。11、alpha[默认1]权重的L1正则化项。(和Lasso regression类似)。 可以应用在很高维度的情况下,使得算法的速度更快。12、scale_pos_weight[默认1]在各类别样本十分不平衡时,把这个参数设定为一个正值,可以使算法更快收敛。学习目标参数这个参数用来控制理想的优化目标和每一步结果的度量方法。1、objective[默认reg:linear]这个参数定义需要被最小化的损失函数。最常用的值有:binary:logistic 二分类的逻辑回归,返回预测的概率(不是类别)。 multi:softmax 使用softmax的多分类器,返回预测的类别(不是概率)。在这种情况下,你还需要多设一个参数:num_class(类别数目)。 multi:softprob 和multi:softmax参数一样,但是返回的是每个数据属于各个类别的概率。2、eval_metric[默认值取决于objective参数的取值]对于有效数据的度量方法。 对于回归问题,默认值是rmse,对于分类问题,默认值是error。 典型值有:rmse 均方根误差(∑Ni=1?2N??????√) mae 平均绝对误差(∑Ni=1|?|N) logloss 负对数似然函数值 error 二分类错误率(阈值为0.5) merror 多分类错误率 mlogloss 多分类logloss损失函数 auc 曲线下面积3、seed(默认0)随机数的种子 设置它可以复现随机数据的结果,也可以用于调整参数如果你之前用的是Scikit-learn,你可能不太熟悉这些参数。但是有个好消息,python的XGBoost模块有一个sklearn包,XGBClassifier。这个包中的参数是按sklearn风格命名的。会改变的函数名是:1、eta ->learning_rate2、lambda->reg_lambda3、alpha->reg_alpha你肯定在疑惑为啥咱们没有介绍和GBM中的"n_estimators"类似的参数。XGBClassifier中确实有一个类似的参数,但是,是在标准XGBoost实现中调用拟合函数时,把它作为"num_boosting_rounds"参数传入。调整参数(含示例)我已经对这些数据进行了一些处理:City变量,因为类别太多,所以删掉了一些类别。 DOB变量换算成年龄,并删除了一些数据。 增加了 EMI_Loan_Submitted_Missing 变量。如果EMI_Loan_Submitted变量的数据缺失,则这个参数的值为1。否则为0。删除了原先的EMI_Loan_Submitted变量。 EmployerName变量,因为类别太多,所以删掉了一些类别。 因为Existing_EMI变量只有111个值缺失,所以缺失值补充为中位数0。 增加了 Interest_Rate_Missing 变量。如果Interest_Rate变量的数据缺失,则这个参数的值为1。否则为0。删除了原先的Interest_Rate变量。 删除了Lead_Creation_Date,从直觉上这个特征就对最终结果没什么帮助。 Loan_Amount_Applied, Loan_Tenure_Applied 两个变量的缺项用中位数补足。 增加了 Loan_Amount_Submitted_Missing 变量。如果Loan_Amount_Submitted变量的数据缺失,则这个参数的值为1。否则为0。删除了原先的Loan_Amount_Submitted变量。 增加了 Loan_Tenure_Submitted_Missing 变量。如果 Loan_Tenure_Submitted 变量的数据缺失,则这个参数的值为1。否则为0。删除了原先的 Loan_Tenure_Submitted 变量。 删除了LoggedIn, Salary_Account 两个变量 增加了 Processing_Fee_Missing 变量。如果 Processing_Fee 变量的数据缺失,则这个参数的值为1。否则为0。删除了原先的 Processing_Fee 变量。 Source前两位不变,其它分成不同的类别。 进行了量化和独热编码(一位有效编码)。如果你有原始数据,可以从资源库里面data_preparation的Ipython notebook 文件,然后自己过一遍这些步骤。首先,import必要的库,然后加载数据。#Import libraries:import pandas as pdimport numpy as npimport xgboost as xgbfrom xgboost.sklearn import XGBClassifierfrom sklearn import cross_validation, metrics #Additional scklearn functionsfrom sklearn.grid_search import GridSearchCV #Perforing grid searchimport matplotlib.pylab as plt%matplotlib inlinefrom matplotlib.pylab import rcParamsrcParams["figure.figsize"] = 12, 4train = pd.read_csv("train_modified.csv")target = "Disbursed"IDcol = "ID"注意我import了两种XGBoost:xgb - 直接引用xgboost。接下来会用到其中的“cv”函数。 XGBClassifier - 是xgboost的sklearn包。这个包允许我们像GBM一样使用Grid Search 和并行处理。在向下进行之前,我们先定义一个函数,它可以帮助我们建立XGBoost models 并进行交叉验证。好消息是你可以直接用下面的函数,以后再自己的models中也可以使用它。def modelfit(alg, dtrain, predictors,useTrainCV=True, cv_folds=5, early_stopping_rounds=50):if useTrainCV:xgb_param = alg.get_xgb_params()xgtrain = xgb.DMatrix(dtrain[predictors].values, label=dtrain[target].values)cvresult = xgb.cv(xgb_param, xgtrain, num_boost_round=alg.get_params()["n_estimators"], nfold=cv_folds,metrics="auc", early_stopping_rounds=early_stopping_rounds, show_progress=False)alg.set_params(n_estimators=cvresult.shape[0])#Fit the algorithm on the dataalg.fit(dtrain[predictors], dtrain["Disbursed"],eval_metric="auc")#Predict training set:dtrain_predictions = alg.predict(dtrain[predictors])dtrain_predprob = alg.predict_proba(dtrain[predictors])[:,1]#Print model report:print " Model Report"print "Accuracy : %.4g" % metrics.accuracy_score(dtrain["Disbursed"].values, dtrain_predictions)print "AUC Score (Train): %f" % metrics.roc_auc_score(dtrain["Disbursed"], dtrain_predprob)feat_imp = pd.Series(alg.booster().get_fscore()).sort_values(ascending=False)feat_imp.plot(kind="bar", title="Feature Importances")plt.ylabel("Feature Importance Score")这个函数和GBM中使用的有些许不同。不过本文章的重点是讲解重要的概念,而不是写代码。如果哪里有不理解的地方,请在下面评论,不要有压力。注意xgboost的sklearn包没有“feature_importance”这个量度,但是get_fscore()函数有相同的功能。参数调优的一般方法。我们会使用和GBM中相似的方法。需要进行如下步骤:选择较高的学习速率(learning rate)。一般情况下,学习速率的值为0.1。但是,对于不同的问题,理想的学习速率有时候会在0.05到0.3之间波动。选择对应于此学习速率的理想决策树数量。XGBoost有一个很有用的函数“cv”,这个函数可以在每一次迭代中使用交叉验证,并返回理想的决策树数量。2. 对于给定的学习速率和决策树数量,进行决策树特定参数调优(max_depth, min_child_weight, gamma, subsample, colsample_bytree)。在确定一棵树的过程中,我们可以选择不同的参数,待会儿我会举例说明。3. xgboost的正则化参数的调优。(lambda, alpha)。这些参数可以降低模型的复杂度,从而提高模型的表现。4. 降低学习速率,确定理想参数。咱们一起详细地一步步进行这些操作。第一步:确定学习速率和tree_based 参数调优的估计器数目。为了确定boosting 参数,我们要先给其它参数一个初始值。咱们先按如下方法取值:1、max_depth = 5 :这个参数的取值最好在3-10之间。我选的起始值为5,但是你也可以选择其它的值。起始值在4-6之间都是不错的选择。2、min_child_weight = 1:在这里选了一个比较小的值,因为这是一个极不平衡的分类问题。因此,某些叶子节点下的值会比较小。3、gamma = 0: 起始值也可以选其它比较小的值,在0.1到0.2之间就可以。这个参数后继也是要调整的。4、subsample,colsample_bytree = 0.8: 这个是最常见的初始值了。典型值的范围在0.5-0.9之间。5、scale_pos_weight = 1: 这个值是因为类别十分不平衡。注意哦,上面这些参数的值只是一个初始的估计值,后继需要调优。这里把学习速率就设成默认的0.1。然后用xgboost中的cv函数来确定最佳的决策树数量。前文中的函数可以完成这个工作。#Choose all predictors except target IDcolspredictors = [x for x in train.columns if x not in [target,IDcol]]xgb1 = XGBClassifier(learning_rate =0.1,n_estimators=1000,max_depth=5,min_child_weight=1,gamma=0,subsample=0.8,colsample_bytree=0.8,objective= "binary:logistic",nthread=4,scale_pos_weight=1,seed=27)modelfit(xgb1, train, predictors)</ol>从输出结果可以看出,在学习速率为0.1时,理想的决策树数目是140。这个数字对你而言可能比较高,当然这也取决于你的系统的性能。注意:在AUC(test)这里你可以看到测试集的AUC值。但是如果你在自己的系统上运行这些命令,并不会出现这个值。因为数据并不公开。这里提供的值仅供参考。生成这个值的代码部分已经被删掉了。<喎?"/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjwvYmxvY2txdW90ZT4NCjxoMSBpZD0="第二步-maxdepth-和-minweight-参数调优">第二步: max_depth 和 min_weight 参数调优我们先对这两个参数调优,是因为它们对最终结果有很大的影响。首先,我们先大范围地粗调参数,然后再小范围地微调。注意:在这一节我会进行高负荷的栅格搜索(grid search),这个过程大约需要15-30分钟甚至更久,具体取决于你系统的性能。你也可以根据自己系统的性能选择不同的值。param_test1 = {"max_depth":range(3,10,2),"min_child_weight":range(1,6,2)}gsearch1 = GridSearchCV(estimator = XGBClassifier( learning_rate =0.1, n_estimators=140, max_depth=5,min_child_weight=1, gamma=0, subsample=0.8, colsample_bytree=0.8,objective= "binary:logistic", nthread=4, scale_pos_weight=1, seed=27), param_grid = param_test1, scoring="roc_auc",n_jobs=4,iid=False, cv=5)gsearch1.fit(train[predictors],train[target])gsearch1.grid_scores_, gsearch1.best_params_, gsearch1.best_score_
2023-07-18 09:32:001

苹果手机上出现了一个放大镜样的框框

在文本的地方按住就会出现一个放大镜,可以方便你选取文本,实现准确定位后复制或粘贴
2023-07-18 09:32:302

为什么iphone屏幕出现了一个框框放大镜

是因为你的手机开启了缩放功能。1、首先我们选择手机中的【设置】进入,在【设置】中,我们在下方可以找到【通用】。2、在【通用】中有个【辅助功能】,我们进入它。3、然后我们选择【缩放】打开。4、在缩放中需要把上面的绿色按钮点掉。按照以上方法,就可以关闭放大镜了。拓展资料1、缩小图像(或称为下采样(subsampled)或降采样(downsampled))的主要目的有两个,然而,确实有一些缩放方法能够增加图像的信息,从而使得缩放后的图像质量超过原图质量的。2、放大图像(或称为上采样(upsampling)或图像插值(interpolating))的主要目的是放大原图像,从而可以显示在更高分辨率的显示设备上。对图像的缩放操作并不能带来更多关于该图像的信息,因此图像的质量将不可避免地受到影响。
2023-07-18 09:33:041

一首英文歌 just a little bit xxx just a little bitxxx give me just a little bit more

我也想到《The Show》耶~。。。。
2023-07-18 09:32:105

until relatively recently什么意思

until后面的relatively 的意思是相对的,比较地,后面scientists now know that中的now其实已经给出了答案,就只能是B了.
2023-07-18 09:32:111

DNS DHCP 和WINS 的作用和它们之间的区别

DNS,域名解析服务就是将如CHINA.COM解析为IP的一个服务,因为只有IP才可以访问到对方,所以需要将域名解析成IPDHCP,是动态分配IP的服务,打个比方就是在某个网络里,你把网线往你网卡一插,什么都不用配就可以上网了,因为IP自动获取到了WINS,现在已经基本不用这个服务了,类似于DNS,简单来讲就是将电脑名解析为IP地址
2023-07-18 09:32:173

"相对好一点儿的",用英文怎么说?

comparatively better
2023-07-18 09:32:196

beverly 这个牌子的东西贵不贵?是那里出的?

真正的POLO只有一个那就是Ralph Lauren (拉夫·劳伦)
2023-07-18 09:32:242

帮忙翻译一句英语。。。

一艘船舶不被视为损失除非它已成为实际全损,或已与保险承运人达成推定全损、约定全损或通融全损的协议,或如未能达成协议,却经合法判决船舶已发生推定全损。船舶保险专业词:actualtotalloss实际全损;constructivetotalloss推定全损;,compromisedtotalloss约定全损;arrangedtotalloss通融全损;underwriters保险承运人competenttribunal合法判决,合法判决庭
2023-07-18 09:32:254

WINS怎么样

W.I.N.S这牌子第一次见,他家面积不大很不起眼。专柜环境布置很简单,感觉有些一般。主要是做羊绒服装的,前几次去没太留意。后来和朋友去的时候又到他家看了看,所用羊绒是100%的山羊绒。手感不错。很单薄的一件大概是3500以上,颜色都比较偏素。做羊绒衫的老品牌和新兴品牌的竞争还是比较激烈的,老品牌基本不重视年轻人的市场,新品牌也大多都放不开。这牌子也有这类通病,同样是做羊绒的。有些进口品牌反倒在设计上趋于年轻化,有些不是做羊绒衫出家的品牌同样在抢夺这个市场。国内品牌该反思一下,放不开手脚成不了大气候。W.I.N.S的款式适合中年人,性价比不高。
2023-07-18 09:32:251

求Ave Maria圣母颂的舒伯特的资料

http://baike.baidu.com/view/16965.htmhttp://note.ssreader.com/note/195120/schubert.jpg
2023-07-18 09:32:272

怀唐伊条约的怀唐伊法庭

虽然《怀唐伊条约》被认为是新西兰的“建国文献”,但其赋予毛利人的许多权利都被忽略。尽管受到该条约的保护,毛利人却在19世纪和20世纪失去了大量的土地。这些土地是如何失去的?这是人们常常质疑的问题,也是引起毛利人不断抗议的原因。新西兰政府于1975年成立了怀唐伊调解庭(Waitangi Tribunal)以向世人昭示应该尊重该条约的效力。自那时起,怀唐伊调解庭已经受理了许多毛利部落(Maori iwi)向政府提出的权利诉求案件。在许多案例中,政府通常都被判决以金钱或土地的形式向毛利人做出赔偿。在最近10年中,新西兰政府与毛利部落,其中包括怀卡托(Waikato)的泰努伊部落(Tainui)和南岛的纳塔胡部落(Ngai Tahu),都达成了重大和解。相当一部分赔偿金用在了毛利人的教育和健康服务。到底哪个版本的《怀唐伊条约》是正确的呢?其实两者都正确的。因为这两个版本都经过签署。怀唐伊调解庭在裁定案件时,必须参照这两个版本,缺一不可。
2023-07-18 09:32:321

relatively recent

兔子是在近期才引进澳大利亚的
2023-07-18 09:32:331

电脑没有WINS 服务器数值,不能上网,要怎样设置?

一般wins是不用设置的,你只需要设置IP、子网掩码、网关和DNS就可以。
2023-07-18 09:32:332

求一首英文歌,歌词中有“ave maria"

maria 金雅中唱的 .
2023-07-18 09:32:352

Just a little big stronger,Just a little b

JUST A LITTLE BIT 的 MARIA MENAjust a little bit strongerjust a little bit wiserjust a little less needyand maybe i"d get therejust a little bit prettyjust a little more awarejust a little bit thinnerand maybe i"d get thereclearly, clearly i rememberhiking up my skirt and asking for your timeclearly, clearly i remembernervous if ever confrontedand questioning myselfoh perhaps, perhaps if i got betterperhaps if i challenged myselfperhaps if i was...just a little bit strongerjust a little bit wiserjust a little less needyand maybe i"d get therejust a little bit prettyjust a little more awarejust a little bit thinnerand maybe i"d get thereclearly, clearly i rememberpulling up my shirtand staring blank aheadclearly, clearly i rememberdays of useless cryingand almost feeling deadoh perhaps, perhaps if i was smallerperhaps i could control myselfperhaps if i was...just a little bit strongerjust a little bit wiserjust a little less needyand maybe i"d get therejust a little bit prettyjust a little more awarejust a little bit thinnerand maybe i"d get therejust a little bit strongerjust a little bit wiserjust a little less needyand maybe i"d get therejust a little bit prettyjust a little more awarejust a little bit thinnerand maybe i"d get thereoooahhhh oooahhhh oooahhhh oooahhhhjust a little bit prettyjust a little more awarejust a little bit thinnerand maybe i"d get there
2023-07-18 09:32:401

关于万福玛利亚. AmazingGrace与ave maria有什么区别?怎么听金色琴弦里的又不一样= =

是不同的~~我一开始也以为弄错~~但后来看一下~一个是舒伯特的~~一个是巴赫的
2023-07-18 09:32:093

梧州学院算好二本吗

梧州学院算是一所比较好的二本大学,值得高三同学报考!梧州学院的前身是创办于1985年的广西大学梧州分校。2003年10月,原梧州市教育学院、原梧州师范学校并入广西大学梧州分校。2006年2月,教育部批准,在广西大学梧州分校的基础上建立梧州学院。梧州学院是一所由自治区人民政府举办的多科性公办普通本科院校。梧州学院目前设立有14个教学单位,7个教辅单位,19个党政群团机构。面向全国27个省、自治区和直辖市招生,有在校生18228人。全校教职工966人,其中专任教师765人。专业特色:电子信息工程是国家一流本科专业建设点,国际经济与贸易、软件工程、机械设计制造及其自动化、产品设计、制药工程是自治区一流本科专业建设点。电子信息工程、国际经济与贸易是全国高校特色专业。梧州学院办学定位明确。学院坚持以育人为根本,以教学为中心,以人才为支撑,以服务谋发展,建成特色鲜明的应用型高水平大学。按照“实基础、适口径、重能力、能创新”要求,培养品学兼优、人文素养良好、适应社会需要、富有创新创业精神的应用型人才。立足梧州,面向两广,辐射东南亚,主动服务国家和区域发展战略。紧贴业界,校地协同,东融西联,通江达海。突出面向产业和行业、注重实践、服务地方的人才培养特色;培育校地紧密结合,与地方协同发展的办学特色;服务国家和区域发展战略,直至“通江达海”的地域特色。
2023-07-18 09:32:061

what is accepted as ture often is relatively ,and not absolutely ,ture。问题一as是介词吗?

as 在这应该是作为,当作的意思是介词 呈前省略,前面不是有is 了吗这是两个句用了and 连接用逗号隔开作为正确的被接受应该是修饰作用吧
2023-07-18 09:32:022

maria mena的just a little bit的歌词

just a little bit strongerjust a little bit wiserjust a little less needyand maybe i"d get therejust a little bit prettyjust a little more awarejust a little bit thinnerand maybe i"d get thereclearly, clearly i rememberhiking up my skirt and asking for your timeclearly, clearly i remembernervous if ever confrontedand questioning myselfoh perhaps, perhaps if i got betterperhaps if i challenged myselfperhaps if i was...just a little bit strongerjust a little bit wiserjust a little less needyand maybe i"d get therejust a little bit prettyjust a little more awarejust a little bit thinnerand maybe i"d get thereclearly, clearly i rememberpulling up my shirtand staring blank aheadclearly, clearly i rememberdays of useless cryingand almost feeling deadoh perhaps, perhaps if i was smallerperhaps i could control myselfperhaps if i was...just a little bit strongerjust a little bit wiserjust a little less needyand maybe i"d get therejust a little bit prettyjust a little more awarejust a little bit thinnerand maybe i"d get therejust a little bit strongerjust a little bit wiserjust a little less needyand maybe i"d get therejust a little bit prettyjust a little more awarejust a little bit thinnerand maybe i"d get thereoooahhhh oooahhhh oooahhhh oooahhhhjust a little bit prettyjust a little more awarejust a little bit thinnerand maybe i"d get there
2023-07-18 09:32:022

谁能给我提供以下维塔斯万福玛丽亚这首歌的歌词

ave mariagratia plenamaria, gratia plenamaria, gratia plenaave, ave dominusdominus tecumbenedicta tu in mulieribuset benedictuset benedictus fructus ventrisventris tuae, jesusave mariaave mariamaria, hear my prayertoday i"m asking for forgivenessfor all my people here on earthi know they feel inside their heartswhat is wrong or righttrue love is all it needs to heal thembut hate is all they really knowso innocent the starving childrenhow i wish they"d get a chance to growave maria
2023-07-18 09:32:012

求英语歌《花月佳期》的英文歌名和歌词, 里面有句歌词是 Ave Maria

You by my side that`s how I see us 我所看到的,就是你站在我身边 I close my eyes and I can see us 闭上双眼,我仍能看见 We`ll on our way to say "I do" 我俩正迈向说"我愿意!"的路上 My secret dreams have all come true 我的秘密梦境已成真 I see the church, I see the people 我看到了教堂,看到了群众 Your folks and mine happy and smiling 你和我的乡亲们都开怀笑著 And I can hear sweet voices singing "Ave Maria" 我听见了甜美的歌声唱著:"圣母颂" Oh, my love, my love 噢,吾爱 This can really be 那会是真的 That someday you`ve walking down the aisle with me 有一天,你我会携手步入长廊 Let it be, make it be 让它成真,让它成真 That I`m the one for you 我就是你的 I`ll be yours, all yours now and forever 我现在和永远都会是你的 I see us now your hand in my hand 看著我俩手牵著手 This is the hour, this is the moment 就在这一刻 And I can hear sweet voices singing 我听见了甜美的歌声唱著: Ave Maria, Ave Maria, Ave Maria 圣玛莉亚~The wedding 婚礼的祝福这是歌名 Julie Rogers 茱莉罗杰斯 这是歌手 别忘记给我分哦~O(∩_∩)O~
2023-07-18 09:31:531

什么情况下要用到WINS服务?

当然要用了,WINS跟DNS是不同的,WINS在LAN里面可以实现点到点的传输,避免了产生大量的广播,如果没有WINS的话就是用广播的形式发送信息,一般在一个大的公司里面会用到WINS而DNS是地址解析 域名跟IP地址的映射上网都要用到,不用也行你记得IP地址也行
2023-07-18 09:31:523

衣服l1是多大码

L码是英文字母Lager的缩写,简称大码,比M码(中码)大一号,比XL(加大码)小一号;L码为国际标准码,对应中国标准码为170,一般适合中等身材的人群,在衣服的所有尺码中,L码也是用得最多的一个尺码。
2023-07-18 09:31:511

with relative cheap tickets中的relative,形式对吗?

with relative cheap tickets中的relative,形式对相对便宜的机票
2023-07-18 09:31:462

ave maria的歌词,要vitas版的

万福马利亚,你充满圣宠,主与你同在。你在妇人中被赞美,你腹中之子耶稣亦被赞美。万福马利亚,天主之母,求你为我们这些罪人祈福,在现在和我们临终时。阿门
2023-07-18 09:31:453

什么是WINS代理

因为wins服务器不对广播进行响应,所以对于包含必须使用广播来解析netbios名称的非wins计算机的每个子网,都应该配置一台计算机充当wins代理。
2023-07-18 09:31:441

2022年物价走势会如何?

稳步上升,cpi在未来几年将会逐步升高,大基建大通胀时代正在到来
2023-07-18 09:31:4315