5.3 异常值处理

异常值是指样本中的个别值,其数值明显偏离它所属样本的其余观测值,这些数值是不合理的或错误的。

出现异常值的原因

每当我们遇到异常值时,处理它们的理想方法就是先找出出现这些异常值的原因。下面,常见出现异常值的原因,具体如表所示

异常值类型

相关说明

数据输入错误

人为错误(如数据收集,记录或输入过程中引起的错误)可能导致数据异常。例如:客户的年收入为100000元。无意之中,数据输入操作员在图中增加了一个零,变成了1000000元,这样就高出10倍,该值则为异常值

测量误差

由于测量仪器发生故障导致的,该类异常值是最常见的。例如,有10台称重机,其中9个是完好的,1个是有缺陷的,若是使用有缺陷的称重机测量重量,则会高于/低于该组中的其他人的重量,该重量值即为异常值

故意异常值

该类异常值通常出现在涉及敏感数据的自我报告的度量中。例如:青少年通常会报告他们消耗的酒精量,然而只有一小部分青少年会报告实际消耗的酒精量,这里的实际消耗的酒精量可能看起来像是异常值

数据处理错误

当进行数据挖掘时,我们会从多个数据源中抽取数据,由于某些操作或抽取错误可能会导致数据集中出现异常值

采样错误

当测量跳水运动员的身高时,也测量了篮球运动员的身高,并把篮球运动员的身高记入到样本中,这样会导致样本中的数据集出现异常值

自然异常值

当异常值不是人为原因造成的,那么就有可能是自然异常值。例如,一家知名的保险公司的前50名财务顾问的表现能力都强于其他人群,关于表现能力强弱的值即为自然异常值

检测异常值 

假设,数据集中的大多数实例都是在正常的前提下,异常值的检测方法通常分为三大类,即无监督式异常值的检测、监督式异常值的检测以及半监督式异常值的检测,具体介绍如下:

无监督式异常值的检测,通过寻找与其他数据最不匹配的实例来检测出未标记测试数据的异常。

监督式异常值的检测,需要一个已经被标记“正常”与“异常”的数据集,并涉及到训练分类器,用来区分正常值和异常值。

半监督式异常值的检测,根据一个给定的正常训练数据集创建一个表示正常行为的模型,将检测的偏离正常行为的对象视为异常值。

检测异常值

一般异常值的检测方法包含基于统计的方法、基于聚类的方法、以及一些专门检测异常值的方法等异常值检测的方法。

 删除包含异常值的记录

不少人在处理异常值时,习惯于使用简单粗暴的删除方法,但是这并不适用于处理所有异常值,若是通过删除的方法处理异常值,有时会使你错过真正的规律。如果想要删除数据,一定需要有合理的理由。当出现异常值时,需要先搞清楚是什么原因导致的异常值,然后考虑如何去处理。

不宜删除异常值的情况,具体如下:

(1)通常情况下,数据中出现的异常值较少。如果采集的数据中有超过30%的异常值数据,那么意味着需要进一步研究数据。

(2)如果异常值存在且代表了一种真实存在的现象,那就不可随意删除。例如,调查100个村的胃癌发病率,可能确实有个别村庄的发病率远远高于其它村,这时就不能随意删除,而是要把这些异常点纳入,重新拟合模型,研究其规律。

(3)分析数据的结果至关重要,因此即使很小的变化也会很重要。例如,可以更好地放弃关于人们最喜欢电视节目的异常值,而不是放弃关于飞机封条失效的温度。

通过Kettle工具,去除文件temperature.txt中的异常值。

现在有这样一份记录一天中不同时间温度的数据文件temperature.txt,其中包含时间和温度(摄氏度)两个字段,具体内容如图所示(展示部分数据)

 通过使用Kettle工具,创建一个转换delete_anomalous _value,并添加“文本文件输入”控件、“过滤记录”控件、“空操作(什么也不做)”控件以及Hop跳连接线。

 

双击“文本文件输入”控件,进入“文本文件输入”配置界面。

