① 数据预处理的主要方法有哪些
1.墓于粗糙集( Rough Set)理论的约简方法 粗糙集理论是一种研究不精确、不确定性知识的数学工具。目前受到了KDD的广泛重视,利用粗糙集理论对数据进行处理是一种十分有效的精简数据维数的方法。我们所处理的数据一般存在信息的含糊性(Vagueness)问题。含糊性有三种:术语的模糊性,如高矮;数据的不确定性,如噪声引起的;知识自身的不确定性,如规则的前后件间的依赖关系并不是完全可靠的。在KDD中,对不确定数据和噪声干扰的处理是粗糙集方法的 2.基于概念树的数据浓缩方法 在数据库中,许多属性都是可以进行数据归类,各属性值和概念依据抽象程度不同可以构成一个层次结构,概念的这种层次结构通常称为概念树。概念树一般由领域专家提供,它将各个层次的概念按一般到特殊的顺序排列。 3.信息论思想和普化知识发现 特征知识和分类知识是普化知识的两种主要形式,其算法基本上可以分为两类:数据立方方法和面向属性归纳方法。 普通的基于面向属性归纳方法在归纳属性的选择上有一定的盲目性,在归纳过程中,当供选择的可归纳属性有多个时,通常是随机选取一个进行归纳。事实上,不同的属性归纳次序获得的结果知识可能是不同的,根据信息论最大墒的概念,应该选用一个信息丢失最小的归纳次序。 4.基于统计分析的属性选取方法 我们可以采用统计分析中的一些算法来进行特征属性的选取,比如主成分分析、逐步回归分析、公共因素模型分析等。这些方法的共同特征是,用少量的特征元组去描述高维的原始知识基。 5.遗传算法〔GA, Genetic Algo}thrn}) 遗传算法是一种基于生物进化论和分子遗传学的全局随机搜索算法。遗传算法的基本思想是:将问题的可能解按某种形式进行编码,形成染色体。随机选取N个染色体构成初始种群。再根据预定的评价函数对每个染色体计算适应值。选择适应值高的染色体进行复制,通过遗传运算(选择、交叉、变异)来产生一群新的更适应环境的染色体,形成新的种群。这样一代一代不断繁殖进化,最后收敛到一个最适合环境的个体上,从而求得问题的最优解。遗传算法应用的关键是适应度函数的建立和染色体的描述。在实际应用中,通常将它和神经网络方法综合使用。通过遗传算法来搜寻出更重要的变量组合。
② 数据的预处理包括哪些内容
数据预处理(datapreprocessing)是指在主要的处理以前对数据进行的一些处理。如对大部分地球物理面积性观测数据在进行转换或增强处理之前,首先将不规则分布的测网经过插值转换为规则网的处理,以利于计算机的运算。另外,对于一些剖面测量数据,如地震资料预处理有垂直叠加、重排、加道头、编辑、重新取样、多路编辑等。
数据预处理的方法:
1、数据清理
数据清理例程通过填写缺失的值、光滑噪声数据、识别或删除离群点并解决不一致性来“清理”数据。主要是达到如下目标:格式标准化,异常数据清除,错误纠正,重复数据的清除。
2、数据集成
数据集成例程将多个数据源中的数据结合起来并 统一存储,建立数据仓库的过程实际上就是数据集成。
3、数据变换
通过平滑聚集,数据概化,规范化等方式将数据转换成适用于数据挖掘的形式。
4、数据归约
数据挖掘时往往数据量非常大,在少量数据上进行挖掘分析需要很长的时间,数据归约技术可以用来得到数据集的归约表示,它小得多,但仍然接近于保持原数据的完整性,并结果与归约前结果相同或几乎相同。
③ 大数据预处理的方法有哪些
1)数据清理
数据清理例程就是通过填写缺失值、光滑噪声数据、识别或者删除离群点,并且解决不一致性来进行“清理数据”。
2)数据集成
数据集成过程将来自多个数据源的数据集成到一起。
3)数据规约
数据规约是为了得到数据集的简化表示。数据规约包括维规约和数值规约。
4)数据变换
通过变换使用规范化、数据离散化和概念分层等方法,使得数据的挖掘可以在多个抽象层面上进行。数据变换操作是提升数据挖掘效果的附加预处理过程。
④ 怎样进行数据分析
进行数据分析方式如下:
1、要求明确:准确
明确需求主要是与他人沟通与需求相关的一切内容,并清晰准确地理解和表达相关内容。
在需求沟通中,通过掌握需求的核心内容,可以减少反复沟通。需求的核心内容可以从分析目的、分析主体、分析口径、分析思路、完成时间五个方面来确定。此外,在沟通的过程中,可以适当提出自己的想法,让需求更加清晰立体。
2、确定思路:全面、深入
分析思想是分析的灵魂,是细化分析工作的过程。分析思路清晰有逻辑,能有效避免反复分析问题。从分析目的出发,全面、深入地拆解分析维度,确定分析方法,最终形成完整的分析框架。
3、处理数据:高效
当我们进行数据分析时,我们可能会得到混乱的数据,这就要求我们清洁、整理、快速、准确地加工成适合数据分析的风格。
此时需要使用数据分析软件以工作流的形式提取数据模型的语义,通过易于操作的可视化工具将数据加工成具有语义一致性和完整性的数据模型。系统支持的数据预处理方法包括:采样、拆分、过滤和映射、列选择、空值处理、并行、合并行、元数据编辑、JOIN、行选择、重复值去除等。
4、数据分析:合适的数据
分析数据在分析过程中的地位是首要任务。从分析的目的出发,运用适当的分析方法或模型,使用分析工具分析处理过的数据,提取有价值的信息。
5、显示数据:直观
展示数据又称数据可视化,是以简单直观的方式传达数据中包含的信息,增强数据的可读性,让读者轻松看到数据表达的内容。
6、写报告:建议落地,逻辑清晰
撰写报告是指以文件的形式输出分析结果,其内容是通过全面科学的数据分析来显示操作,可以为决策者提供强有力的决策依据,从而降低操作风险,提高利润。
在撰写报告时,为了使报告更容易阅读和有价值,需要注意在报告中注明分析目标、口径和数据来源;报告应图文并茂,组织清晰,逻辑性强,单一推理;报告应反映有价值的结论和建议。
7、效果反馈:及时
所谓效果反馈,就是选择合适有代表性的指标,及时监控报告中提出的战略执行进度和执行效果。只有输入和输出才能知道自己的操作问题点和闪点,所以效果反馈是非常必要的。反馈时要特别注意两点,一是指标要合适,二是反馈要及时。
⑤ 数据预处理总结
为了使数据更加适合挖掘,需要对数据进行预处理操作,其中包含大量复杂的处理方式: 聚集 , 抽样 , 维归纳 , 特征子集选择 , 特征创建 , 离散化和二元化 和 变量变换 。
聚集将两个或多个对象合并成单个对象,如将多张表的数据汇集成一张表,同时起到了范围或标度转换的作用。
从统计学的角度来看:相对于被聚集的单个对象,平均值、总数等聚集量有较小的变异性。对于总数,实际变差大于单个对象的(平均)变差,但变差的百分比较小;对于平均值,实际变差小于单个对象的(平均)变差。
聚集的优势是数据集变小,处理时间变少,使聚集的对象或者属性群的行为比未聚集前更加稳定。缺点是可能丢失部分细节。
抽样是一种选择数据对象自己进行分析的方法,常用语数据的事先调查和最终的数据分析。和统计学中使用抽样是因为得到感兴趣的数据集费用太高、太费时间不同的是,数据挖掘中使用抽样可以有效的压缩整体数据量。
有效抽样的原理是:样本具有代表性,有原数据集有近似的或相同的性质,这样使用样本与整个数据集的效果几乎一样。
无样放回抽样--每个选中项立即从构成总体的所有对象中删除。
有放回抽样--对象被选中时不从总体中删除。此方法较简单,原因是抽样过程中,每个对象被选中的概率是不变的。
在有放回抽样中,相同的对象可能被多次抽出。当样本与数据集相差较小时,两种方法结果差别不太。
当总体由不同类型的对象组成,同时每种类型的对象差别很大时,简单随机抽样不能重返的代表不太频繁出现的对象类型,尤其是需要分析所有类型的代表时,需要在样本中适当的提供稀有类以代表不同频率的抽样。
等大小抽样:每个组大小不同,但是每次抽取的对象个数相同。
等比抽样:每一组抽取的对象数量和该组的大小成正比。
当选定完抽样技术后,就需要选择抽样容量。较大的样本容量增大了样本具有代表性的概率。相反,使用较小容量的样本,可能出现特征丢失。
合适的样本容量可能很难确定,因此有时需要使用自适应或者渐进抽样的方法。这些方法从一个小样本开始,然后增加样本容量直至得到足够容量的样本。该技术部需要在开始就确定正确的样本容量,但是需要评估样本的方法,以确定它是否满足大。
例如使用渐进抽样来评估一个预测模型,模型的准确率随样本容量的增加而增加,但在某一点的准确率的增加趋于稳定,如果希望在稳定点停止增加样本容量,就需要掌握模型准去率随样本逐渐增大的变化情况并通过选取接近当前容量的其他样本,从而估计出与稳定点的接近程度,从而停止抽样。
通过创建新属性,将一些旧属性合并在一起来降低数据集的维度。通过选择旧属性的子集得到新属性,这种维规约称为特征子集选择或特征选择。
如果维度(数据属性的个数)较低,许多数据挖掘算法的效果就会更好,一方面因为可以删除不相关的特征并降低噪声,另一方面是因为维灾难(随数据维度的增加,数据在它所占据的空间中越来越稀疏,导致分析变得困难,如分类准确率降低,聚类质量下降等)。
让模型更加容易理解,因为模型可能只涉及较少的属性。
可以更容易让数据可视化,即使没有将数据规约到二维或三维,数据也可以通过观察属性或对三元组属性达到可视化,并且这种组合的数目也会大大减少。
违规约降低了数据挖掘算法的时间和内存需求。
将高维空间投影到低维空间,特别是对于连续数据。常用的有主成分分析(PCA),它找出新的属性(主成分),这些属性是原属性的线性组合,是相互正交的,并且捕获了数据的最大变差。奇异值分解(SVD),也常用于维规约,与PCA有关。
降低维度的另一种方法是仅使用特征的一个子集,在冗余特征(重复包含了一个或多个其他属性中的信息)出现时特别有效。
理想的方法是将所有可能的特征子集作为感兴趣的数据挖掘算法输入,然后选取产生最后结果的子集。优点是反应了最终使用的数据挖掘算法的目的和偏爱,但当涉及N个属性的自己多达 时,这个方法行不通,需要通过其他三种标准的特征选择方法:
嵌入:把特征选择的过程与分类器学习的过程融合一起,在学习的过程中进行特征选择。常见的使用L1正则化,决策树和支持向量机等。
过滤:独立于学习算法,直接由原始的特征集合求得。先对数据集进行特征选择,排除冗余无关特征,得到特征数据集,然后对其训练学习器,这两个过程是独立的。过滤式特征选择算法会通过数据的本质属性对所有特征进行相应的评分,在评价过程中无需分类器完成,在对给出所有特征赋予相应的评分后,选择评分高的特征用于之后的学习算法中。
单变量过滤式:使用某种评价标准作为度量方式来确定数据集中特征对类别的区分能力。
多变量过滤式:通过考虑特征之间的交互作用来确定特征的重要性。
包装:与学习算法有关,利用学习算法的性能来评价特征子集的优劣。在特征选择的过程中,需要一个分类器,根据分类器性能去衡量特征子集,分类器有决策树,近邻分类器,贝叶斯分类器等。
过滤式算法简单高效,但是缺失与模型的交互性;封装式与模型相结合,结果精确,但是易过拟合;嵌入式有着两者的优点,但是构造起来比较麻烦。
过滤和包装组合式:先使用过滤进行特征选择,去掉不相关的特征,降低特征维度;然后利用包装进行特征选择。
可以由原来的属性创建新的属性集,新属性的数量可能较少,但能更有效的捕获数据集中的重要信息。
由原始数据集创建新的特征集称为特征提取,一般特征提取技术都是高度针对具体领域的,也就是当数据挖掘用于一个较新的领域时候,开发新的特征和提取方法是一个关键的任务。
使用一种完全不同的视角挖掘数据可能揭示出重要和有趣的特征。
如时间序列数据,常常包含周期模式。当只有单个周期时,噪声不明显,则容易检测到该模式;但当有大量周期时,并且存在大量噪声时,则很难检测这些模式,此时可以实施傅里叶变换(识别时间序列数据中的基本频率),将它转换成频率信息的表示,就能检测到这些模式。
有时候原始数据集的特征具有必要的信息,但其形式不适合数据挖掘算法,这种情况下,一个或多个由原始特征构造的新特征可能比原特征更有用。
有些数据挖掘算法,特别是某些分类算法,要求数据是分类属性形式。发现关联模式的算法要求数据是二元属性形式。常常需要将连续属性变换成分类属性(离散化),并且连续和离散属性可能都需要变换成一个或多个二元属性(二元化)。
变量变换(也称属性变换)是指用于变量的所有值变换。
参考:
1:《数据挖掘导论》
2: 特征选择与特征子集 - 思想永不平凡
⑥ 数据预处理
在数据挖掘中,海量的原始数据中存在大量不完整(有缺失值)、不一致、有异常的数据,会严重影响到数据挖掘建模的执行效果,甚至会导致挖掘结果的偏差,进而数据清洗就变得尤为重要。在数据清洗完成后接着甚至同时进行数据集成、变换、规约等一系列的处理,而整个过程称之为 数据预处理 。在整个数据挖掘过程中,数据预处理工作大致占据整个过程的 60% 。
一般来说,数据预处理的主要包括如下内容: 数据清洗、数据集成、数据变换、数据规约。
接下来的内容,我们也是从这几方面阐述。
常见的缺失值处理方法: 删除法、替换法、插补法等
(1)、删除法: 最简单的缺失值处理方法。从不同角度进行数据处理划分:
<code>
缺失值的处理
inputfile$date=as.numeric(inputfile$date)#将日期转换成数值型变量
sub=which(is.na(inputfile$sales))#识别缺失值所在行数
inputfile1=inputfile[-sub,]#将数据集分成完整数据和缺失数据两部分
inputfile2=inputfile[sub,]
行删除法处理缺失,结果转存
result1=inputfile1
</code>
(2)、替换法
一般根据属性将变量分:数值型和非数值型
在数据挖掘过程中,可能会存在数据分布在不同的数据源中,而这个时候需要将多个数据源合并存放在一个一致的数据存储(如数据仓库),整个过程称之为 数据集成 。
【
数据仓库:
关于数据仓库构思
漫谈数据仓库之维度建模
漫谈数据仓库之拉链表(原理、设计以及在Hive中的实现)
】
在R中,通过将存储在两个数据框中的数据以关键字为依据,以行为单位做列向合并,直接通过merge()函数完成。
merge(数据框1,数据框2,by="关键字"),而合并后的新数据自动按照关键字取值大小升序排列。不过在数据集成过程中存在表达形式不一样,导致不能直接完成匹配,就需要我们进行加以转换、提炼、集成等操作。具体从如下几方面:
(1)、实体识别
从不同数据源识别出现实世界的实体,来完成统一不同源的数据矛盾之处。
实体识别承担着检测和解决这些冲突的任务
(2)、冗余属性识别
数据变换主要对数据进行规范化处理、连续变量的离散化以及属性属性的构造,将数据转换成“适当的”形式,来满足挖掘任务及算法的需要。
(1)、简单函数变换
对原始数据进行某些数学函数变换,常见平方、开方、取对数、差分运算等等
主要来完成不具有正态分布变换服从正态分布;非平稳序列变为平稳序列等等
(2)、数据规范化
为了清除指标之间的量纲和取值范围差异的影响,需要进行标准化处理,将数据按照比例进行缩放,使之落入一个特定区域,便于进行综合分析。
常见方法如下:
<code>
读取数据
data=read.csv('./data/normalization_data.csv',he=F)
最小-最大规范化
b1=(data[,1]-min(data[,1]))/(max(data[,1])-min(data[,1]))
b2=(data[,2]-min(data[,2]))/(max(data[,2])-min(data[,2]))
b3=(data[,3]-min(data[,3]))/(max(data[,3])-min(data[,3]))
b4=(data[,4]-min(data[,4]))/(max(data[,4])-min(data[,4]))
data_scatter=cbind(b1,b2,b3,b4)
零-均值规范化
data_zscore=scale(data)
小数定标规范化
i1=ceiling(log(max(abs(data[,1])),10))#小数定标的指数
c1=data[,1]/10^i1
i2=ceiling(log(max(abs(data[,2])),10))
c2=data[,2]/10^i2
i3=ceiling(log(max(abs(data[,3])),10))
c3=data[,3]/10^i3
i4=ceiling(log(max(abs(data[,4])),10))
c4=data[,4]/10^i4
data_dot=cbind(c1,c2,c3,c4)
</code>
(3)、连续属性离散化
在数据的取值范围内设定若干个离散的划分点,将取值范围划分为不同的离散化的区间,最后使用不同的符号或数值代表落在不同区间的数据值。
常见离散方法:
(4)、属性构造
利用已有的属性构造出新的属性
(5)、小波变换(本次不进行阐述)
数据规约在大数据集上产生更小的且保持原数据完整性的新数据集,提升在数据集合上进行分析和挖掘的效率。
意义如下:
⑦ 预处理常用的方法有哪些
一、混凝-絮凝
混凝是指向水中投加一定剂量的化学药剂,这些化学药剂在水中发生水解,和水中的胶体粒子互相碰撞,发生电性中和,产生吸附、架桥和网捕作用,从而形成大的絮体颗粒,并从水中沉降,起到了降低颗粒悬浮物和胶体的作用。
二、介质过滤
介质过滤是指以石英砂或无烟煤等为介质,使水在重力或压力下通过由这些介质构成的床层,而水中的的颗粒污染物质则被介质阻截,从而达到与水分离的过程。粒状介质过滤基于“过滤-澄清”的工作过程去除水中的颗粒、悬浮物和胶体。
工业水处理
在工业用水处理中,预处理工序的任务是将工业用水的水源——地表水、地下水或城市自来水处理到符合后续水处理装置所允许的进水水质指标,从而保证水处理系统长期安全、稳定地运行,为工业生产提供优质用水。
预处理的对象主要是水中的悬浮物、胶体、微生物、有机物、游离性余氯和重金属等。这些杂质对于电渗析、离子交换、反渗透、钠滤等水处理装置会产生不利的影响。
⑧ 怎么进行数据分析
进行数据分析:
1、要求明确:准确
明确需求主要是与他人沟通与需求相关的一切内容,并清晰准确地理解和表达相关内容。
在需求沟通中,通过掌握需求的核心内容,可以减少反复沟通。需求的核心内容可以从分析目的、分析主体、分析口径、分析思路、完成时间五个方面来确定。此外,在沟通的过程中,可以适当提出自己的想法,让需求更加清晰立体。
2、确定思路:全面、深入
分析思想是分析的灵魂,是细化分析工作的过程。分析思路清晰有逻辑,能有效避免反复分析问题。从分析目的出发,全面、深入地拆解分析维度,确定分析方法,最终形成完整的分析框架。
3、处理数据:高效
当我们进行数据分析时,我们可能会得到混乱的数据,这就要求我们清洁、整理、快速、准确地加工成适合数据分析的风格。
此时需要使用数据分析软件以工作流的形式提取数据模型的语义,通过易于操作的可视化工具将数据加工成具有语义一致性和完整性的数据模型。系统支持的数据预处理方法包括:采样、拆分、过滤和映射、列选择、空值处理、并行、合并行、元数据编辑、JOIN、行选择、重复值去除等。
4、数据分析:合适的数据
分析数据在分析过程中的地位是首要任务。从分析的目的出发,运用适当的分析方法或模型,使用分析工具分析处理过的数据,提取有价值的信息。
5、显示数据:直观
展示数据又称数据可视化,是以简单直观的方式传达数据中包含的信息,增强数据的可读性,让读者轻松看到数据表达的内容。
6、写报告:建议落地,逻辑清晰
撰写报告是指以文件的形式输出分析结果,其内容是通过全面科学的数据分析来显示操作,可以为决策者提供强有力的决策依据,从而降低操作风险,提高利润。
在撰写报告时,为了使报告更容易阅读和有价值,需要注意在报告中注明分析目标、口径和数据来源;报告应图文并茂,组织清晰,逻辑性强,单一推理;报告应反映有价值的结论和建议。
7、效果反馈:及时
所谓效果反馈,就是选择合适有代表性的指标,及时监控报告中提出的战略执行进度和执行效果。只有输入和输出才能知道自己的操作问题点和闪点,所以效果反馈是非常必要的。反馈时要特别注意两点,一是指标要合适,二是反馈要及时。
⑨ 特征工程中数据预处理方法总结
特征工程
“巧妇难为无米之炊”,在机器学习中,数据和特征便是“米”,而模型和算法则是“巧妇”。没有充足的数据和合适的特征,再强大的模型也无法拟合出满意的结果。因此,对于机器学习的问题,常说的一句话是数据和特征决定了结果的上限,而模型和算法则是在优化过程中逐步接近这个上限。所以,特征的处理在整个机器学习过程中占有举足轻重的地位,对特征的处理过程被称为特征工程。特征工程是对原始数据进行一系列的工程处理,将其提炼为特征,作为输入工算法和模型使用。
特征工程又包含了Data PreProcessing(数据预处理)、Feature Extraction(特征提取)、Feature Selection(特征选择)和Feature construction(特征构造)等子问题,而数据预处理又包括了数据清洗和特征预处理等子问题。本文用作总结数据预处理的一系列方法。
1、无量纲化
(1)什么是无量纲化
为了消除数据特征之间的量纲影响,我们需要对特征进行归一化和标准化处理,使得不同指标之间具有可比性。例如:分析一个人的身高和体重对健康的影响,如果使用米和千克作为单位,那么身高和体重会处于不同的数值范围内,体重的数值在量上要远大于身高,而如果不对其做处理直接用的情况下分析结果显然会更依赖于数值差别较大的体重特征。因此,为了得到更为准确的结果,就需要对特征进行归一化和标准化处理,使各项指标处于同一数量级,以便进行分析。
(2)无量纲化方法
无量纲化通常也被称为归一化或标准化,是因为归一化和标准化是无量纲化的两个主要方法
1)归一化
归一化是对原始数据进行线性变换, 使结果映射到[0, 1]的范围, 实现对原始数据的等比缩放。 最常用对的是Min-Max Scaling归一化方法(也叫极差变换法),公式如下 :
其中X为原始数据, Xmax、Xmin分别为数据最大值和最小值。最值归一化的使用范围是特征的分布具有明显边界的,受outlier的影响比较大。
除此之外,常用的归一化方法有原始值比最大值。
2)标准化
标准化会将原始数据映射到均值为0、 标准差为1的分布上。常用的方法是零均值标准化(Z-Score Normalization)。 具体来说, 假设原始特征的均值为μ、 标准差为σ, 那么归一化公式定义为 :
零均值标准化适用于数据中没有明显的边界,有可能存在极端数据值的情况。
3)不同的无量纲方法的适用范围
无量纲化避免了不同量纲的选取对距离计算产生的巨大影响。但是,归一化和标准化适用于不同的场景,在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,标准化方法表现更好。在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用归一化方法。比如图像处理中,将RGB图像转换为灰度图像后将其值限定在[0 255]的范围。
(3)无量纲化的作用和适用模型
1)作用
无量纲化的作用除了可以使分析结果不明显倾向于差异化较大的特征外,另一个重要作用是在随机梯度下降算法中,如果对特征进行了无量纲化处理,会在相同的学习率的情况下减少差异较大的特征的迭代次数,更快找到最优解。例如,假设有两种数值型特征,x1x1的取值范围为 [0, 10],x2x2的取值范围为[0, 3]。则在未归一化和归一化数据的梯度下降过程分别如下图:
由图可以看出,在学习速率相同的情况下,x1相比与x2需要较多的迭代才能找到最优解。但是,如果将 x1 和 x2都映射到到相同的数值区间后, 优化目标的等值图会变成圆形。x1和 x2 的更新速度变得更为一致, 容易更快地通过梯度下降找到最优解。
2)适用算法
机器学习中,并不是所有的模型都需要对特征进行无量纲化处理。比如概率模型并不需要,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率。但是,像线性回归、逻辑回归和支持向量机以及神经网络模型等则就需要提前进行特征的无量纲化。从另一个角度来看,通过梯度下降法求解的模型通常需要无量纲化。否则,像决策树在求解过程中,主要依据特征值的信息增益比等信息,而这些信息跟特征是否经过归一化等无量纲化处理是无关的,因此决策数不要求对特征进行无量纲化处理。
2、类别型特征编码
类别型特征的值表现为类别变量,类别型变量,也被称为定性变量(categorical variable)。比如性别、省份、学历、产品等级等。这类变量的取值通常是用文字而非数字来表示。在机器学习中,除了决策树族的算法能直接接受类别型特征作为输入,对于支持向量机,逻辑回归等模型来说,必须对其做一定的处理,转换成可靠的数值特征才能正确运行。类别型特征的处理方法有:
(1)序列编码(ordinal encoding)
一般处理类别间具有大小关系的数据,例如期末成绩的 [A, B, C, D] 四挡可以直接转化为 [0, 1, 2, 3]。在转化后,依然保持类别之间的顺序关系。
(2)独热编码(one-hot encoding)
序列编码潜在的定义了类别之间的距离具有相同的含义。以成绩为例,两个人之间,得分A与B的成绩差,和B与C的成绩差,在进行预测时,是完全等价的,由于 [A, B, C, D] 直观上与成绩正相关,使用序列编码不会带来太大的损失。然而在处理像血型这样的类别特征时,如果将 [A, B, AB, O] 直接编码成 [1, 2, 3, 4],显然A与B和B与AB之间的距离,并不具有相同的含义,甚至是完全抽象的无法理解的意义,此时,序列编码就不适用了。因此,便出现了独热编码,独热编码将类别特征用一组比特位来表示,每一位代表一个可能的类别,如果该变量不能一次称为多个类别,那么该组中只有一位可以是1。
对于类别取值较多的情况下适用独热编码需要注意以下问题:
1)适用稀疏向量来节省空间。在独热编码下,特征向量只有某一维取值为1,其他位置取值均为0。因此,可以利用向量的稀疏表示有效节省空间,并且目前大部分的算法均接受稀疏向量形式的输入。
2)配合特征选择来降低维度。高维度特征会带来几方面的问题,一是在K近邻算法中,高维空间下两点之间的距离很难得到有效的衡量;二是在逻辑回归模型中,参数的数量会随着维度的增加而增高,容易引起过拟合问题;三是通常只有部分维度是对分类、预测有帮助,因此可以考虑配合特征选择来降低维度。
(3)哑变量(mmy encoding)
哑变量是独热编码的一种形式,onehot编码的问题是它允许k个自由度,其中变量本身只需要k-1。虚拟编码通过仅适用表示中的k-1个特征来消除额外的自由度。
3、数值型特征离散化
离散化是数值型特征非常重要的一个处理,其实就是要将数值型数据转化成类别型数据。连续值的取值空间可能是无穷的,为了便于表示和在模型中处理,需要对连续值特征进行离散化处理。
(1)无监督方法
1)自定义离散化,根据业务经验或者常识等自行设定划分的区间,然后将原始数据归类到各个区间中。
2)等距化方法,按照相同宽度将数据分成几等份,其缺点是受到异常值的影响比较大。
3)等频化方法,将数据分成几等份,每等份数据里面的个数是一样的。
4)聚类离散化
5)二值化方法,设定一个阈值,大于阈值的赋值为1,小于等于阈值的赋值为0。
(2)有监督方法
1)卡方法,自底向上的(即基于合并的)数据离散化方法。它依赖于卡方检验:具有最小卡方值的相邻区间合并在一起,直到满足确定的停止准则。其基本思想是,对于精确的离散化,相对类频率在一个区间内应当完全一致。因此,如果两个相邻的区间具有非常类似的类分布,则这两个区间可以合并;否则,它们应当保持分开。而低卡方值表明它们具有相似的类分布。
2)最小熵法,需要使总熵值达到最小,也就是使分箱能够最大限度地区分因变量的各类别。数据集的熵越低,说明数据之间的差异越小,最小熵划分就是为了使每箱中的数据具有最好的相似性。给定箱的个数,如果考虑所有可能的分箱情况,最小熵方法得到的箱应该是具有最小熵的分箱。
4、缺失值处理方法
(1)直接删除
如果在数据集中,只有几条数据的某几列中存在缺失值,那么可以直接把这几条数据删除。
(2)均值插补
数据的属性分为定距型和非定距型。如果缺失值是定距型的,就以该属性存在值的平均值来插补缺失的值;如果缺失值是非定距型的,就根据统计学中的众数原理,用该属性的众数(即出现频率最高的值)来补齐缺失的值。
(3)利用同类均值插补
同均值插补的方法都属于单值插补,不同的是,它用层次聚类模型预测缺失变量的类型,再以该类型的均值插补。
(4)极大似然估计
在缺失类型为随机缺失的条件下,假设模型对于完整的样本是正确的,那么通过观测数据的边际分布可以对未知参数进行极大似然估计(Little and Rubin)。
(5)多重插补
多重插补的思想来源于贝叶斯估计,认为待插补的值是随机的,它的值来自于已观测到的值。具体实践上通常是估计出待插补的值,然后再加上不同的噪声,形成多组可选插补值。根据某种选择依据,选取最合适的插补值。