预处理之后的哪个文件计算脑熵|如何将编写好的C语言源程序变成可执行文件EXE

㈠ 为什么LMD方法分解出的分量跟文献里比较总是少了很多,是程序的问题么

JPEG2000图像压缩标准及其关键算法 周唐宁晓军徐威浦(人工智能与机器人研究所西安西安交通大学,710049,中国):JPEG2000图像压缩应用,以适应不断发展,出现了一个新的静止图像压缩标准。 JPEG2000图像编码系统实施过程中,基本算法和关键技术进行了描述,这一新标准的特点和应用,并分析了其性能。 关键词:JPEG2000图像压缩;离散小波变换;速率控制;地区的利益 1引言快速增长的多媒体应用领域的不断发展,网络,传统的JPEG压缩技术已无法满足人民的数字化多媒体图像数据的要求,功能更强大,效率较为显着的静止图像压缩标准中提到的发展议程,这是JPEG2000 。  JPEG(联合图像专家组)标准ISO 10918-1(JPEG)静止图像压缩标准,国际标准化组织(ISO)委员会的领导下制定的第一套国际流行的静态图像压缩设立的该委员会的。由于JPEG优良的品质,使他在短短几年内取得巨大成功,被广泛应用于领域的互联网和数码相机,80%的图像在网站上使用的JPEG压缩标准。然而,目前的JPEG静止图像压缩标准,有一个良好的率失真性能的中端和高比特率,但低比特率的范围内,会出现明显的块效应,其质量已达到不可接受的。 JPEG无法提供在一个单一的流有损和无损压缩,图像压缩,不能支持超过64×64 K.与此同时,尽管目前的JPEG标准的规定重新开始的间隔,但图像质量时,遇到位错误将受到严重损坏。 要解决这些问题,1997年3月以来,JPEG图像压缩标准委员会开始开发的新一代图像压缩标准,以解决上述问题。 2000年3月的东京会议上,新一代的编码压缩标准JPEG2000图像压缩编码算法来决定颜色的静态图像。  JPEG2000系统分为以下七个部分:①JPEG2000图像编码系统;②扩展(①添加更多的功能和复杂性的核心定义);…… />③运动JPEG2000;在④一致性;在⑤参考软件(目前包含Java和C);⑥复合图像文件格式(文档扫描和传真应用程序);⑦①最小支持度(技术报告)。 在①充分认可的ISO标准定义的核心压缩技术,以最小的文件格式,②??⑥定义的压缩文件格式的扩展。其中,①已经敲定,其余的仍在进行过程??。 JPEG2000标准的第1部分本文讨论的基础上。 2 JPEG2000系统的特点 JPEG2000其独特的优势来弥补目前的JPEG标准的不足之处。甲离散小波变换算法,图像可以被转换成一系列模块,可以更有效地存储像素的子频带,因此,JPEG2000格式的图像压缩比可以增加10%至30%,JPEG压缩的基础上的图像显示更加细腻流畅。换句话说,在线观看使用JPEG2000压缩的图像,不仅下载速度是快了近30%,比使用JPEG格式,但质量会更好。对于当前的JPEG标准,在相同的压缩流中不能同时提供有损和无损压缩,在JPEG2000系统中,通过选择参数,它是可能的有损和无损压缩的图像,并能满足高图像质量的要求医学图像处理,图像库的需要。 JPEG图像下载网络上的“块”传输,只能是渐进式显示,而JPEG2000图像格式的支持渐进传输(渐进式传输),可让影像所需的分辨率重建或像素精度所需的图像传输控制,所需的图像分辨率质量要求终止解码,而不是接受整个图像的压缩码流。 JPEG2000采用小波技术,使用其本地的杰出的特性,可以是随机的,以获得一定的图像的感兴趣区域(ROI)的非解压缩,压缩后的图像数据传输,过滤,和其他操作的情况下的压缩码流中。  JPEG2000图像编码与解码系统本节介绍了JPEG2000图像编解码系统。图1示出了在编码器和解码器的框图。  早在编码器的预处理,第一源图像处理的结果,离散小波变换,小波系数。然后,对小波系数进行量化和熵编码,标准的输出流(比特流)的最终组合物。该解码器是编码器的逆过程,第一码流以进行解压缩,并进行熵解码,然后逆量化和离散小波逆变换,并进行合成处理后,的逆变换的结果,得到的重构图像数据。虽然JPEG2000编解码器是类似过程和JPEG,但为的两个特定的实施方案的每一个步骤中,有一个非常大的差异。的编码处理的一般步骤如下:(1)将多个颜色分量组成的图像分解成由单一颜色成分??的图像。组件之间存在一定的相关性,可以减少数据冗余组件之间的转换通过分解,以提高压缩效率;矩形板(2)成分的图像被分解成均匀的尺寸 – 图像片剂。的图像片材是变换和编解码器的基本单元;(3)每一个图像薄片小波变换进行。图像多级系数。这些不同的级数系数的不同分辨率的图像,可重构图像;(4)的多级分解的结果组成的多个子带的小波系数。他们说,的频率特性的图像的局部区域??中的薄膜(而不是整个图像);(5)子频带上的系数量化,和组成的代码块的矩形阵列; (6)中的系数的位平面在一个码块(即在一个代码块具有相同的权重,这些位的整系数)熵编码;(7)相对于背景的图像区域,可以是更高质量的编码区的利益;(8)通过增加比特列掩码的抗干扰;(9)在每个码流的报头结构的前面,他介绍了这些属性的源图像,各种情况下的分解和编码风格。磁头结构可以用于定位,提取,解码和重构的图像,所得到的图像可以有期望的分辨率时,重现性精度,感兴趣的区域,或其它特性。 编码处理被划分成以下过程:预处理,核心处理和比特流组织。预处理部分包括的图像切片,dc电平位移(DC)和分量变换。核心处理部分由离散小波变换,量化和熵编码。机构代码块,其中包括分区,组织层和数据包的比特流的一部分。  3.1预处理(1)的图像切片切片是指与源图像的矩形块 – 图像切片,不相互重叠,每个图像被划分成作为一个独立的图像编码表。编码所有的操作都??进行了形象片。形象片的基本单位转换和编解码器。图象切片降低存储空间的要求,和他们的重建是独立进行的,所以可用于解码的特定区域?而不是整个图像的图像。当然,图象切片将影响图像质量。小块的图像失真大于大的图像切片。引起的图像失真的图像切片图像在低比特率将更加严重。 (2)DC电平转换 DC电平移位,应进行离散小波变换的图像的每个片。当解码时,它可以正确地恢复从符号值与?重建的无符号的样值。该DC电平移位是唯一的无符号的图像切片的像素组成。电平移位不影响图像质量。在解码器中,离散小波逆变换,扭转的重构图像的DC电平移位。 (3)成分变换和JPEG2000支持多分量图像。不同的组件并不需要有相同的位深度,也不需要是无符号数。可收回的系统(无损),唯一的要求是必须遵循由相应的输入分量图像一致的比特深度,每个输出分量图像的位深度。  3.2核心处理(1)小波变换不同于传统的离散余弦变换,小波变换具有多分辨率分析的特点,反映信号局部特征的信号。通过离散小波变换,小波系数的图像,和分解的一系列视情况可以是图像切片。小波系数的图像由几个子带系数图像。这些子带系数的图像切片的水平和垂直方向的空间频率特性的图像描述的。不同子频带的小波系数反映了不同的空间分辨率的图像片材的特性。通过多级小波分解,小波系数的两个高频信息的本地区域的??的图像的膜(如图像的边缘),所述的膜的低频信息的图像(如图像的背景)。因此,即使在低比特法的情况下,我们可以保持的更详细的图像(如边缘)。另外,根据分解的系数所表示的分辨率的图像在水平和垂直方向仅由小波系数表示的图像的上半部分。因此,由解码的图像的不同级别的系数,它是能够得到具有不同的空间分辨率(或清晰,或模糊)的图像。 小波变换的JPEG2000标准的,因为这方面的优势已通过。在该编码系统中,为每个图像薄片Mallat的金字塔小波分解。经过广泛的测试,JPEG2000使用两种小波滤波器:LeGall 5/3滤波器的Daubechies 9/7滤波器。前者可用于有损或无损压缩的图像压缩,这只能用于有损压缩。  JPEG2000标准,小波滤波器实现模式:基于卷积和升降机构的基础上。周期对称延伸,这样就可以防止图像失真的边缘上的过滤器的操作,应进行的具体实现的图像的边缘。此外,为了减少所需的空间在变换的开销,标准的应用程序的基于行的小波变换技术。 (2)量化上的分辨率的图像,人的视觉系统需要具有一定的局限性,通过适当的量化的变换系数的精度降低的主观图像质量的前提下,而不影响,来实现图像压缩的目的。的量化的关键是设计合理的量化步长的大小,根据转换后的图像的特征,并重构的图像的质量要求和其他因素。量化操作是不利的产生的量化误差。然而,除的情况下,也就是,量化步长的大小是1,和小波系数是整数,拍摄得到的通过小波变换的小波滤波器的可收回整数5/3的查询结果在这种情况下符合。 在JPEG2000标准,对于每个子带可以具有不同的量化步长的大小。然而,在一个子带是只有一个量化步长。量化每个小波系数具有两个部分:符号和幅度。编码量化的小波系数。对于无损压缩,量化步长的大小必须是1。熵编码图像(3)变换,量化,在一定程度上,在空间域和频域,以减少冗余,但这些数据在统计意义上,仍然有一个相关的,其中的熵编码,以消除数据之间的统计相关性。的量化的子带系数被分成小的长方形单元 – 的码块(代码块)。 在图2中所示,使用两层的编码策略,首先使用基于上下文的算术编码器,独立嵌入的代码块,每个码块进行编码,嵌入的代码块压缩后的比特流。然后,根据率失真优化的原则盈科拓展(后压缩率失真)优化算法思想,压缩比特流的所有代码块合适的拦截,组织成一个压缩码流具有不同的质量水平层。每个层上的压缩位流,压缩后的比特数据流的所有的层与前面的可重构一定质量的图像。贡献为每个代码块中的每个层的压缩位流的层次组织的信息,必须进行编码,即在截断点的层的信息,和编码等的代码块中的位流。自使用小波变换的图像,整个图像的压缩流的可伸缩性,分辨率,并且因此,在压缩码流既可以是质量和分辨率可伸缩性。由于,在独立编码的代码块,因此可以要求,随机接入对应的代码块的压缩位流进行解码,以重建所需的图像区域。 ①第一层编码算法 与传统的算术熵编码是不同的各系数反过来,JPEG2000编码系统的代码块的量化系数被组织成一个位平面数,从最显着的位平面(MSB)第一,然后由每个位平面的算术编码的子波系数中的比特。 第一层编码可被视为两部分:生成的上下文(CF)和算术编码的编码装置(AE)。的生成的范围内,的顺序扫描的代码块中的所有位。顶部向底部扫描,在每个位平面的代码块,从左至右,从左上角的系数开始,并为每一个生成一个上下文。算术编码器的基础上,为每一个编码所生成的上下文。被转换为一个符号 – 幅度模式的量化后的小波系数。遇到的第一个1位当从MSB到LSB的编码,所述像素被称为是显著的,否则,是不显着的。通过以下四种方式的背景下,所有位是他们的邻居:归零码(零编码,ZC),用于在当前位平面编码的非显着的像素将成为显著;登记/>游程长度编码(游程长度编码,RLC),用于编码位于在同一列中的四个非显着性的像素,如果他们的邻里非显着性;符号编码(符号编码,SC )时,该位变得显着,他的符号位编码; 振幅幅度细化编码(MR)是用来编码一个显着的一点。 每个位平面的三个编码通道,以进行编码。通道1是传播路径的重要性(意义传播通道),邻近的像??素的至少有一个在该通道中的重要性,使用ZC和SC编码。信道2的幅度细化路径(幅度细化证),在该通道中所有最重要的位进行编码,使用MR。通道3是明确的通道(清理通行证),而不是在最后两个信道编码的像素,信道编码,ZC,LRC SC。进行检查,以确定它是否应该被编码在三个通道中的位平面的每一个。 上下文一起通过以下方式获得的编码信道,发送到编码的算术编码器,用于和相应的数据。在这里,使用的自适应二进制算术编码[1],主要是考虑到计算的复杂性,并且易于实现。执行算术编码得到一个单独的嵌入的代码块,每个代码块之后,压缩后的比特流中。 ②的第二层编码算法 PCRD率失真优化算法思想[1,2]中的第二层编码算法,压缩后的比特流中的所有代码块嵌入适当的截取,分层组织,形成整个图像质量分级压缩的流。的第二层编码算法也可以被认为在两部分:速率控制和压缩位流的层次组织。通过某些编解码措施的,并获得最优质的重建图像压缩比特率的速率控制。根据需要层的分层编码参数压缩的比特流,并且每一层的编码率,估算的率失真阈值的每个层的层次组织,然后估计失真阈值的每个层的速率,按照率的代码块失真算法找到嵌入每个码块的压缩后的比特流中的层上的截止点,将码块压缩比特流打包,并存储在按照规定的格式,形成的图像压缩,将被截断流。码流的层次组织,每个层中含有一定量的质量信息,以提高图像质量的基础上,在前面层。因此,用户可以控制传输的图像根据自己的需求,实现令人满意的图像,停止传输,在一定程度上缓解目前有限的网络带宽瓶颈所造成的大量的图像数据。 3.3流组织更好的应用程序的图像交换JPEG2000压缩流函数飞灰,JPEG2000提供的格式来存储的压缩位流和所需的解码参数,压缩单元,被组织以形成最终的数据流的数据流包。 JPEG2000关键技术在本节中,说明JPEG2000中使用的关键技术。  4.1离散小波变换 JPEG2000传统JPEG最大的不同是,他放弃了基于块的离散余弦变换(DCT)的JPEG编码,而不是利用小波变换(DWT )为基础的多分辨率编码。 余弦变换的频谱分析工具是经典之作,他考察整个时间域的时域特性,频域特性或频域的过程,平稳过程,他有很好的效果,但对非平稳过程中,有几个缺点。在JPEG中,离散余弦变换的图像压缩的8×8条,然后顺序地放置在该文件中,该算法由废弃的频率信息,来实现压缩,从而图像的压缩率就越高,频率信息将被丢弃。在极端的情况下,JPEG图像,只保留了基本信息的反射图像的外观,精细的图像细节丢失。小波变换的现代谱分析工具,他不仅考察当地的时域频域特征的过程,但还可以检查地方特色的时域频域的过程中,即使对于非平稳过程处理也很方便。图像变换可以是一系列的小波系数,这些系数可以有效地压缩和存储,此外,小波的粗糙的边缘可以是图像的更好的性能,因为他消除DCT压缩通常具有块效应。 4.2码率控制算法 JPEG2000码率控制方法来计算理想的截止点为流,以获得最佳的重建图像质量下给定的压缩率。速率控制的盈科拓展的率失真优化算法。的率失真优化,即给定的最大编码速率为整个压缩流,对每个码块的压缩的比特流,以确定适当的截断点,满足的条件下,使具有最小失真的重建图像。嵌入的代码块编码具有以下特征:以产生压缩后的比特流中,根据需要,也可以设置成不同的长度的比特流的一个子集,被截断;截断举办所有码块的比特流,一定质量的图像可以被重建。  4.3渐进传输特性 JPEG图像上下载的网络传输“块”,它只能渐进式显示,和JPEG2000图像格式的支持渐进传输。 2渐进传输的JPEG2000渐进式渐进传输,根据该决议的传输质量。与渐进传输的质量是根据传输的图像数据的轮廓,然后逐渐传输的数据的细节,以不断提高图像的质量,根据该决议的渐进传输,低分辨率的第一次传输图像,图像的基础上提高其分辨率后的第一个图像。渐进传输的图像,使用户不必像以前那样,图片下载,然后才决定是否有必要,并帮助用户快速浏览和选择大量的图片,以有效地解决了网络传输的瓶颈问题。  4.4地区的利益压缩 JPEG2000的一个极其重要的优势是ROI(感兴趣的区域,一个地区的利益)。用户可以指定任何区域?有兴趣的画面,然后指定在这些区域的压缩质量的压缩或解压缩的规定在某些领域的复苏。这是因为子的地方,完全恢复到本地波在空间域和频域的图像,并不需要所有的编码准确地保留,可以作为他的编码的相应部分有没有错误。在实际应用中,可以在使用低压缩比,以便获得更好的图像的图像中感兴趣的部分,而其它部分,在??高压缩比,以节省存储空间。这将确保没有任何重要的信息会丢失,同时有效地压缩数据量,实现了真正的“互动”的压缩。  5 JPEG2000标准的应用随着科学和技术的发展,网络已经渗透到每个人的生活。然而,有限的网络带宽,高品质的图像,因为大量的数据,和一个伟大的在??网络上的传输延迟。因此,请允许选择合适的图像分辨率,需要用户使用PC,笔记本电脑,掌上电脑或PDA通过调制解调器访问图像数据,互联网接入,浏览和传输是必要的。 军事侦察和气象预报,卫星遥感图像通过远程无线的信道传输,传输中出现错误是不可避免的。由JPEG2000编码器的输出流的特定数据流的形式,有效地抑制该错误的能力。因此,通过无线的卫星通信信道的数据流回到地面接收站,在解码过程中的地面接收站可以使用的JPEG2000流内部的组织形式以避免错误引起的,由于传输错误解码。 另外,安全确认,验证,和医疗领域,JPEG2000是具有广泛的应用范围。可以预见,在不久的将来,JPEG2000将被广泛的应用在以下领域:互联网,移动和便携式设备,打印,扫描(出版物的预览),数码相机,遥感,传真(包括彩色传真和互联网传真) ,医疗应用,数字图书馆和电子商务。 6结束语 JPEG2000的目的是创建一个新的图像编码系统的率失真和主观图像质量优于现有的JPEG标准压缩编码系统,可提供低比特率图像压缩,而压缩码流可以是灵活的手柄部分的渐进传输的压缩数据流,图像,诸如随机存取,景点,以及压缩的码流较强的耐受性能的区域实现,这一标准将与当前的JPEG标准兼容。 JPEG2000图像压缩标准,其优异的性能,广泛应用于数码相机,遥感,传真,医疗保健,以及电子商务等领域,将成为21世纪的主流静止图像压缩标准。 参考文献 [1] JPEG 2000图像编码ystem.JPEG 2000最终委员会草案1.0版,2000,16(3); <BR / [2]陶布曼D.的高性能Scable,图像压缩与EBCOT.IEEE跨图像处理,1994,3(9):572?578 [3]张小蒂等。新一代静止图像压缩标准JPEG2000。电信科学,2001(5) [4]:栗东糜。发展静止图像压缩标准JPEG2000。电视技术,2001(6) [D DWT]汪蕤轩面向JPEG2000积体电路设计与仿真,2002年wisher_lxy |浏览119次0条评论|引用(0 )|娱乐中心再别康桥最近发表 生命是最重要的积极! 静音 XML的解析器和性能比较(转载) JPEG2000摘要[转] 为什么人总是那么复杂吗? 永远不知道放弃是美丽的! 我要自由! 我要自由! 生命是如此之轻最后回覆嘿,它的复杂性复杂提供的“博客。 COM

