研究中心

流程和质量数据挖掘中必须注意的几个重要问题(关于机器学习和模型选择)

在应用大数据技术挖掘流程和质量数据中的重要信息和价值之前,有很多重要的内容是我们需要了解的,这可以帮助我们在相关实践的过程中避免很多错误,其中的一部分如下:

有监督的学习和无监督的学习

有监督的学习(Supervised learning)是指在数据中有输入变量和输出变量,我们可以建立从输入变量映射到输出变量的模型,并对模型进行优化,然后通过这个优化的模型对输出变量的未知情况进行预测。比如在统计过程控制SPC中,根据历史数据(在过去,质量专家已经做了大量的研究),人们得到了多条SPC判异准则(可以认为每条判异准则这是一个模型),比如有一点超过控制线即判断为异常。当新的生产数据出现后,我们就可以通过这条准则去判断新数据是否为异常了。再比如,人的身高和体重之间通常存在着一定的关系,于是,我们就可以通过对一部分人身高和体重数据的研究得到一个模型,此后,当我们知道一个人的身高时,就能大致知道其体重是多少了。

无监督学习(Unsupervised learning)是指数据集中没有区分输入变量或者输出变量,需要直接对数据进行建模。比如在质量检验中,我们将外观不良的产品放在一起,而将加工精度不够的放在另一边,将发生了扭曲的产品放在第三个位置等。

常见的有监督学习的情形有哪些

根据输出变量的类型不同,有监督的学习主要有两种情形:

  • 回归(Regression):针对输出变量为连续变两个的情形。常用方法包括线性建模和非线性建模,其中线性建模方法有一元/多元线性回归、逐步回归、岭回归、套索(Lasso)、主成分回归、偏最小二乘法,Sure independent screen (当样本数据量n比输入变量的维数P小得多时,可以使用这一方法选择n/logn个最相关的变量,该方法对下面要讲的分类问题同样适用)等
  • 分类(Classification)两种:针对输出变量为离散(分类)变量的情形。常用方法把包括回归方法(通常更适用于Y的水平数为2个的情况)、Logit模型(Logistic Regression)、线性判别分析(LDA: Linear Discriminant Analysis)、二次判别分析、分离超平面方法、 Fisher分类(其指导思想是不同类别之间的距离更远,而相同类别离中心尽量近)等。顺便说一句,就LDA和Logistic Regression而言,通常认为Logistic Regression比LDA更安全、更健壮、它依赖于较少的假设。另外,一般而言,我们倾向于使用线性分类方法而不是非线性的,因为非线性方法的模型通常过于复杂,而且即使训练误差很小,检验误差也会很大

常见的无监督学习的情形有哪些?

常见的无监督学习的方法和应用场景包括:

  • 关联规则,通常用于购物篮分析,如消费者在购买A商品的时候,倾向于同时购买B商品;类似于在质量管理领域,一款产品在发生A类不良的时候,也同时倾向于发生B种不良
  • 聚类分析:通过描述对象的几个维护的数据,分析对象之间的相似度(或相异度),将它们分为几类
  • 自组织映射:可用于文档的组织和检索

目前,更多无监督学习方法在快速发展和更新中。

常用的两种预测方法(原理)

常用的预测方法有两种:基于最小二乘法的线性模型和K-最近邻法。前者通常更稳定,方差较小,但偏倚较大;而后者通常方差较大,但偏倚较小。

K-最近邻法的特点:当K减小,训练集数据量很大时,预测误差损失会迅速减小,当K=0时,误差会减小到0; 然而,当输入变量维数较多(5及以上)时,其会遭遇维灾难(Curse of dimensionality),方差会大到不可接受;但即使在低维空间,当存在结构化的方法可以使数据的使用更有效时,K-最近邻法可能也不是最好的选择。

对K-最近邻法而言,我们不能用“误差的平方和最小”为标准来选择K,因为误差及误差的平方和都是K的增函数,因此这样我们总是倾向于选择K=1;其有效参数的个数通常是N/K,一般应远大于p(X的维数)。

最小二乘法的不足和处理

我们通常使用最小二乘法来估计模型参数,但其不足之处有二:第一,预测精度有限,最小二乘估计通常具有低偏倚和高方差;第二,有时候模型过于复杂:当模型中存在较多的输入变量时,我们通常希望确定出有较强影响的少数输入变量,这样模型的复杂度和可解释性就能得到提高。

为什么一般情况下我们都推荐使用线性回归模型而不是非线性回归模型?

