在日常生活中,我们会经常说“天阴了,大概要下雨”“明天他们很可能会过来”“节假日商场人多”这样趋势性的话语。在数据处理中,对于一组没有明确关系但看似存在一定趋势的散点数据[见图2-1(a)],如果想找出它们的共同特征,就需要用到“拟合”这种数据处理方法。在Excel中,我们可以直接用设定好的“添加趋势线”的功能来实现拟合[见图2-1(b)],以找出数据之间的函数关系,并根据函数公式进一步计算要达到某一 y 值时的 x 值,或给定 x 值后计算的 y 值。这就是机器学习的基本原理。
图2-1 散点数据与数据趋势拟合示意
机器学习通过训练数据集找出拟合函数(公式)。训练数据集的规模越大,该拟合函数对数据趋势的代表性越好。在应用时,它能够对未曾出现在训练集中的数据进行预测(计算 y 值),或设定一个预期的目标数据( y 值),反向确定需要的数据( x 值)。通过数据训练集得出的拟合函数就是机器学习得出的算法模型。
在统计学中,拟合是指数据与一个目标函数的近似程度,因此,通过拟合函数计算得到的值是一个近似值,与实际情况存在误差。机器学习的拟合技术就存在“过拟合”与“欠拟合”,二者均会降低算法模型的泛化能力(普适性)。
过拟合是指对训练数据的建模太好,训练数据中的噪声或随机波动也当作趋势模型来学习以建立拟合函数。此过程可以理解为对训练集中的数据不加分辨,对符合趋势的、不符合趋势的数据都强行地、一股脑儿地用一个函数来表示。过拟合造成的后果是,当把训练集以外的数据用于拟合函数时,发现通过训练集得出的算法模型并不适用,即算法模型的泛化能力欠佳。过拟合是机器学习中常见的问题。
欠拟合是指算法模型不能对训练数据进行拟合,无法发现数据集中的趋势规律,更不能对训练集以外的新数据进行归纳,可理解为算法模型的能力欠佳。
机器学习训练的理想状态是在过拟合和欠拟合之间确定一个算法模型,使之在训练数据集和未见过的测试数据集上都有很好的表现。
机器学习可分为如下4个主要类型。
监督式机器学习使用标签化的数据集进行训练来获得拟合函数(算法),以对数据进行准确分类或预测结果。把数据输入模型后,该方法会根据数据调整权重直到模型拟合。监督式机器学习有助于大规模解决各种现实问题,例如,将垃圾邮件归类到收件箱的单独文件夹中。监督式机器学习使用的方法包括神经网络、朴素贝叶斯、线性回归、逻辑回归、随机森林、支持向量机等。
无监督机器学习用来分析未标签化的训练数据集以形成算法,从而发现隐藏的数据趋势或数据分组,无须人工干预。该方法能够发现信息的相似性和差异,因此是探索性数据分析、交叉销售策略、客户细分、图像分析和模式识别的理想解决方案。在无监督机器学习中使用的方法包括神经网络、 K 均值聚类、概率聚类等。
半监督机器学习是指在训练期间使用较小的标签化数据集来指导对较大的未标签化数据集进行分类和特征提取。该方法可以解决带标签的数据不足而无法开展监督式机器学习的问题。
强化机器学习是一种行为机器学习模型,类似于监督式机器学习,但算法未使用样本数据集进行训练。该方法通过不断地试错进行学习,强化一系列成功的结果,为解决某一问题提出最佳建议或策略。赢得2011年Jeopardy挑战赛的IBM Watson系统就是一个很好的强化机器学习的例子。该系统使用强化机器学习来决定是否尝试回答或提问,选取选择板上哪个方块及下多少赌注等。