把机器学习算法应用到实际问题中,需要遵守一定的流程以理解业务目的,了解数据的质量,合理地设计数据处理过程,并妥善安排模型的训练和生产端的部署等问题。按照通常的机器学习应用顺序,机器学习建模流程涉及几个重要的步骤,如图1所示。接下来将对每一个步骤展开讨论。
数据收集
获得有效的数据是运用机器学习建模的第一个步骤,也是非常重要的步骤。这个步骤可能是一次性的,也可能是长期持续的,需要仔细地计划和执行。在数据收集过程中,建模人员应该从以下几个方面来考虑数据的获取问题。
从数据源方面考虑
(1)业务类型决定了数据的来源,信用货款和电子商务反欺诈业务涉及的数据可能大不相同。
(2)考虑数据涉及的业务是公司成熟的业务,还是新的业务。成熟的业务意味着,数据的归集已经长期化和规范化,而新业务意味着数据字段的存储可能都要重新设计。因此,不同业务项目启动的风险和复杂度是不一样的。
(3)了解要具体解决的问题,如果需求是反欺诈,那么数据源中可能包含了用户在 App上的点击行为;如果需求是信用预测,那么就需要对接大量第三方外部数据。
从数据格式方面考虑
(1)数据涉及的字段类型可能多种多样,如数值、文本、图像、音频和视频等,对不同类型的数据需要采用不同的处理手段。
(2)数据的获取是通过批量的方式还是流式处理方式。批量获取可能会导致数据量特别大,需要用到大数据处理工具;而流式处理通常有成熟的流式计算方式。
(3)数据文件的类型多种多样,如csv格式文件、parquet格式文件、Excel文件和 database 表格等。
从数据存储方面考虑
(1)如果数据存储在传统的关系型数据库,就需要通过SQL查询的方式获取数据。
(2)考虑使用非关系型数据库,如 HBase、Elastics Search 等也是存储数据的有效方式,为获取数据提供了新的途径。
数据清洗转换和预处理
数据清洗和转换的主要目的是检测数据的质量,做出合理的改进,从而避免在模型实施阶段产生不必要的误差,并进一步提高数据质量。
查看和认识待建模的业务数据可以通过统计分析和探索性数据分析(Exploratory Data Analysis, EDA)等不同的方法。统计分析主要是通过统计的手段,得到数据不同维度的主要统计特征,如数据数量、特征均值、特征方差、特征缺失值数量、特征最小值和特征最大值等。通过统计分析,可以对数据有一个最基本的了解。
EDA 方法还可以通过可视化技术,更加直观地查看数据的分布等特性。基本的数据可视化方式包括折线图、直方图、散点图和箱线图等。如果数据量太大,可以通过随机抽样的方式,挑选部分数据进行可视化分析。下面的例子展示的就是著名的鸢尾花(iris flower)数据集中的4个特征的可视化。
鸢尾花数据集中,涉及3种不同的鸢尾花类型(selosa、versicolor 和 virginica),数据中每个数据点提供了4个主要特征,分别为 sepal length(萼片长度)、sepal width(萼片宽度)、petal lengtb(花瓣长度)及 petal width(花瓣宽度)。利用这4个特征,可以有效区分3种不同的鸢尾花类型。图2为不同类型的鸢尾花每个特征的分布对比情况。从这些概率密度分布图中可以清楚地看到,花瓣长度和花瓣宽度对鸢尾花类型有比较高的区分度,萼片长度的区分度次之,萼片宽度的区分度最低。
图3 为鸢尾花4个特征的散点因,并在二维平面进一步展示了将特征两两组合对种类的区分度。
图4 为鸢尾花4个特征的箱线图。箱线图是直观查看特征分布是否为正态分布 (Normal Distribution)的有效方式。
数据偏度和峰度
偏度(skewness)是统计学中用来统计数据分布非对称程度的指标。图5 中分别展示了正偏态正态和负偏态3种分布情况。正偏态(右偏态)指的是数据分布中右侧尾部更长,分布的主体集中在左侧。负偏态(左偏态)指的是数据分布中左侧的尾部更长,分布的主体集中在右侧。如果分布对称数据的平均值会等于中位数,偏度为0。
峰度(kurtosis)反映数据分布和正态分布相比,其概率密度分布曲线在平均值处峰值的高低。如果数据峰度值显著偏离0,则表明数据不符合正态分布。图6 中分别展示了正峰度和负峰度两种情况。
在数据清洗过程中,之所以查看数据的偏度和峰度,是因为这些指标是衡量数据是否符合正态分布的标准。而数据符合正态分布特性,一方面是某些算法的基本假设,运用相应算法时有必要提前检查假设是否成立;另一方面,数据分布符合正态分布是一个优良特性,对于算法的收敛性和结果可解释性都有很大裨益。
在实际建模过程中,如果某些数据维度的分布显著偏离正态,可以通过数据转化的手段使之尽量向正态分布靠近。以正偏态情况为例,一般来说,如果偏度为低中程度,如偏度为标准误差的2~3倍,可以通过取平方根来转换;如果偏度程度较高,可以进行自然对数或以10为基数的对数转换,或者采用取倒数的方式来转换。以工资收入这个典型的长尾数据维度为例,图7 展示了取平方根正态转换前后的对比情况。
对于数据呈负偏态的情况,可以首先把数据反转为正偏态,再用处理正偏态情况的方式进行转换。反转数据的方法是,找到数据中的最大值,再用最大值加1后减去原始数据。
数据归一化
数据归一化的背景是建模时涉及的数据维度或特征有很多,但是这些特征通常在不同的尺度上。例如,收入的范围在一千到几万之间,但是年龄的范围则为0-100。把数据归一化,就是把所有的特征转换到相同的尺度范围内。数据归一化的极大好处是能够让许多机器学习算法优化速度更快,如涉及梯度下降的算法。但也有一些算法对数据归一化并不敏感,如基于决策树的算法。因此是否进行数据归一化,取决于模型具体运用的算法和建模人员对问题的理解和评判。
常用的数据归一化方法有两种。
1 min-max 标准化
402 Payment Required
式中, 是待归一化的特征变量;是特征变量的最小值;是特征变量的最大值; 是归一化后的新特征值,范围为0-1。需要注意的是,和是在历史数据中找到的最小值和最大值。当模型被应用到业务中,对新数据进行预测时,需要考虑一些极端情况,如可能出现超过历史最小值和最大值的特殊情况,从而使归一化后的新特征值超出0~1 的范围。这就需要事先考虑这种偶然的越界会不会对模型预测产生不利的影响,如果有潜在的风险,需要进行相应的异常处理,如把超过1的数值重新设定为1。
2 Z-score 标准化
式中, 是待归一化的特征变量;是特征变量的均值;是特征变量的标准差。如果的分布接近正态分布,则归一化后的新特征变量的分布近似一个平均值为0,方差为1的标准正态分布。
数据缺失值的处理
处理实际问题时,真实的业务数据或多或少都存在缺失值,而建立的模型通常只能处理完整的数据,因此数据缺失值的处理至关重要。缺失值的处理应考虑以下几个步骤和方法。
(1)要深入理解造成数据缺失的原因,不能一味地追求补全缺失值。造成数据缺失的原因可能是业务本身,如有些字段可能存在默认空值的情况;也可能是数据前期处理过程中存在失误,一旦找到原因,缺失值就可以被填补完整。因此,只有真正了解缺失值形成的原因,才能用合理的技术手段进行正确处理,避免导致不必要的偏差。
(2)模型通常在线下使用大量训练数据,在一次性的建模过程中如果数据量大,且舍弃有缺失值的数据点不会造成任何系统偏差,可以考虑简单地去掉有缺失值的数据,从而简化缺失值处理流程。
(3)仔细查看出现缺失值的特征变量,统计缺失值比例,随着缺失值比例增大,补全缺失值的收益将会逐渐减小,甚至会造成偏差。对于缺失值比例过大的特征变量,在建模过程中应该考虑是否需要完全舍弃。
(4)对于确定需要补全缺失值的特征变量,如果变量是数值类型,可以采用平均值、中位数、众数或任何符合业务需求的特殊值来填补。如果特征变量分布接近正态,那么平均值、中位数和众数不会相差太大,但是如果分布偏离正态较多,需要注意平均值不能代表最典型的数,通常中位数或众数更有代表意义
(5)如果需要补全缺失值的特征变量类型是字符串类型 、枚举类型或分类变量,通常用该变量最常见的枚举值去代替缺失值。
在补全缺失值的处理过程中,还要注意以下重要事项。
(1)对于枚举型特征变量(也称作分类变量),需要结合实际业务,通常缺失值出现本身是非常有意义的,并不需要用其他值来代替。例如,有一个让用户填写是否有房产的特征,如果用户选择不填,那么会出现缺失值,但是这种不填写的行为本身有其意义。在这种情况下,创建一个专门表示空值的枚举值(如 NA 或missing),可以很好地规避缺失值的问题,也能更好地提高模型效果。
(2)对于数值型特征变量,除了用平均数、中位数等值来代替,还可以专门建立一个新的模型来预测。例如,把待补全缺失值的特征变量作为目标变量,其他所有特征作为自变量,建立一个新模型,用训练好的模型来自动预测缺失值。也可以考虑用相邻数据点的特征变量值来补全缺失值,当然定义相邻数据点需要先定义相似度指标。
(3)在对特征变量缺失值填补的过程中,可以同时考虑创造一个新的布尔特征变量,专门用来表示该特征的值是否经过缺失值处理。把这个新的特征变量加入模型,可以更好地反映实际情况,从而提高模型效果。
数据不平衡的处理
数据不平衡是指在分类预测问题中,数据本身的分布使得各个类别的比例相差非常大。数据不平衡的现象是比较普遍的,如反欺诈业务中,欺诈客户的比例要远远小于正常客户的比例,甚至可能低于1:1000的水平。
在数据建模时,比较理想的情况是数据的预测种类相差不大,因为平衡的数据使得算法的收敛和算法的评价都相对容易和准确。在前面的模型评价章节中介绍过,不平衡的数据种类可能使得某些评价指标具有误导性。例如,只看准确率的话,一个简单模型在不平衡的反欺诈业务中,准确率都可以达到 99.9%。
在数据清洗的过程中,可以通过以下手段来处理数据,从而使数据的种类相对平衡。需要注意的是,平衡后数据只需要在训练模型时使用。在对模型效果进行验证和评价时,使用真实比例的数据会更加贴近实际情况,从而更加真实地反映模型的预测效果和实际情况。
首先,可以对数据进行重新抽样和组合来重新平衡数据,具体方法如下。
(1)Under-sampling (欠采样):如果数据量足够大,可以对数最比较多的数据和类(大类)进行随机抽样,减少其数量,使其和数最比较少的种类(小类)数据量大概匹配。
(2)Over-sampling(过采样):如果数据量比我少,尽量不要减少总的数据量,可以对小类数据进行有放回的随机买样,从而增加小类数据量,使其和大类数据量相当。除了随机复制已有数据,也可以人工合成新数据,即原样本中不存在的数据,从而避免数据出现重复。如何合理地合成数据是另一个课题,最简单的方法就是对每一个特征分布进行拟合,从而用得到的单个特征分布随机产生新的数据的每一个特征。
还有一种方法为 SMOTE (Synthetic Minority Over-sampling Technique),该方法基于距离选择邻近的数据样本,再用邻近样本对选择样本的一个属性增加噪声,每次处理一个属性。通过这样的流程,可以构造更多的新生数据。
除了上述两种对数据进行直接处理的方法,还可以考虑以下两种方法。
(1)使用更合适的算法,不同的算法对数据不平衡的处理效果是不一样的,通常,决策树相关的算法能更好地处理不平衡数据。这是因为决策树是基于规则的,它的结构决定了它可以自动学习不同种类的特征,而不完全依赖于数据量。
(2)调整算法惩罚权重,通过改变算法中对每个类别的惩罚权重,可以对分类器的小类样本数据增加权值,降低大类样本的权值。常见的算法有 Penalized-SVM 和 Penalized-LDA。而逻辑回归和梯度增强机等算法也可以方便地调节待优化的损失函数中不同类别的权重。
特征工程
特征工程一般指的是,根据对数据来源的专业知识来构造更合适甚至更好的特征变量,从而使机器学习算法给出更好的预测效果。好的特征工程会使机器学习算法的预测能力得到大幅提高,特征工程可以说是机器学习建模过程中非常重要的一个环节。
分类变量编码技术
分类变量或枚举类型变量在建模问题中非常常见,如车辆的颜色可能有红色、白色和黑色几种。虽然有些算法,如决策树可以直接用枚举类型变量作为输入值,但是大多数算法只能处理数值类型变量。在这种情况下,必须对枚举类型变量进行合理的数值编码。
one-hot 编码(一位有效编码)是一种常用的方法,该方法把K个枚举值的变量转换为 K 或 K-1个二进制变量,并且只有一个变量位置为1,其余变量位置为0。
当枚举变量的枚率值比较少时,经过 one-hot 编码后,多出来的特征变量仍然在可以控制的范围内。但是当枚举值特别多时,如邮政编码可能有几千个到上万个枚举值,算法就要多处理上万个特行变量,虽然是不可取的。在这种情况 下,需要用其他的方法来处理枚举变量的编码,通常有以下几种方法,
(1)根据对数据的理解,考虑合并枚举值。例如,虽然每一个小分区都有一个不同的邮政编码,但是可以将小分区合并为大的行政区,如一个市或省,这样邮政编码的数量将大大减少。
(2)借助评分卡建模的经验,把枚举变量转换为 WOE 值,从而具有一定的顺序,可以被当作数值类型变量处理。
(3)把枚举变量转换为对应的目标变量(Y=0或1)的平均值,这个方法其实和 WOE变量转换思路是一致的,但是需要注意过拟合的问题。例如,车辆颜色为红色时,对应的数据数量非常少,那么把红色转换为这些少量数据Y值的平均值,就容易引起算法过拟合(可以理解为算法记住了这种特殊情况),因为算法很快就会错误地学会把红色和特定目标Y值联系起来。考虑到这样的情况,可以用以下公式来克服这个困难:
402 Payment Required
即枚举值可以转换为对应数据的平均值和所有数据平均值的加权求和。其中权重和枚举值的频率相关(n代表当前枚举值level 的数据点个数),从而使得枚举值对应的数据比较少时,接近0,其对应编码值接近所有数据的平均值。当枚举值对应数据较多时,接近1,则编码值主要由当前枚举值对应的数据点决定。
特征筛选技术
提到特征筛选,首先要理解维度灾难(Curse of Dimensionaliy)这一概念。当模型的维度提高时,模型空间的体积也会随之增大,有限的数据变得相对稀疏。在高维度空间中,所有的数据都将变得很稀疏,所有数据点在很多角度看都不相似,因此常用的数据组织策略变得非常低效。为了获得统计上有意义的结果,模型需要的数据必须随着维度的提高而呈指数级增长,才能符合模型优化的需求。
为了避免出现维度灾难,当模型潜在的输入特征变量过多时,需要去除一些不重要的特征,只保留对模型预测能力最有效的部分特征。较少的特征变量也可以提高模型训练和运算的效率和稳定性。在某些情况下,数量较少和高效的特征子集也可以帮助模型取得更加优秀的效果。通常情况下,特征越少,过拟合的可能性也越小,模型的泛化能力越高。
第一类特征筛选方法是基于统计方法的特征筛选,常用的技术手段如下。
(1)去除方差较小的特征:方差较小,则这个特征对应的数据分布变化范围较小。极端情况下,如果果特征对应的向量为常数,则方差为0。在特征量大的情况下,首先去除方差接近0的特征是一个简单快捷的方法。当然,比较不同的特征方差之前,最好把特征归一化,才能更加公正地比较。
(2)观察相关系数(如皮尔森系数Pearson'’ s Correlation):皮尔森系数用于量化两个连续变量的线性相关程度。因此,可以计算每个特征和目标变量的相关程度,从而只保留和目标变量相关程度高的特征。如果考虑数据不是线性关系,还可以利用Spearman’s 系数,该系数考虑数据之间的相对排序相关性。
(3)向前选择法(Forward Selection)和向后选择法 (Backward Elimination)。向前选择法是一种迭代方法,首先选取一个算法,通常是回归算法,测试每一个特征,选取效果最好的特征作为初始模型;然后,从余下的特征中,每次尝试添加一个特征进入模型,最后选取效果最好的特征进入第二次迭代模型,以此类推,直到模型的效果不能再提升或达到预先规定的特征数量为止。向后选择法则是一开始使用所有特征建立模型,再去掉最不重要(依据特征系数大小、p-value 等)的一个特征,然后重新训练模型,以此类推,直到模型效果不再提升或特征数量达到要求为止。
第二类特征筛选方法是通过降低特征维度来实现特征的选取。降维处理不是从原有的特征里面直接挑选子集,而是通过数学转换的方法,对原有特征进行线性或非线性的组合,重新给出新的特征变量。
(1)主成分分析(Principal Component Analysis, PCA)通过正交变换的方式,把一系列相关的变量转换为线性无关的主成分变量。第一个主成分变量的方差最大,因此保留了原始数据最多的变化范围和信息。在特征选取的应用中,通常选取前面几个主要的主成分,在理论上保留原始数据中绝大多数的变化范围。因此,该技术有可能用数量远远少于原始特征的新特征获得和原始模型相同或更好的效果。
(2)线性判别分析(Linear Discriminant Analysis)是 Fisher’s Linear Diseriminant 的推广,用来找出能够区分目标变量的最好的原始特征的线性组合方式。
(3)t-SNE(t-distributed Stochastic Neighbor Embedding)算法常用在视觉展现中,是一个优秀的非线性降维方法。本质上,该算法把高维度的数据点投影到一维或三维空间中,并使得相似的数据点非常靠近,而不相似的数据点会尽量远离。
(4)LDACLarene Diriobier Allocation)算法常用在自然语言分析中,用于找出文本语言的主题成分,但也可以推广到一般的特征降维中。通过LDA找到的主题成分即是新的特征变量。
第三类特征筛选方法是基于模型算法来进行特征选取的方法。
(1)线性模型中的正则化方法L1 Regularizaion。正则化 (Regularization) 方法通常在线性模型中(包括线性回归和逻辑回归)加人额外的限制项,以此来限制模型过拟合。L1 Reegularization (也称为 Lasso Regularization) 是把模型优化(通常为最小化)的损失方程, 转化为一个新的损失方程,即
402 Payment Required
式中,比为模型中每个特征对应的系数。正则化越强,系数a越大,则模型会迫使更多的系数为0,相当于自动进行了特征选取。
(2)集成类决策树算法的不纯度下降(Mean Deerease In Impurity)方法。随机森林算法或梯度增强机算法是常用的基于决策树的集成类机器学习算法,也提供了非常直接的方法来对特征进行排名。例如,随机森林算法中包含一系列的决策树,在每一个决策树中的每一个节点,算法会根据某一个特征的值来把数据一分为二,从而使相似的数据点被分到一起。而在每一个节点的分类方法是根据 Gini Impurity、Information Gain 或 Entropy 决定的。根据这个原理,可以先算出某一个特征在每一个决策树中对数据加权的 Impurity 的减小程度,进而算出所有决策树的平均值。依据平均值,可以对所有特征进行排名,从而进行特征选取。
(3)集成类决策树算法的效果下降(Mean Deerease In Accuracy)方法。该方法是利用集成类决策树算法,直接比较特征对模型效果(评价标准包括 Accuracy 、AUC、KS 等)的影响。其主要实现方法是,随机对某一特征值向量进行置换 (permmutation),然后重新测量模型在测试数据下的效果降低程度。很显然,如果该特征不是那么重要,模型效果降低程度应该有限。通过对每一个特征的置换和测量,可以对特征进行排名,从而进行特征选取。
模型的选择与建立
经过上述的几个关键建模步 骤,理论 上,已经获得了相对干净和规范的建模数据,下一步就是给业务建立最合适的模型。
建模数据分割技术
为了满足建模的需要,一般把历史数据分为3个部分。
(1)训练数据集 (Training DataseD):用来直接训练模型,得到模型参数。
(2)验证数据集(Validation Dataset):通过训练数据得出的模型需要进行检验,防止过拟合。验证数据的目的是检查训练好的模型在一个全新数据集上的效果。如果效果没有达到要求,则可以重新返回训练数据集,通过调整拟合次数、调整超参数等方法得到更新后的模型。如此迭代,直到得到满 意的模型。
(3)测试数据集(Test Dataset):通过验证数据检验的模型中仍然有可能包含训练者的主观偏见。训练者一味地根据验证数据的结果来调整训练数据的模型,可能导致偏差。测试数据是验证模型的最后一个独立的检查。模型在测试数据上的结果是最终的效果,将不允许再回到训练数据重新训练模型以期得到在测试数据上的更好效果。测试数据上的模型效果将作为模型最终的独立指标对外发表。
上面的3种数据分割形式,对应了模型训练的不同阶段,和学生在学校学习的几种不同阶段类似,即平时上课学习,作业练习和期末考试3个状态。上课就是训练模型的阶段,作业练习是检验学习能力的阶段,在这个阶段,遇到不懂的问题,可以回到上课阶段继续学习。而期末考试则对应了最后的测试阶段,考试成绩是评估一学期的学习成果的标准,一旦考完获得分数,就不能再要求重新上课考试。
一般来说训练数据的数量应该占比最大,达到70%~80%,验证数据占 10%左右,剩下的10%为测试数据。但是数据量的具体分配并不绝对,以能满足建模实际需要为准。
数据的具体分割方式也需要考虑数据自身的特点。如果不考虑数据点发生时间的因素,即认为所有数据发生在同一时期,则可以采用随机抽样的方式分割数据。如果数据自身有较强的时间依赖性,如预测用户的货款逾期情况,则更好的数据分割方式是按时间分割。例如,用前6个月的数据作为训练数据,用后3个月的数据作为验证数据。这样的分割方式更贴近实际情况,能够训练出更好的模型。
还有一种数据分割的方式是交叉验证(Cross Validation),也是上面所述的Training 和 Validation数据分割的一种替代方式。交叉验证方式把数据分为3份,每次用一份数据作为验证数据,其余K-1份数据合并起来作为训练数据。这样循环下次,得到模型的平均效果。通常K取5,被称为 5-fold Cross Validation。交叉验证的优点在于,模型的评价来自数据的平均效果,一定程度上能够避免模型在随机分配数据上显现的偏差。交叉验证的极端情况是将飞设为数据大小本身(K=n),即每次只留一个数据点作为验证数据,这种方法被称为 Leave-one-out Cross Validation,其优点是完全避免了随机效应也适合数据量非常少的情况。
模型的选择
选择什么模型,很大程度上取决于业务的需要。例如,要预测客户是否逾期,应选择二分类模型;要预测房价,则应选择回归模型。另外,常见的模型还有聚类模型,如把用户按相似性分为不同的群体。具体的算法还要根据数据量的大小来选择。在数据量不是很大,或在单机能够训练的情况下,选择是非常多的,常用的机器学习算法都能满足需求,如Python编程环境下的scikit-leam。而如果数据量特别大,达到大数据的规模,就需要考虑使用分布式算法,如Spark 平台提供的算法。但不是每一种算法都会有很好的分布式实现,如支持向量机算法(SVM)。
模型的监控
模型部署以后,需要定期监控其表现是否和预期一致。模型的效果不会一直保持稳定,因为底层的数据分布可能会随时间发生变化,预测的结果分布也会随时间发生改变。因此我们需要一套机器去监控模型的效果,一旦模型效果低于可以接受的阈值,就必须调整模型,重新部署。衡量底层特征或模型结果随时间变化程度的一种统计方法是计算群体稳定性指数(Population Stability Index, PST),其计算公式如下:
402 Payment Required
式中,根据实际业务需求,采用相同的标准把基准分布(base)和待检验分布(test)分别分为几组例如,根据模型输出的概率或评分,把评分小于100的数据分为第一组,评分 在100~200 的数据分为第二组,以此类推。在每个区间中,基准分布数据占比 和待检验分布占比 会有不同。例如,基准分布在得分小于100的区间中的占比可能为10%,而待检验分布在同样区间中的占比为 12%。通过上式,计算出,总的PSI值。一般来说,PSI小于0.1说明分布基本没有发生变化,在0.1~0.2范围内也可以接受,大于0.2或0.25则说明分布变化较大。
分类模型的输出值通常为预测概率,因此可以用来计算 PSI值。模型训练部署以后,可以记录预测概率在基准数据上的分布作为基准分布。经过一段时间的运行后,监控模型在新的数据上的概率分布,用来和基准分布相比较。一旦PSI值过大,就可以判断模型稳定性发生了变化。
值得注意的是,模型稳定性发生变化,并不一定代表模型的实际效果不如以前。最终判断模型效果的依据始终应该是业务的实际效果,如比较预测逾期率和实际逾期率。但是模型稳定性的监控是必要的安全屏障,一旦模型稳定性发生变化,往往意味着底层数据的特征分布发生了变化,需要建模人员重新审视模型的实际效果。
本文摘编自《人工智能原理与实践》,经出版方授权发布。(ISBN:9787301317709)
往期精彩回顾适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载中国大学慕课《机器学习》(黄海广主讲)机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑机器学习交流qq群955171419,加入微信群请扫码(读博请说明)