先单击【浏览】按钮,选择要去除异常值的文件temperature.txt,然后单击【增加】按钮,将要去除异常值的文件temperature.txt添加到“文本文件输入”控件中。

单击“内容”选项卡;清除分隔符处的默认分隔符“;”,单击【Insert TAB】按钮,在分隔符处插入一个制表符;取消勾选“头部”复选框,若不取消,在进行数据抽取操作时会排除文件第一行的数据。

单击“字段”选项卡;根据文件temperature.txt的内容添加对应的字段名称,并指定数据类型。

单击【预览记录】按钮,查看文件temperature.txt的数据是否成功抽取到文本文件输入流中。

双击“过滤记录”控件,进入“过滤记录”配置界面。

在“条件”处设置过滤的条件,由于文件temperature.txt中time为6:30的温度是137摄氏度,不在非异常值的范围内,因此属于异常值,我们应该将过滤字段设置为temperature、过滤值为137。

在“发送true数据给步骤:”处的下拉框中选择“空操作(什么也不做)2”,将异常值放在“空操作(什么也不做)2”控件中;在“发送false数据给步骤:”处的下拉框中选择“空操作(什么也不做)”,将非异常值放在“空操作(什么也不做)”控件中。

运行创建的delete_anomalous_value转换。

 

 查看文件temperature.txt是否去除了异常值

单击“空操作”控件,再单击执行结果的“Preview data”选项卡,查看是否去除了异常值。

 至此,我们完成异常值的处理。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
