1、数据挖掘流程大数据应用基础第三次课友情提示上课时间请勿:-请将您手机改为“震动” 避免在课室里使用手机-交谈其他事宜-随意进出教室请勿在室内吸烟上课时间欢迎:-提问题和积极回答问题-随时指出授课内容的不当之处数据挖掘的基本流程数据预处理2评估4信息收集3 1数据挖掘3 3知识表示3 5数据挖掘的基本流程高度重视以下同义词 以下术语大致是同一个意思: 表格中的行行:个案=实例=记录=样本点=数据点 表格中的列列:属性=特征=字段=维度=预测变量=自变量数据预处理数据预处理的步骤 主要包括:数据集成数据清理数据归约(抽样和属性筛选)数据变换。数据质量有很多方面问题数据准备 在数据挖掘过程中,数据准
2、备工作占用的时间往往在一半甚至60%以上! 这些工作对提高数据挖掘结果的准确性是必不可少的。因为,没有高质量的数据高质量的数据,就没有高质量的挖掘结果。 数据挖掘出现错误结果多半是由数据源的多半是由数据源的质量引起质量引起的。因此应该重视原始数据的质量,从源头上减少错误和误差,尤其是减少人为误差。数据准备的重要性数据准备工作占用的时间往往在60%以上!数据集成 数据挖掘或统计分析可能用到来自不不同数据源同数据源的数据,我们需要将这些数据集成在一起。 如果只有一个数据源,这一步可以省略。数据集成中的实体识别问题 一个重要问题是实体识别问题:在不同的数据源中,相同的字段也许有不同的名称。 我们需要
3、识别数据中能唯一标识实体的字段。我们怎么能确定一个数据源中的customer_id和另一个数据源中的customer_number指的是同一个字段呢?这里我们可以利用字段的元数据信息,例如含义、数据类型、字段允许值的范围等,从而避免在数据集成时出错。 如果我们确定这两个字段是一致的,那么我们就能够把标识相同的客户当作同一个客户。数据集成中的实体识别问题 对于互联网企业来说,一个需要注意的重要问题是如何能把PC端用户、手机端用户给对应起来。 也就是说,如何能保证,用户在不同设备上登录你的网站时的访问记录都能汇总到一起,而不是把这些访问记录当做是多个不同用户的访问记录。数据集成中属性值不一致的问题
4、 同一个人的名字可能在一个数据库中登记为“王思聪”,在另一个数据库中则登记为“Sicong Wang”。数据集成中的数据值格式不一致问题 对同一个实体,来自不同数据源的属性值可能是不同的。原因可能是各个数据源往往以不同的方式表示相同的数据,或采用不同的度量等。 例如,不同数据源中日期的格式不同。 日期有时是一个数值; 有时是以“XXXX年X月X日”的字符串格式存储; 有时以“YY/MM/DD”的字符串格式存储。 又例如,对同一个省份可能用了不同的名称。 还有,同一个名字的属性sales,在一个数据库中是指一个区域的销量,在另一个数据库中可能是指一个分店的销量。数据集成中的数据值格式不一致问题
5、重量在一个数据源中的单位可能是千克;在另一处则是斤。一种度量另一种度量数据集成中的属性冗余问题 一个属性可能能由另一个或一组属性导出。 有些冗余可以被相关分析检测到。我们通过相关系数或卡方检验了解两个属性是否是统计相关的。数据探索 在数据集成后,需要数据探索(data exploring)。这个步骤不是数据预处理,但对数据预处理很重要。 几乎很少有现成的数据能直接使用。数据总是看上去不整洁,例如有脏数据、缺失值等。 怎样能知道数据的质量呢?你需要把自己沉浸在数据中,进行数据探索,从而从而了解数据质量了解数据质量。数据探索的方法 在R中的summary(变量名)这种指令(在其他软件中有类似指令)
6、能提供诸多基本统计信基本统计信息息。比如:每个变量的值域值域区间(最大值和最小值)是否合理?所有的值都落在期望的区间内吗?平均值与中位数是相等的还是差别很大(这有助于说明变量是否符合正态分布正态分布)?数据是对称的还是倾斜的。每个变量的标准差是多少?(远离属性的均值超过两个或三个标准差的值可能是离群点离群点)有多少缺失值缺失值?直方图直方图箱图箱图箱图箱图散点图散点图 通过直方图直方图,能观察连续型变量的分布是否接近正态分布正态分布。对于离散型变量,则可以用频次分析。 通过箱图箱图,能观察到离群值离群值,比如识别出观测值特别高的个案。 通过散点图散点图,能了解属性之间属性之间是否有相关性相关性
7、。数据清理(数据预处理) “数据的重要程度大过算法本身!” 无论专家多有经验,无论算法再完美,也不可能从一堆垃圾垃圾中发现宝石。 人们往往没有那么好的运气,有现成的质量好的数据可以直接用。现实世界的数据是“杂乱杂乱的”,其中总是有这样或那样的问题。 “经常保持对客户数据的怀疑之心!”“所有的数据都是脏的数据都是脏的” 例如,有些数据是缺失的(属性的值是空值),有些是含噪声的(属性的值是错误的,或有孤立点数据),有时同样的信息采用了多种不同的表示方式(在编码或命名上存在不一致)。数据清理 对于在商业中比较重要的字段,系统开发者和系统使用者会尽量确保其正确性。然而,对于在商业中不太重要的字段,人们
8、往往不太重视确保其质量。 通过数据清理,可以确保存入数据仓库中的信息是完整、正确和格式一致的。 如果数据有误,那么所得到的结果很可能有误导性。 但是,数据挖掘者不应该太挑剔,因为我们往往只能得到质量不好的数据。数据清理 如果你的企业中有数据仓库,应弄清楚这应弄清楚这些数据是怎样收集的些数据是怎样收集的,这对理解数据质量很重要。至少应该知道每个字段取值来自哪里、合理的取值的范围、为什么会有缺失值等。这对数据清理很有帮助。数据清理 数据清理也叫数据清洗。 这一步主要针对缺失值、数据噪声、离群值。缺失值 缺失值很常见。例如,在销售表中的顾客信息当中,也许除了名字外,其他各个属性都有缺失值。 我们尤其
9、不希望重要属性存在缺失值。缺失值的成因 分析师首先应该了解数据缺失的原因。只有知道具体缺失原因后,才能有的放矢。 产生缺失值的原因很多,可能是: 这些数据并没被记录下来; 测量设备出现故障; 对数据错误地更新导致某些字段信息丢失; 被测量的对象(头盖骨或植物)损坏或死亡了。 有时,还没来得及提供属性值。缺失值的成因 有时,当你从外部数据源中追加人口统计信息到客户信息中时,你没能找到一部分客户的此类信息。 很多时候,最初收集数据时,有些变量被认为不太重要,因此留下空白。例如,银行并不特别需要知道客户的年龄,所以年龄变量会存在许多缺失值。 “被掩盖的缺失值”:有时,用户不希望提交个人信息,就会故意
10、向字段输入不正确的值(例如把生日设置为1月1日)。一个类似的例子是,数据中很多客户在1911年出生。为什么呢?其实因为数据输入界面坚持要出生日期。因此客服人员在不知道这个日期时,就会键入6个“1”,从而输入1911年11月11日。缺失值的处理方法 处理方式有多种: 有些有缺失值的变量实际上并不需要处理,因为你其实知道缺失值的实际值是什么。 删除删除缺失值较多缺失值较多(例如20%以上的属性都存在缺失值)的个案的个案(即记录、行、实例、元组) ,尤其是关键的属性值缺失的个案。 剔除所有含有缺失值的剔除所有含有缺失值的个案。此法适于个案。此法适于有缺失值的个案的数量占比很小的情况下。此法操作简单方
11、便,而且留下来的数据全是有完整记录的,数据很干净。但是,丢弃所有包含缺失值的个案可能会引入偏差,因为这些个案不一定是随机分布的。 删除有大量缺失值的变量。此法适于那些缺失值占比(例如超过20%)较大的变量。对于缺失值占比超过50%的变量,则一般建议删除。缺失值的处理方法 人工填写缺失值人工填写缺失值。此法工作量大,对于海量数据可行性极低。 使用属性的中心度量来使用属性的中心度量来填充填充。此类指标有平均值、中位数、众数等。对于接近正态分布的变量来说,平平均值均值是最佳选择;然而,对于偏态分布的变量来说,中位数中位数是更好的指标。此种方法偏差大,因为这种替换毕竟是人为的替换,属于“不得已而为之”
12、的策略。但其简单、速度快,适用于大数据集。 使用与给定个案同类的样本的属性的中心度量来填使用与给定个案同类的样本的属性的中心度量来填充。充。此法与上一种方法类似。例:把顾客按信用风险程度分类,则用具有相同信用风险的顾客的平均收入或收入中位数来替换收入中的缺失值。缺失值的处理方法 通过两个变量之间的相关关系来填充通过两个变量之间的相关关系来填充。如果两个变量之间的相关系数足够高(例如大于0.9),我们可以找到两者之间的线性相关关系模型(一个公式)。我们可以通过这个公式来计算出一个值,用于填充缺失值。 通过个案之间的相似性来填充通过个案之间的相似性来填充。此法假定如果两个个案是相似的,那么其中一个
13、个案在某变量上的缺失值很可能与另一个个案在这个变量上的值是相似的。最常用的相似性度量指标是欧式距离。我们可以用欧式距离来找到与含缺失值的个案最相似的10个个案,用它们的中位数或均值来填充缺失值。缺失值的处理方法 对缺失值进行赋值(Imputation)。此法通过回归模型、决策树、贝叶斯定理等去预测缺失值去预测缺失值的最近似的替代值。也就是把缺失数据所对应的变量当做目标变量,把其他的输入变量作为自变量,为每个有缺失值的字段分别建立预测建立预测模型模型。这种方法最严谨,但是成本较高。 还有一种办法,是在不同的数据上建立多个模型。例如,对某几个变量没缺失值的客户建立没缺失值的客户建立一个模型一个模型
14、,而对这几个变量有缺失值的客户建有缺失值的客户建立另一个模型立另一个模型。数据噪声 噪声数据,即数据值错误,不能反映真实的值。 数据噪声太多,会导致数据价值大大降低。 产生原因可能是: 人们在输入个人数据时常常会故意制造一些故意制造一些错误错误; 人们在输入资料时操作失误失误; 在互联网营销中,存在大量虚假的应用下载和使用,以及虚假的好评差评; 数据收集的设备设备不稳定不稳定; 数据转化时存在逻辑错误; 有时,数据过时了(例如地址过时)。识别数据噪声 还好,噪声数据都是少数! 通过数据探索,能很容易发现噪声数据。比如,在直方图直方图中,某些值出现的频率非常少,我们就要怀疑这样的数据是否合理。处
15、理数据噪声 对噪声数据,我们的处理办法有:最广泛应用的处理方式是数据平滑平滑(Smoothing)。最常用的数据平滑方法是分箱分箱技术,此法稍后在数据转换中会介绍。其他平滑方法还有:基于时间序列分析,根据前一段历史趋势数据对当前数据进行修正。删除带有错误的个案。识别异常个案 对于多维数据,异常个案的识别可以通过聚类聚类技术。 异常个案(孤立点、离群点、outlier)跟噪声数据不完全是一回事。离群点能从表象上判别出来,离群点能从表象上判别出来,而噪声则是随机的、取值是没有规律的。而噪声则是随机的、取值是没有规律的。 噪声的取值不一定看起来异常;而离噪声的取值不一定看起来异常;而离群点虽然取值异
16、常,但不一定都是噪群点虽然取值异常,但不一定都是噪声。声。对于取值正常的噪声点,我们还没办法检对于取值正常的噪声点,我们还没办法检测。测。 可以选取一些字段来对个案进行聚类聚类。从而识别出异常程度较高的个案,即落在簇集合之外的个案。处理异常个案 特别要注意的是,这些数据点不一定是噪声不一定是噪声。我们要从中剔除真正不正常的数据,而保留看起来不正常,但实际上真实的数据。有时,这些并非噪声的异常点包含着重要的信息,例如信用卡用户恶意欺诈检测就需要保留异常点。 处理离群点的另一种办法是对变量进行标准化,从而缩小值域。 对于时间序列数据和空间数据,则采用其他方法进行异常点的检测。识别异常值 除了上述办
17、法,还可以仅凭单个变量单个变量所提供的信息来识别异常值。 对于异常值,处理办法是: 一般建议剔除剔除。 此外,在聚类分析中,可以采用随机抽样。这样,作为稀有事件的数据噪声和异常值能被抽进样本的概率会很小,这样样本就比较干净。 判断方法如下: 对于类别型变量,是否某个类别出现的次数太少、太稀有?比如其占比不到1%。 对于数值型变量,是否某些取值太大?比如,一般的客户平均每天买2次,而某几个客户每天买100次。又如,年龄为140岁无疑是个异常值。重复数据 重复数据主要有两种: 个案可能会重复个案可能会重复。比如,输入数据时,意外地多次输入了同一个个案。 属性也可能会冗余。在集成多个数据库时,同一个
18、属性在不同的数据库中会有不同的字段名(例如birthday和生日),这时我们只要保留其中一个字段就可以。这种冗余通常在数据集成的步骤中就解决了。数据转换 数据转换(即数据变换、Data transformation) 主要是利用现有的字段进行运算来得到新的字段。通常说到数据变换,包括四种: 数据离散化(采用分箱等方式)、 产生衍生变量、 使变量分布更接近正态分布、 数据标准化。数据转换离散化 如果对连续变量进行离散化,可以避免引入任何分布假设。这样就不需要符合正态分布了。数据转换离散化 数据分箱(Binning)是对连续数据进行离散化离散化、增加粒度的主要办法,这是一种很典型的数据变换。它把一
19、个连续性的数值字段根据其值分组,转换成一个拥有几个不同类别的字段。分箱的主要目的是去除噪声噪声。 具体取值方式有:按箱平均值平均值平滑、按箱中值平滑以及按箱边界值平滑。 举例: 假设有8、24、15、41、7、10、18、67、25等9个数,分为3箱。 箱1: 8、24、15 箱2: 41、7、10 箱3: 18、67、25 按箱平均值平均值求得平滑数据值:箱1: 16、16、16,平均值是16,这样该箱中的每一个值被替换为16。其他两个箱与此类似。数据转换离散化 对于决策树算法,往往需要对连续变量进行离散化,从而使输出的决策树通俗易懂。 具体办法可以是:把各属性所在区间平均分成8份,每一份对
20、应1个离散值。数据转换产生衍生变量 具体有两种:1. 把非数值型数据转换成数值转换成数值型型。例如:把“男”转换成1,“女”转换成0;根据用户出生年月日得到其当前的年龄。2. 采用简单的数学公式,产生更加有商业意义有商业意义的衍生变量的衍生变量。主要有均值、占比、比率等种类。例如家庭人均年收入、用户年均消费金额。 分析人员常常容易从现有的数据库中直接提取现成的字段,而经常忘记一些衍生的新字段,这需要有业务知识来支持。数据转换使变量分布更接近正态分布 最常见的改善变量分布的转换方法是对变量取取对数对数(take log)。 在实践中,很多数值型变量的分布都偏斜、不对称,这会干扰模型的拟合,影响变
21、量的预测性能。 此种转换和分箱有异曲同工之处,都具有提高变量的预测能力,强化自变量与因变量的关系,从而提高预测模型的拟合效果。因此,在实践中,经常对这两种方式分别进行尝试,采用其中的一种。 不过,这种非线性转换的含义缺少清晰的商业逻辑,商业应用者可能不太能理解。数据标准化 数据标准化(Data rescale、规范化):是把区间较大的数据按比例缩放,使之落入一个比较小的区间中,比如01或-11。 标准化可以提高涉及距离度量的算法的准确率和效率。比如,当创建一个聚类模型时,我们需要确保所有字段都有近似的标度。标准化能够避免出现聚类结果完全由某个具有很大变化范围的属性主导的情况。数据标准化 最常用
22、的数据标准化方法有两种: 标准差标准化(Z-score transformation、零均值法、Zero-mean normalization)。经过这种方法处理后的变量符合标准正态分布,均值为0,标准差为1。 最小最大值法(Min/Max transformation、Min-Max标准化)能把各变量的值归一化到0,1范围之内。数据归约 数据归约属于数据预处理,但不属于数据清理。这一步也叫数据简化。 数据归约(data reduction):在保持数据的完整性的前提下,把需要分析的数据量大幅减小,从而加快算法运行速度速度,但能够产生几乎同样质量的分析结果。 包括两类:属性筛选和数据归约属性筛
23、选和数据归约。数据归约抽样 抽样可看作数据归约(numerosity reduction)的一种。 抽样的主要原因是如果数据全集的规模太大,运算资源的消耗会很大,而且运算时间运算时间很长。 另一个常见原因是:在很多小概率、稀有事件(例如信用卡欺诈)的预测建模中,如果按原始数据来分析,是很难得到有意义的预测的。因此,需要人为增加样本中稀有事件的浓度和在样本中的占比。 抽样需要注意尽量保持样本和总体的一致性样本和总体的一致性。例如样本中变量的值域和分布、缺失值的分布都应该与总体尽量高度相似。 尽量采用简单随机抽样或分层随机抽样。否则可能会有样本偏差(sample bias)。数据归约不平衡数据的抽
24、样 在不平衡数据中,两组群体的成员数量相差甚远,例如对直邮促销做出响应者比无响应者少很多、信用卡欺诈者比正常的信用卡持有者少很多、流失可衡山的数量往往只有非流失客户数量的百分之几甚至千分之几。 如果两组群体的成员数量大致相当,分类算法的性能最好。 对于偏斜数据,在抽样方面,通常可以采取几种办法使得两组群体占比更为平衡:最常用的一种是对占比较少的实例进行过抽样(oversampling)。其他方法有:对占比较多的实例进行欠抽样,从而得到一个虽然较小、但是更平衡的样本;添加一个加权因子,让常见组的成员的权重小于罕见组的成员的权重。 这样抽样之后,预测模型的效果往往更好。数据归约属性筛选 在互联网行
25、业,数据归约主要是维度归约(dimensionality reduction),即特征归约、变量筛选。也就是把多维数据压缩成较少维度压缩成较少维度的数据。这就需要进行特征选择(feature selection),即属性筛选。 按说信息比较多应该是好事才对,所以我们尽量不使用特征归约,因为这对于原始数据通常都是有损的。但是: 过多的特征会使得机器学习的训练变慢。有些数据挖掘算法比较复杂,在高维度情况下运行的时间运行的时间是天文数字,不可能实现; 过多的输入变量容易带来过度拟合过度拟合和共线性的风险,这会降低分类模型的预测能力。属性筛选的方法 首先,可以删除明显无价值的变量,例如缺失值比例很高缺
26、失值比例很高的变量,以及常数常数变量,还有取值太泛的类别型变量(例如邮政编码)。 然后,可以结合业务经验业务经验进行筛选。这是最关键、最重要的筛选自变量的方法。很多时候,业务专家一针见血的商业敏感性可以有效缩小自变量的考察范围。属性筛选的方法线性相关性 最简单、最常用的方法就是通过自变量之间的线性相关性相关性指标进行初步筛选。其中,以Pearson相关系数最为常用。 如果多个自变量之间线性相关性很强,只需要保留一个就可以了。属性筛选的方法互信息 线性相关系数线性相关系数可以检测出特征之间是否有线性相关关系。但是,它不适于检测非线性关系。 互信息互信息则适合检测非线性关系。它基于信息熵的概念,计
27、算出两个特征所共有的信息量,即一个特征使另一个特征的不确定性减少的程度。属性筛选的方法R平方 在上述步骤结束之后, 仍然可能有些特征,它们虽然彼此之间独立,并且和目标变量有一定的依赖关系,但是把它们放在一起来看,跟目标变量就没有依赖关系; 而另一些特征,则虽然单独看起来跟目标变量没有依赖关系,但把它们放在一起就能看出与目标变量有依赖关系。 R平方平方(R-Square)借鉴多元线性回归的算法来判断对目标变量有重要预测意义对目标变量有重要预测意义的自变量,也就是找出哪些自变量能显著地解释目标变量的变异性。属性筛选的方法特征抽取法 这类方法不是要删减特征,而是把原有的特征组合成少量特征。 可以分为
28、线性的和非线性的。线性的:主成分分析主成分分析。非线性的:多维标度法。 以上两种方法是典型代表。但还有其他方法。属性筛选的方法主成分分析 主成分分析是最常用最常用的特征抽取方法。 主成分分析(PCA)是用少量指标(即主成分)来表示原先较多的指标。这少量指标尽可能多地反映原来较多指标的有用信息(所保留下的方差尽量多),且相互之间又是无关的。每个主成分都是由多个原始变量线性组合原始变量线性组合而成的。这种分析在基本未损失数据集的信息的情况下降低了数据集的维数。 PCA适于处理稀疏数据。 PCA的不足是会造成结论的可解释性上相对于原始变量而言更复杂。属性筛选的方法 还有其他一些属性筛选方法,此处不详
29、细讲,例如:聚类线性判别式分析(LDA)多维标度法(MDS)卡方检验。小波变换。适用于多维数据。其典型应用是图像压缩。后续步骤数据挖掘 这是最核心的一步。 根据数据仓库中的数据,用合适的数据挖掘算法进行分析,得出有用的信息。评估 在这一步,我们验证数据挖掘结果的正确性。 其中,模型算法质量的评价是很重要的一部分。对分类模型和聚类模型的评价方法是不同的。 分类模型很重视采用一些指标来进行模型评价和选择。 对分类模型,通常采用的指标有: ROC曲线、Lift曲线。其本质都是与预测的准确性有关的。分类算法评估的主要宗旨 主要宗旨就是: 减少误判(假阳性)和漏判(假阴性)。 在疾病预测、欺诈识别等领域
30、,漏判带来的危害远大于误判。当然,误判会带来干预成本的提高,比如会增加就诊成本。分类算法评估一个比喻 怀孕检测: 假阴性:怀孕了但没检测出来。分类算法评估混淆矩阵 混淆矩阵(Confusion matrix) 例如,TP表示实际是正例预测也为正例的实例个数。其他以此类推。分类算法评估混淆矩阵 可见,预测正确的实例数量远远多于预测错误的实例数量。分类算法评估 ROC曲线 FP:假阳性,即实际是负例却预测成正例的个数 TP:真阳性,即实际是正例且预测成正例的个数 横轴是假阳性率(假正率),即FPR(False Positive Rate)或1-Specificity(即1-真负率),即实际为负例预
31、测为正例的概率,即: FP/(FP+TN),即实际为负例预测为正例的个数除以实际为负例的个数。 纵轴是真阳性率(真正率),即TPR(True Positive Rate)或Sensitivity,即实际为正例预测也是正例的概率,即: TP/(TP+FN),即实际为正例预测也为正例的个数除以实际为正例的个数。分类算法评估 ROC曲线 我们希望分类器的TPR尽量高,FPR尽量小。 即,用尽量低的假阳即,用尽量低的假阳性率为代价来换取尽性率为代价来换取尽量高的真阳性率。量高的真阳性率。 所以,我们希望ROC曲线离纵轴近。分类算法评估 ROC曲线 曲线下方的面积(也叫AUC)越大越好。一般超过0.7就
32、说明分类器有一定效果。 我们经常用AUC来比较各种分类器的效果。 优先采用AUC面积比较大的模型。分类算法评估Lift曲线 Lift曲线显示了采用模型后与没采用模型相比的改进。 含义是:分类器获得的正类数量和不使用分类器随机获取正类数量的比例。后者是指不使用模型时,正例在样本中的占比,也叫random rate。 换言之,lift值是指,如果使用分类器分类,会使得正类产生的比例增加多少。 例如,与直接随机抽取一些用户发放促销邮件相比,采用分类器会给公司带来多少响应客户。 Lift值在实践中可能是用得最多的。它直观易懂。 它的重要的好处是直接显示对应于不同的促销目标群体规模的模型效果,便于挑选适
33、当的目标群体规模。分类算法评估Lift曲线横轴是样本大小在所有潜在用户中的占比;纵轴是所得到的回应数量。对角线表示的是不同大小的随机样本的结果。我们用的不是随机样本,而是通过数据挖掘模型选择出来的那些最可能做出回应的客户的样本。我们希望得到的曲线在对角线上方,而且越靠近左上角越好,也就是用很少的样本就能得到很多回应。从图中可见,绿色线条代表的那个模型的表现比较好。分类算法评估成本收益分析 我们可以假定通过邮件推荐新产品时,发邮件的费用是0.5元,而一旦用户相应则会得到10元的收益。那么,发送多少封邮件比较合适呢? 如果给全部用户都发送,会赔钱。 我们可以设置费用和收益的参数。分类算法评估其他
34、其他有代表性的模型评估的方法还有10折交叉验证折交叉验证: 3折交叉验证(cross-validation):在交叉验证中,先要确定一个固定的折数(number of folds),比如3折。那么数据将被大致均分成3部分,每部分轮流用于测试而其余部分则用于训练。重复此过程3次,从而每个实例恰好有一次是用于测试的。 10折交叉验证折交叉验证:它是衡量将某学习方法应用在某数据集上的误差率的标准方法。数据被分成10部分。每部分依次用于测试,而其余部分用于训练。测试集用来计算误差率。之后,把10个误差率估计值平均,从而得到一个最终的误差估计值。分类算法评估的目的 我们可以对不同的分类算法,设置不同的参
35、数,进行反复比较,根据在多个效果指标(比如Lift)上是否有稳定稳定的好的表现,选择一个选择一个最终落地应用的模型。 注意,我们不只是关注模型的准确度和效果,还要关注模型的表现是否稳定稳定,因此,我们需要抽取不同的时间段的数据,进行比较,看模型是否稳定。知识表示 知识表示:将数据挖掘所得到的知识知识信息用可视化或知识表达或知识表达呈现给用户。 这些知识可能是:哪些客户可能会流失、哪些客户可能会响应促销短信等。也可能是哪些属性比较重要、有哪些规则。数据挖掘结果的应用和效果评估 比如,我们通过数据挖掘识别出一些潜在顾客,然后我们对这些顾客进行促销。在促销两周后,我们发现成交顾客数量显著提升。 在互
36、联网行业的运营效果评估中,常用的方法是AB Test,即对相似群体(可以分为运营组和对照组)在不同运营方案实施后的实际效果进行对比。数据挖掘是一个反复循环的过程 数据挖掘是一个反复循环的过程。经常会回到前面的步骤。分类的一个常见问题过度拟合 对于有监督学习的算法,要非常重视过度拟合(overfitting、过拟合)的风险。含义是:模型对训练集拟合得很好,但对新的数据拟合得并不好。对训练集数据学习太过亦步亦趋,造成不能反映真实的输入和输出之间的关系,不利于预测未来数据。如何避免过度拟合? 交叉验证交叉验证可能是业界防止过拟合的最常用手段。它可看作一种变通的方法,它不使用全部的历史数据,而是把过去
37、的数据分成两份,其中一份当做训练集,另一份当做测试集(用来模拟“未来的”数据)。通常,我们会将大多数数据作为训练集(比如80%),而少数数据作为测试集。 在交叉验证时,我们可以准备几个不同时间窗口、不同范围的测试集和验证集,在不同的数据集里面对模型进行交叉检验。 要注意建模所用的历史数据和未来数据是否存在明显差异。例如,业务是否发生了显著变化。如何避免过度拟合? 样本要足够大。特别是神经网络,如果数据少就不宜使用。 注意选择合适的抽样方法。 减少样本中的噪声数据。模型过分记住了噪声的特征,以至于忽略了真实的输入输出间的关系。 输入变量不要太多。新手往往不筛选输入变量,而是一股脑把所有变量交给软件去撞大运。