㈡ 数据挖掘 | 数据理解和预处理

数据挖掘 | 数据理解和预处理小编遇到过很多人(咳咳,请不要对号入座),拿到数据后不管三七二十一,先丢到模型中去跑,管它具体什么样呢,反正“大数据”嘛,总能整出点东西来。但就像上次说过的,“大数据”很有可能带来“大错误”!所以在数据挖掘工作开始前,认真的理解数据、检查数据,对数据进行预处理是至关重要的。很多人说,数据准备工作真是个“体力活”,耗时耗力不说,还异常的枯燥无味。这点小编承认,建模之前的数据处理确实是平淡的,它往往不需要多高的智商,多牛的编程技巧,多么高大上的统计模型。但是,它却能时时触发你的兴奋点,因为它需要足够的耐心和细心,稍不留神就前功尽弃。在这次的内容里,小编首先会从“数据理解”、“变量类型”和“质量检查”三个方面进行阐述,然后会以一个自己做过的实际数据为例进行展示。一、数据理解拿到数据后要做的第一步就是理解数据。什么是理解数据呢?不是简单看下有多少Excel表,有多少行,多少列,而是要结合自己的分析目标,带着具体的业务需求去看。首先,我们需要明确数据记录的详细程度,比方说某个网站的访问量数据是以每小时为单位还是每天为单位;一份销售数据记录的是每家门店的销售额还是每个地区的总销售额。其次,我们需要确定研究群体。研究群体的确定一定和业务目标是密切相关的。比方说,如果我们想研究用户对产品的满意度与哪些因素有关,就应该把购买该产品的所有客户作为研究群体;如果我们想研究用户的购买行为受哪些因素影响,就应该同时考察购买人群和非购买人群,在两类人群的对比中寻找关键因素。研究群体的确定有时也和数据的详细程度有关。比如我们想研究“观众影评”对“电影票房”的影响,我们既可以把“每部电影”看成一个个体,研究“影评总数”对“电影总票房”的影响,也可以把“每部电影每天的票房”看成一个个体,研究“每天的影评数”对“每天的电影票房”的影响。具体选择哪一种取决于我们手上有什么样的数据,如果只有总票房和总影评数的数据,那我们只能选择第一种;如果有更详细的数据,那就可以考虑第二种方案。需要注意的是,这两种方案还会影响我们对于模型的选择。例如,如果研究“每天的影评数”对“每天电影票房”的影响,那每部电影又被细分为很多天,同一部电影不同时间的票房会有较高的相似性,这就形成了一种层次结构,可以考虑使用层次模型(hierarchical model)进行分析。最后,当我们确定了研究目标和研究群体后,我们需要逐一理解每个变量的含义。有些变量和业务目标明显无关,可以直接从研究中剔除。有些变量虽然有意义,但是在全部样本上取值都一样,这样的变量就是冗余变量,也需要从研究中剔除。还有一些变量具有重复的含义,如“省份名称”和“省份简称”,这时只需要保留一个就可以了。二、变量类型所有变量按其测量尺度可以分成两大类,一类是“分类变量”,一类是“数值变量”。不同类型的变量在处理方法和后期的模型选择上会有显著差别。【分类变量】分类变量又称属性变量或离散变量,它的取值往往用有限的几个类别名称就可以表示了,例如“性别”,“教育程度”,“收入水平”,“星期几”等。细分的话,分类变量又可分为两类,一类是“名义变量”,即各个类别间没有顺序和程度的差别,就像“手机系统”中ios和安卓并没有明显的好坏差别,“电影类型”中“动作片”和“科幻片”也都是一样的,说不上哪个更好或更差。另外一类是定序变量,即不同类别之间存在有意义的排序,如“空气污染程度”可以用“差、良、优”来表示、“教育程度”可以用“小学、初中、高中、大学”来表示。当研究的因变量是分类变量时,往往对应特定的分析方法,我们在后面的章节会陆续讲到,这里暂且不谈。当研究中的自变量是分类变量时,也会限制模型选择的范围。有些数据挖掘模型可以直接处理分类自变量,如决策树模型;但很多数据挖掘模型不能直接处理分类自变量,如线性回归、神经网络等,因此需要将分类变量转换成数值变量。对于定序自变量,最常用的转换方法就是按照类别程度将其直接转换成数值自变量,例如将空气污染程度 “差、良、优”转换为“1,2,3”。对于名义自变量,最常用的转换方法就是构造0-1型哑变量。例如,对于“性别”,可以定义“1=男,0=女”。当某个名义变量有K个类别取值时,则需要构造K-1个哑变量。例如教育程度“小学,初中,高中,大学及以上”,可以构造三个哑变量分别为:x1:1=小学,0=其它;x2:1=初中,0=其它;x3:1=高中,0=其它。当x1,x2,x3三个哑变量取值都为0时,则对应着“大学及以上”。需要注意的是,有时候名义变量的取值太多,会生成太多的哑变量,这很容易造成模型的过度拟合。这时可以考虑只把观测比较多的几个类别单独拿出来,而把剩下所有的类别都归为“其它”。例如,中国一共包含56个民族,如果每个民族都生成一个哑变量就会有55个,这时我们可以只考虑设置“是否为汉族”这一个0-1哑变量。【数值变量】我们再来看看数值变量。数值变量就是用数值描述,并且可以直接进行代数运算的变量,如“销售收入”、“固定资本”、“评论总数”、“访问量”、“学生成绩”等等都是数值变量。需要注意的是,用数值表示的变量不一定就是数值型变量,只有在代数运算下有意义的变量才是数值型变量。例如财务报表的年份,上市时间等,虽然也是用数值表示的,但我们通常不将它们按照数值型变量来处理。上面我们讲到,分类变量通常要转换成数值型变量,其实有些时候,数值型变量也需要转换成分类变量,这就用到了“数据分箱”的方法。为什么要进行数据分箱呢?通常有以下几个原因:1. 数据的测量可能存在一定误差,没有那么准确,因此按照取值范围转换成不同类别是一个有效的平滑方法;2.有些算法,如决策树模型,虽然可以处理数值型变量,但是当该变量有大量不重复的取值时,使用大于、小于、等于这些运算符时会考虑很多的情况,因此效率会很低,数据分箱的方法能很好的提高算法效率;3.有些模型算法只能处理分类型自变量(如关联规则),因此也需要将数值变量进行分箱处理。数据分箱后,可以使用每个分箱内的均值、中位数、临界值等作为这个类别的代表值,也可以直接将不同取值范围定义成不同的类别,如:将污染程度划分后定义为“低、中、高”等。那如何进行数据分箱呢?常用的数据分箱的方法有:等宽分箱(将变量的取值范围划分成等宽的几个区间)、等频分箱(按照变量取值的分位数进行划分)、基于k均值聚类的分箱(将所有数据进行k均值聚类,所得的不同类别即为不同的分箱),还有一些有监督分箱方法,如:使分箱后的结果达到最小熵或最小描述长度等。这里不详细介绍了,有兴趣的童鞋可以自行网络。三、质量检查对数据中的各个变量有了初步了解后,我们还需要对数据进行严格的质量检查,如果数据质量不过关,还需要进行数据的清洗或修补工作。一般来说,质量检查包括检查每个变量的缺失程度以及取值范围的合理性。【缺失检查】原始数据中经常会存在各种各样的缺失现象。有些指标的缺失是合理的,例如顾客只有使用过某个产品才能对这个产品的满意度进行评价,一笔贷款的抵押物中只有存在房地产,才会记录相应的房地产的价值情况等。像这种允许缺失的变量是最难搞的,因为我们很难判断它的缺失是合理的,还是由于漏报造成的。但无论哪种情况,如果变量的缺失率过高,都会影响数据的整体质量,因为数据所反映的信息实在太少,很难从中挖掘到有用的东西。对于不允许缺失的变量来说,如果存在缺失情况,就必须进行相应的处理。如果一个变量的缺失程度非常大,比方说达到了70%,那就考虑直接踢掉吧,估计没救了。如果缺失比例还可以接受的话,可以尝试用缺失值插补的方法进行补救。插补的目的是使插补值能最大可能的接近其真实的取值,所以如果可以从其他途径得到变量的真实值,那一定优先选择这种方法。比如某个公司的财务信息中缺失了“最终控制人类型”和“是否国家控股”这两个取值,这些可以通过网上的公开信息得到真实值;再比如缺失了“净利润率”这个指标的取值,但是却有“净利润”和“总收入”的取值,那就可以通过变量间的关系得到相应的缺失值,即净利润率=净利润/总收入。当然,更多的时候,我们无法得到缺失值的真实信息,这时就只能借用已有的数据来进行插补了。对数值变量来说,可以用已观测值的均值、中位数来插补缺失值;对分类型变量来说,可以用已观测数据中出现比例最高的类别取值来进行插补。这些方法操作起来非常简单,但它们都是对所有缺失值赋予了相同的取值,所以当缺失比例较大时,可能会扭曲被插补变量与其余变量的关系。更复杂一点的,我们可以选择模型插补方法,即针对被插补变量和其它自变量之间的关系建立统计模型(如回归、决策树等),将模型预测值作为插补值。如何处理缺失值是一个很大的研究课题,我们这里只是介绍了最简单可行的方法,有兴趣的读者可以参阅Little和Rubin 2002年的专著“Statistical Analysis with Missing Data”。【变量取值合理性检查】除了缺失外,我们还要考察每个变量的取值合理性。每个变量都会有自己的取值范围,比如“用户访问量”、“下载次数”一定是非负的,“投资收益率”一定在0~1之间。通过判断变量的取值是否超出它应有的取值范围,可以简单的对异常值进行甄别。除了根据变量的取值范围来检查变量质量外,还可以根据变量之间的相互关系进行判断。例如一家公司的“净利润率”不应该大于“总利润率”等。只有通过了各个方面检测的数据才是一份高质量的数据,才有可能带来有价值的模型结果。四、实例分析——电影票房分析最后,我们给出一个实例分析。在这个例子中,我们的目标是研究电影哪些方面的特征对电影票房有影响。我们有两方面的数据,一是描述电影特征的数据,二是描述电影票房的数据。由于我们关注的是北美的票房市场,所以描述电影特征的数据可以从IMDB网站得到,它是一个关于演员、电影、电视节目、电视明星和电影制作的在线数据库,里面可以找到每部上映电影的众多信息;电影每天的票房数据可以从美国权威的票房网站Box Office Mojo得到,上面记录了每部电影上映期间内每天的票房数据。我们将从IMDB得到的数据放到“movieinfor.csv”文件中,将从Box Office Mojo中得到的数据放到“boxoffice.csv”文件中。这里,我们以2012年北美票房市场最高的前100部电影为例进行讲解。下表给出了这两个数据集中包含的所有变量以及相应的解释。在这两个数据中,movieinfor.csv数据的记录是精确到每部电影的,而boxoffice.csv数据精确到了每部电影中每天的票房数据,是精确到天的。上表中给出的变量中,除了电影名称和ID外,“电影类型”“MPAA评级”(美国电影协会对电影的评级)和“星期几”是分类型变量;“放映时长”、“制作预算”、“电影每天的票房”和“每天放映的影院数”是数值型变量。两份数据都不存在缺失值。我们首先对两个数据集分别进行变量预处理,然后再根据电影ID将两个数据整合到一起。下面给出了每个变量的处理方法:【电影类型】电影类型是一个分类变量。在这个变量中我们发现每部电影都不止一个类型,例如“The Dark Knight Rises”这部电影就有“Action”、“Crime”和“Thriller”三个类型,并且它们以“|”为分隔符写在了一起。同时,不同电影之间可能有相同的类型,也可能有不同的类型,例如票房排名第二的电影“Skyfall”,它的类型是“Action |Adventure |Thriller”。因此,我们首先需要做的是把每部电影所属的类型逐一取出来,然后将所有出现过的类型分别形成一个0-1哑变量,如果这部电影在某个类型上出现了,则相应变量的取值就是1,否则是0.通过上面一步,我们知道这个数据集中出现过的所有电影类型一共有11个。那是不是按照之前所讲的,应该把它转换为10个哑变量呢?这里需要注意的是,所有的电影类型之间并不是互斥的(即有了action,就不能有其他的类型),所以我们无需因为共线性的原因去掉其中一个。也就是说,如果把每一个电影类型单独作为一个独立的变量,可以衍生出11个新的0-1变量,这完全没有问题。但11个变量未免有点过多,所以我们根据不同电影类型的频数分布情况,只把出现次数明显较多的类型单独拿出来,最终生成了6个0-1型变量,分别为Adventure,Fantasy,Comedy,Action,Animation,Others。【MPAA评级】对于这个分类型变量,我们首先可以看一下数据中它所包含的全部取值,发现一共有“PG”,“PG-13”和“R”三个。和上面的电影类型(Genre)不同,对于一部电影而言,它只能有一个MPAA取值。因此,在MPAA变量中,我们需要选择一个作为基准,将另外两个构造成哑变量。例如,我们以“PG”为基准,构造的两个哑变量分别为PG13和R,如果这两个哑变量的取值同时为0,那就相当于电影的MPAA评级是PG。【放映当天是星期几】这个变量同MPAA评级一样,每部电影只能有一个取值。如果它在星期一到星期日上都有取值的话,我们可以衍生出6个0-1型哑变量。因为这里我们更关注周末和非周末对电影票房的影响,而并不关注具体是哪一天,所以我们将其进一步概括成一个变量,即“是否是周末”。【放映时长和制作预算】放映时长和制作预算这两个变量都是取值大于0的数值型变量,我们可以分别检查它们的取值是否在合理的范围内,然后直接保留它们的数值信息。同时,对“制作预算”而言,假设我们这里关心的不是制作预算的具体数值,而是“小成本电影”和“大成本电影”的票房差异,那我们就可以将这个数值型变量进行分箱处理,转换为一个0-1型的分类变量,即 “是否为小成本电影”。在决定按照什么标准来划分是否为小成本电影时,我们根据之前文献里的研究结果,将制作预算在100 million以下的电影看成是小成本电影。上述所有变量的处理过程都可以使用R中最基本的语句(table,rep,which等)完成,由于篇幅限制,小编这里就不列出详细的code了,大家感兴趣的话,可以阅读狗熊会的“R语千寻”系列(戳这里),相信会在R语言的学习上受到更多启发。最后,我们将所有新生成的变量按照电影ID整合到一起,就大功告成啦。五、总结最后总结一下,小编在这次内容中向大家介绍了拿到数据后的数据理解和预处理工作,内容虽然不难,但同样需要我们认真对待。就好像生活一样,只有踏踏实实走好前面的路,才有可能迎接后面的高潮迭起!

㈢ 如何将编写好的C语言源程序变成可执行文件EXE

1、第一步,来打开C语言编译软件,自输入你要执行的程序源代码,如下图所示。


赞 (0)