光盘: ├─chap01....................................第1章 PE文件格式的深入分析 │ └─PEDump.zip ;Matt Pietrek的PEDUMP程序 │ ├─chap02....................................第2章 PE分析工具编写 │ ├─PEInfo_example ;PE分析工具样例 │ └─Test ;TestSH.exe,这个程序的OptionalHeader的大小为0xD0 │ ├─chap03....................................第3章 Win32 调试API │ ├─内存补丁 │ │ ├─进程间内存共享机制应用.txt │ │ ├─使用Dr X调试寄存器框架程序.txt │ │ └─bpm example code ;yoda的实例,演示利用Ntdll.ntcontinue作为跳板在入口点处中断 │ └─脱壳机 │ ├─Unlock.asm ;脱壳机的源程序 │ ├─unlock.exe ;己编译好的脱壳机程序 │ └─locked.exe ;被tElock 0.98保护的记事本程序 │ ├─chap04....................................第4章 Windows下的异常处理 │ ├─sehRelease │ │ ├─sehdef.inc ;完整的异常代码列表 │ │ ├─s1.asm ;例子1.演示Final型异常处理及参数获取 │ │ ├─s2.asm ;例子2.演示Per_Thread型异常处理 │ │ ├─s3.asm ;例子3.演示Per_Thread型异常处理的嵌套处理 │ │ └─S4.ASM ;例子4.演示异常处理的堆栈展开 │ ├─ring ;例子5.演示Windows9x进特权级Ring0 │ ├─singlestep ;例子6.演示SEH实现单步自跟踪 │ └─veh ;例子7.VEH代码演示 │ ├─chap05....................................第5章 反跟踪技术 │ ├─Anti-Debug ;5.1 反调试技术 │ │ ├─MeltICE ;句柄检测 │ │ ├─Back Door ;SoftICE后门指令 │ │ ├─int 68 ;int68子类型 │ │ ├─ICECream ;ICECream子类型 │ │ ├─NticeService ;判断NTICE服务是否运行 │ │ ├─int1 ;INT 1 检测 │ │ ├─UnhandledExceptionFilter ;利用UnhandledExceptionFilter检测 │ │ └─int41 ;INT 41子类型 │ ├─DetectBreakpoint ;5.2 断点检测技术 │ │ ├─SEHbpx ;利用SEH防范BPX断点 │ │ ├─SEHbpm ;利用SEH防范BPM断点 │ │ └─IsBPX ;检测函数首地址 │ ├─Anti-Loader ;5.3 反加载技术 │ │ ├─TEB ;利用TEB检测 │ │ ├─IsDebuggerPresent ;利用IsDebuggerPresent函数检测 │ │ └─CheckParentProc ;检查父进程 │ ├─Anti-Monitor ;5.4 反监视技术 │ │ ├─AntiProcDump ;窗口方法检测ProcDump │ │ └─Anti-Filemon&Regmon ;句柄检测Filemon和Regmon │ ├─Anti-Disassemble ;5.5 反静态分析技术 │ │ ├─pushre ;扰乱汇编代码 │ │ ├─SMC ;SMC技术实现 │ │ └─花指令 ;花指令样例 │ ├─CRC ;5.7 文件完整性校验 │ │ ├─磁盘文件校验 │ │ │ ├─add2crc32 ;计算文件CRC32的工具,可以将结果写进文件里 │ │ │ └─crc32 ;待校验的程序 │ │ ├─内存映像校验 │ │ │ ├─memcrc32 │ │ │ │ └─src │ │ │ │ ├─add2memcrc32 ;计算PE文件代码区块CRC32的工具,可以将结果写进文件里 │ │ │ │ └─memcrc32 ;需要校验内存代码数据的程序 │ │ │ └─Detect Breakpoint ;校验内存中的片段代码的样例 │ │ └─CRC原理 ;arbin翻译的《CRC原理及其逆向分析方法》 │ └─codeEncrypt ;5.8 代码与数据结合技术 │ ├─codeEncrypt ;代码与数据结合的实例 │ └─tools ;Encrypter.exe工具及其源码 │ ├─Chap06....................................第6章 加壳软件编写 │ ├─prot ;本章实例加壳工具prot v0.46及其源码 │ ├─aPLib引擎 ;aPLib压缩引擎 │ └─TestUseVC ;Spring的加壳程序综合运用的实例 │ ├─Chap07....................................第7章 如何让壳与程序融为一体 │ ├─7.1 欺骗检查壳的工具 │ │ ├─aspack212压缩 │ │ ├─aspack212压缩后更改入口代码 │ │ ├─aspack压缩后再修改过的壳加壳 │ │ ├─aspack压缩后再自己加壳 │ │ ├─实例(没加壳) │ │ ├─自己加的壳 │ │ ├─自己的加壳工具 │ │ │ ├─原版壳的程序 │ │ │ └─更改后的壳的程序程序 │ │ └─tools │ │ ├─fi ;测试用的FileInfo工具 │ │ └─aspack212 ;测试用的Aspack加壳工具 │ ├─7.2判断自己是否给脱壳 │ │ ├─7.2.1 判断文件尺寸 │ │ ├─7.2.4 使用存储映像文件检查标记 │ │ ├─7.2.2 使用同步对象检查标记 │ │ ├─7.2.3 使用原子(ATOM)检查标记 │ │ ├─7.2.5 使用线程优先权检查标记 │ │ ├─7.2.6 使用外部文件检查标记 │ │ └─7.2.8 注入一个定时器 │ └─7.3 使用SDK把程序和壳溶为一体 │ ├─test ;实例 │ └─sdk壳的程序 │ ├─chap08....................................第8章 Visual Basic 6 逆向工程 │ ├─example1 ;演示虚函数表的概念 │ ├─example2 ;如何处理事件的虚函数表 │ ├─example3 ;利用SEH反加载 │ ├─example4 ;演示如何更改程序结构 │ ├─example5 ;本例简单说明了如何直接修改vb6程序的控件属性值 │ ├─example6 ;一个VB6 P-code Crackme分析实例 │ └─example7 ;VB“自锁”功能实现的实例 │ ├─附录A.....................................附录A 在Visual C++中使用内联汇编 │ ├─InlineASM ;内联汇编实例 │ └─SeparateASM ;VC 中调用 MASM 独立汇编实例 │ └─附录B.....................................附录B 在Visual Basic中使用汇编 ├─TweakVB ;TweakVB 控件(http://www.tweakvb.com/) ├─VBInlineAsm ;VBInlineAsm控件 └─Compile Controller ;Compile Controller控件 ;(http://www.fawcette.com/archives/premier/mgznarch/vbpj/1999/11nov99/jc1199/jc1199.asp)
目录 第1 章重构,第一个案例···· · ·· · · ····· · · ····· ··· · ····· · · ·….... ……................ ….............. …..... …...... …l I.I 起点···· ········· · · · ·· · ············· · ··· · ··········· ·· · ··· · ··········· · · ··· · · ··· ···· ·· ····· · ·· ···· · ·· · · ··· ·· · · · ·· ·· · ·· · ···· · ··· ·····I 1.2 重构的第一步·· ·· · ·· ········· ···· ·· · ······· ········· · ········· · ··· · ······ ··· ·· · · ·· · ·· · · · · ··· ··· ·· ·· · ·· · ········ ·· · ············ .7 1.3 分解并重组s t atement ()…............. …······································ ….......... …................. 8 1.4 运用多态取代与价格相关的条件逻辑………… … . . ..……....... ….... ….... …······ ……····· …··34 1.5 结语··· ······· ··· ·· · ······ · ··· · ········ ···· · ·· ····· · · ·· ·· · ···· ·· · ·· ·· ·· · ·· · ·· · · ··· · ·· · ·· · · ·· · ·· · ·· ·· ·· ····· ·· · ·· ·· ····· · ···· · ·····52 第2 章重构原则······ · ···· ······· ·· · · ·· ··· ·· · · ··· · · · · ·· · ·· ·· ·· · ···· ·· · ·· ·· ·· · ·· · ·· ···· ········ ·· ···· · ·················· · ·· · · ·······53 2.1 何谓重构·· · · ·· ··· ·· ··· ··· ····· · ············· · ·· ················ · ·· ·· ······················· · ············· · ······· ·· • ··· ····· ·· ·53 2.2 为何重构···· ········· ··· · ············ · ·· ···· · ···· ·· · ·· · · ·· · · ··· ····· · · ·· ····· • ···· • · ·············· · · · ·· ··· ···· ····· · ········ ···55 2.3 何时重构··· ··· ·· · ·· ··· · ·· ·· ··· ·· ··· ·· ·· ·· ··· • · ·· ····· ·· · ·· •· ······· · · ····· ·· · ·· ·· · ···· ·· ················· · ············· · ·· · ····57 2.4 怎么对经理说·· ·· ····· · ··· · ···· · ········· ···· · ···· ············ ········· ·· ··· ·· ··· ·· ·· ·· ··· ·· •· ·· · ···· ······· · · ·········· ····60 2.5 重构的难题...... .. . ............. .. ....... . .... . ........... .. . . . ...... .. ... ... .............................. . ........ . ........ 62 2.6 重构与设计······ ·· · · ······· ·· ···· · ··· ·· · · ··· ·· ·· ····· · · · ·· ·· ·· ··· ·· ·· · ·· ·· ···· · ···· · · ········ ···· · ·· · · ·· · ·· ·· --· ·· ·· · ·· · · ·· ··66 2.7 重构与
使用目的:将PC端空闲的无线网卡虚拟为AP热点,以达到扩展网络的目的。 使用要求:1、PC已经连接到internet;2、有空闲的无线网卡。 更新说明:(来自压缩包内) 1.0.5.3[2011.07.19] 智能USB无线网卡热拨插处理 改良悬浮图标显示 改良无线信号算法 更换SEH的编译方式 改良路由重启调度算法 1.0.5.2[2011.07.17] 修复一处COM引用漏洞 改进安全代码 改良部份UI控制代码 若干细节改良 1.0.5.1[2011.07.16] 加入修复80040201功能[测试版] 优化启动路由代码 修复部份安全代码 修正一些可能的错误 1.0.5.0[2011.07.12] 修正CRC h出错提示 一些细小修改 1.0.4.9[2011.07.11] 修正在win7下资源管理器停止的现像 修正等级为6的安全机制Bug 修正检测机器码不稳定Bug 加入服务器状态的刷新功能 修复一处可能的内存异常 一些细小修改 1.0.4.6[2011.07.10] 优化与新服务器的连通性 (连接VIP服务器负载均衡算法) 为安卓版本公测预留接口 修正部份英文语法[感谢华仔] 改进在win7下面的路由算法 增加与时间服务同步时间功能 加入程序安全保护引擎 若干细小改进 界面微调 加入互联网DNA 1.0.4.5[2011.06.07] 修正部份英文语法[感谢华仔] 加入智能检测所需要的补丁 增强若干功能 1.0.4.4[2011.06.06] 优化程序结构 改进部份智能 增强出错捕捉 改进部份功能算法 1.0.4.3[2011.06.03] 改进部份电脑上开启无响应 优化算法 1.0.4.2[2011.06.02] 修复部份电脑上的“服务器正在运行,切换到”情况 修复一处特殊条件下的内存异常 优化代码执行效率 改良部份窗口退出方式 1.0.4.1[2011.06.01] 改进部份CPU点开启后无响应 优化线程管理 优化部份算法 优化COM调用 1.0.4.0[2011.05.31] 加入CPU占用率显示 加入防火墙检测诊断 加入CPU占用高的检测代码 修正一个服务Bug (如果诸位发现CPU占用很高,请发ApWiFi诊断文件至[email protected]) 1.0.3.9[2011.05.30] 修正路由启动的逻辑Bug 修复若干Bug 1.0.3.8[2011.05.29] 修改一个COM引用错误 加入一个路由服务的修复 1.0.3.7[2011.05.29] 修正能连上ApWiFi而不能 上网的一个Bug 优化程序运行环境 增强修复路由相关服务效果 1.0.3.6[2011.05.27] 检测无线名字合法性 修复改IP的若干个Bug 1.0.3.5[2011.05.26] 修正一个算法Bug 加入一个VIP功能 (修改路由器IP仅XP用) 界面微调 1.0.3.4[2011.05.23] 增加开启所有禁用的网卡 (此功能在“修复”按钮中) 增加菜单栏 修正皮肤内存泄漏 增强软件健壮性 修复若干小bug 1.0.3.3[2011.05.21] 改良路由启动算法 改良修复路由相关服务 修正部份Bug 增强侦错信息 界面微调 修正悬浮流量不同步现像 1.0.3.2[2011.05.19] 增加悬浮流量图标 加入程序无响应记录机制 1.0.3.1[2011.05.18] 改进在线升级的一个bug[感谢诡惑] 改进与windows主题的兼容性 增强软件健壮性 增加无线"换个名字"按钮 修复若干细小Bug 1.0.3.0[2011.05.17] 加入免费VIP扩展接口 优化程序部份算法 改良兼容性 1.0.2.9[2011.05.16] 改良部份IP获取和网页打不开现象 路由器启动算法调整 [***此版本算法改动较大,可能会 带来一些Bug,希望能及时反馈***] 1.0.2.8[2011.05.15] 增加信号值显示 增加重启路由器按钮 1.0.2.7[2011.05.14] 改进部份电脑无法显示统计数据 加入无线信号指示图标 修正一处因句柄可能引起的出错 改进程序键状性 1.0.2.6[2011.05.12] 改进无线伺服务器的合理性 加入路由中误连的识别 改进无线断线后的接通率 增加自动唤醒功能 1.0.2.5[2011.05.11] 改进出错记录算法 增强对IP地址冲突的检测 增强开启关闭防火墙效果 增强自动分配IP效果 1.0.2.4[2011.05.10] 修改路由器模式名称[感谢/;-D] 修复部份电脑点开启卡的问题 增加开启windows防火墙功能 增加开启路由出错后重试次数 1.0.2.3[2011.05.09] 增加关闭windows防火墙 增加清理无线连接项 优化软件结构 1.0.2.2[2011.05.08] 改进无线断开后不能重连的问题 在线升级加入对升级包的MD5验证 增强修复功能 1.0.2.1[2011.05.07] 改进兼容模式对快速退出时的bug 增加DHCP和DNS服务指示 增强修复功能 加入出错信息记录 增加内存自动控制 修复一处可能的内存泄漏 1.0.2.0[2011.05.06] 加入修复80040005,ALG等修复 修正开启机动的菜单项bug 1.0.1.9[2011.05.05] 加入修复功能(出错时使用) 增加开机自动开启路由 1.0.1.8[2011.05.04] 改进兼容硬件路由算法 修正识别ApWiFi路由IP算法 增加部分800开头出错代码的修复 改进WEP加密支持数字和字母[A-F] 增加部份人性化界面功能 1.0.1.7[2011.05.03] 增加繁体字[十分感谢Hugo Chen的翻译] 智能解决80040201出错问题 开启实时流量波浪图功能 修正双win7图标bug 1.0.1.6[2011.05.02] 修正一处内存泄漏[感谢zepto] 右击托盘不弹出主界面口 [感谢①場【曖昧】ぺ愛那麼少↙] 增加路由器IP地址显示 改进无线伺服器的规范 加入已连上的设备名字 界面调整 1.0.1.5[2011.05.01] 加入WPA-PSK,WPA2-PSK加密算法支持[限Win7使用] 改正路由状态中的文字[感谢項少龍] 修正一处英文拼写错误[感谢zepto] 学习connectify的无线开启方法[感谢九两金] 加强在线升级算法和逻辑 1.0.1.4[2011.04.30] 增加安卓补丁[感谢异者 Me]*这个在群里下载 增加对硬件路由上网方式的兼容[感谢九两金] 增加出错代码的解决方案帮助信息 1.0.1.3[2011.04.28] 修正了一个英文语法错误[感谢Neol] 调整了部份UI界面[感谢ㄒňёЕиd.] 调整界面整体布局[感谢大西北] 改进已连接设置的识别算法[感谢大西北] 修网页中存在的时间问题[感谢大西北] 修改网页图片[感谢江南专汽] 网站备案成功 1.0.1.2[2011.04.27] 智能修复无线网络服务(感谢一位叫“九两金的网友现这个问题) 1.0.1.1[2011.04.27] 加入Win7系统的支持(同支持XP和Win7) 修正若干Win7兼容规范 改进客户连接识别算法 1.0.1.0[2011.04.26] 增加诊断按钮,以便依据诊断信息解决问题 增加开启出错提示 修正若干可能引起的错误 1.0.0.9[2011.04.25] 增加开启时的出现共享出错的智能修复 修正共享ADSL一个经常出错的Bug 增加悬浮窗口 1.0.0.8[2011.04.24] 修正了一个智能识别Internet Bug 改进程序部分结构,使其更合理 修正了一处可能引起的异常 加入启动画面 加入升级提醒 1.0.0.7 [2011.04.23] 改进拨号网络的Internet连接识别算法 修正一处界面逻辑错误 1.0.0.6[2011.04.22] 改进在线升级算法 修正开机设置可能出现的错误 1.0.0.5[2011.04.21] 改进一处可能的内存泄露 增加程序意外终止的智能处理 改进USB无线网卡的插入识别算法 1.0.0.4[2011.04.19] 修正在线升级一处界面bug 改进客户端连了时的IP识别算法 1.0.0.3[2011.04.17] 增加断网后重获IP的识别处理 程序界面的部份调整 修正一处伺服线程的bug 1.0.0.2[2011.04.16] 加入智能识别路由组件是否正常与 自动修正功能 1.0.0.1[2011.04.14] 改进进出流量算法 增加下载和上传速度显示 增加最前菜单项 增加开机启动菜单项 界面显示时的小bug 1.0.0.0[2011.04.13] ApWiFi第一版发布

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kiritobryant

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值