第一,线性模型相对简单,可解释性更强,其常常能对输入如何影响输出提供充分和可解释的描述;第二,对于预测,它们通常远胜于非线性模型,特别是在训练数据量较少,信噪比较低或者数据稀疏的情况下更是如此。

线性回归模型的X变量可以是定量输入、定量输入的变换(如对数、平方等)、基展开(如X2,X3等)、定性输入的值或哑变量等; 一般而言,如果一个定性变量有K个水平,我们通常可以用K-1个值来对它们进行编码,以回避多重共线性(多重共线性通常需要回避,但也不绝对是这样); 线性回归模型通常都需要考虑截距,不考虑截距的情况非常少,除非X和Y的样本均值恰好为零; 4. 线性回归模型的Y变量可以是定量变量,也可以是定性变量(通常需要编码) 。

如何评估模型的好坏并加以选择?

当数据量足够时,最好的方法随机地将数据集分成三个部分:训练集(Train set)、验证集(Validation set)和检验集(Test set)。训练集用于拟合模型,验证集用于评估模型的预测误差以选择预测误差最小的模型,检验集用于估计最终选定的模型用于预测时的泛化误差(Generalization error)。其中,“检验集”应该直到数据分析结束时才能使用,否则就需要假定我们重复地使用检验集,在模型选择时考虑选取具有最小检验集误差的模型。上述三个部分各占多少比例并没有严格的标准,其比例取决于数据的信噪比和样本容量,需要根据实际情况进行判断。典型的情况可能是训练集占50%,验证集和检验集各占25%。

多少数据才算“数据量足够”呢,对于这点并没有严格的规则,其依赖于潜在模型的信噪比和复杂性,需要根据实际情况进行判断。

当数据量不足时,我们通常使用一些分析指标(如AIC、BIC、MDL、SRM等)进行模型选择,或者通过有效样本复用(如交叉验证或自助法(Bootstrap))近似地实现验证(对于交叉验证,一般情况下,5折或10折已被推荐为较好的折中方案)。在高斯模型下BIC与AIC(Cp)成比例。假设N>e2=7.4,BIC倾向于更多地惩罚复杂模型,在选择中偏爱简单的模型。

当数据量(N)不太多的时候,AIC在实践中更容易选到合适的模型;而当数据量足够多的时候,BIC更容易选到正确的模型。实际中应根据情况选择使用AIC还是BIC,不过实际情况是,AIC应用更多些。

模型误差的分解

一般而言,我们可以用平方误差损失来衡量线性回归模型“Y=f(x)+Ƹ”的预测误差,其预测误差可以分解为三个部分:ERR=预测方差+预测偏倚2+ Ƹ的方差。其中Ƹ服从正态分布,其方差是无法避免的。对于K-最近邻法也有类似的等式。通常,偏倚会随模型复杂性的增加而减小,而方差的变化在训练集上的表现与在验证集和检验集上的表现不同。

误差与模型复杂度的关系

线性回归模型的重要变量选择

通常,我们可以用一些方法来减少线性回归模型中输入变量的个数,这样做可以在牺牲一部分偏倚的同时降低预测方差,同时能够降低模型的复杂度。常用的方法有:最佳子集选择(可以用逐步回归法实现)、岭回归、套索(Lasso)、主成分回归和偏最小二乘法等。当线性模型中存在多个相关变量时,这些变量的系数确定性会变差,表现为其系数的方差较大,这时可借助岭回归或套锁方法对其系数进行惩罚。

  • 最佳子集回归(Best Subset Regression)使用跳跃和约束算法,在输入变量维数在30或40以内是可行的
  • 逐步回归分为向前选择、向后选择和混合选择,其中向前选择的一个典型策略是顺序低添加产生最大F值得X因子,当没有一个预测产生的F-比率大于F1,N-k-2分布的第90或第95个百分位数时停止。向后选择只有当N>p(数据量>维数)时才能使用,而向前法则总是可以使用,而且计算量更小,方差通常也更小(虽然偏倚可能稍大些)
  • .若X变量之间存在多重共线性,或者有多个有相关关系的X时,则应使用岭回归或套索(Lasso)等收缩方法
  • 当样本量N小而X的维数p大时,可以使用确定性独立筛选(Sure Independent Screening)方法:先计算每个变量X与Y的边际相关系数(marginal correlation coefficient),然后将这些边际相关系数的平方从大到小排列,最后选择这些“平方”排在最前面的N/(LogN)个变量进行建模